using Common.Helper;
|
using Common.Interface;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace Common.Factory
|
{
|
public static class UIFactory
|
{
|
//public static UserControl GetInitialConfigCtrl(string typeName, IInitialConfig config)
|
//{
|
// Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, EnumHelper.DeviceAttributeType.InitialConfigCtrl);
|
|
// if (type == null)
|
// {
|
// return null;
|
// }
|
|
// return Activator.CreateInstance(type, config) as UserControl;
|
//}
|
|
//public static UserControl GetDeviceConfigCtrl(string typeName, IDeviceConfig config)
|
//{
|
// Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, EnumHelper.DeviceAttributeType.DeviceConfigCtrl);
|
|
// if (type == null)
|
// {
|
// return null;
|
// }
|
|
// return Activator.CreateInstance(type, config) as UserControl;
|
//}
|
|
//public static UserControl GetOperationConfigCtrl(string typeName, IOperationConfig config)
|
//{
|
// Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, EnumHelper.DeviceAttributeType.OperationConfigCtrl);
|
|
// if (type == null)
|
// {
|
// return null;
|
// }
|
|
// return Activator.CreateInstance(type, config) as UserControl;
|
//}
|
|
//public static UserControl GetInputConfigCtrl(string typeName, IInputConfig config)
|
//{
|
// Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, EnumHelper.DeviceAttributeType.InputConfigCtrl);
|
|
// if (type == null)
|
// {
|
// return null;
|
// }
|
|
// return Activator.CreateInstance(type, config) as UserControl;
|
//}
|
|
public static UserControl GetConfigCtrl<T>(string typeName, T t, IDevice device = null)
|
{
|
string interfaceName = typeof(T).Name;
|
|
EnumHelper.DeviceAttributeType ctrlType;
|
|
switch (interfaceName)
|
{
|
case "IInitialConfig":
|
ctrlType = EnumHelper.DeviceAttributeType.InitialConfigCtrl;
|
break;
|
case "IDeviceConfig":
|
ctrlType = EnumHelper.DeviceAttributeType.DeviceConfigCtrl;
|
break;
|
case "IOperationConfig":
|
ctrlType = EnumHelper.DeviceAttributeType.OperationConfigCtrl;
|
break;
|
case "IInputConfig":
|
ctrlType = EnumHelper.DeviceAttributeType.InputConfigCtrl;
|
break;
|
default:
|
throw new Exception("传入的配置参数类型不正确");
|
}
|
|
Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, ctrlType);
|
|
if (type == null)
|
{
|
return null;
|
}
|
|
switch (interfaceName)
|
{
|
case "IInitialConfig":
|
case "IDeviceConfig":
|
case "IInputConfig":
|
return Activator.CreateInstance(type, t) as UserControl;
|
case "IOperationConfig":
|
return Activator.CreateInstance(type, t, device) as UserControl;
|
default:
|
return null;
|
}
|
|
}
|
|
public static UserControl GetRunCtrl(string typeName, IDevice device = null, IOperationConfig config = null)
|
{
|
EnumHelper.DeviceAttributeType ctrlType = EnumHelper.DeviceAttributeType.RunCtrl;
|
Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, ctrlType);
|
|
if (type == null)
|
{
|
return null;
|
}
|
|
return Activator.CreateInstance(type, config, device) as UserControl;
|
}
|
|
public static UserControl GetOperationConfigPanel(string typeName, IOperationConfig config, IDevice device)
|
{
|
EnumHelper.DeviceAttributeType ctrlType = EnumHelper.DeviceAttributeType.OperationConfigPanel;
|
Type type = FactoryHelper.GetTypeByDeviceAttribute(typeName, ctrlType);
|
|
if (type == null)
|
{
|
return null;
|
}
|
|
return Activator.CreateInstance(type, config, device) as UserControl;
|
}
|
}
|
}
|