/// <summary> /// Создание нового действия. /// </summary> /// <param name="name">Имя действия.</param> /// <param name="luaName">Имя действия - как оно будет называться /// в таблице Lua.</param> /// <param name="owner">Владелец действия (Шаг)</param> /// <param name="devSubTypes">Допустимые подтипы устройств</param> /// <param name="devTypes">Допустимые типы устройств</param> /// <param name="actionProcessorStrategy">Стратегия обработки /// устройств в группе действий</param> public ActionGroup(string name, Step owner, string luaName, Device.DeviceType[] devTypes = null, Device.DeviceSubType[] devSubTypes = null, IActionProcessorStrategy actionProcessorStrategy = null) : base(name, owner, luaName) { subActions = new List <Action>(); AddNewAction(owner, devTypes, devSubTypes, actionProcessorStrategy); }
private Action AddNewAction(Step owner, Device.DeviceType[] devTypes, Device.DeviceSubType[] devSubTypes, IActionProcessorStrategy strategy) { var newAction = new Action(GroupDefaultName, owner, string.Empty, devTypes, devSubTypes, strategy); newAction.DrawStyle = DrawStyle; subActions.Add(newAction); return(newAction); }
public void SetActionProcessingStrategy( IActionProcessorStrategy strategy) { if (strategy == null) { actionProcessorStrategy = new DefaultActionProcessorStrategy(); } else { actionProcessorStrategy = strategy; } actionProcessorStrategy.Action = this; }
private Action InsertNewAction() { Action firstSubAction = subActions.First(); firstSubAction.GetDisplayObjects(out Device.DeviceType[] devTypes, out Device.DeviceSubType[] devSubTypes, out _); IActionProcessorStrategy strategy = firstSubAction .GetActionProcessingStrategy(); Action newAction = AddNewAction(owner, devTypes, devSubTypes, strategy); return(newAction); }
public void SetActionStrategy_NewActionNullStrategy_SetDefaultStrategy() { var action = new Action(string.Empty, null); action.SetActionProcessingStrategy(null); IActionProcessorStrategy strategy = action .GetActionProcessingStrategy(); Assert.Multiple(() => { Assert.IsNotNull(strategy); Assert.IsTrue(strategy is DefaultActionProcessorStrategy); }); }
/// <summary> /// Создание нового действия. /// </summary> /// <param name="name">Имя действия.</param> /// <param name="luaName">Имя действия - как оно будет называться /// в таблице Lua.</param> /// <param name="devTypes">Типы устройств, допустимые для /// редактирования.</param> /// <param name="devSubTypes">Подтипы устройств, допустимые /// для редактирования.</param> /// <param name="owner">Владелец действия (Шаг)</param> /// <param name="actionProcessorStrategy">Стратегия обработки /// устройств в действии</param> /// <param name="deviceManager">Менеджер устройств</param> public Action(string name, Step owner, string luaName = "", Device.DeviceType[] devTypes = null, Device.DeviceSubType[] devSubTypes = null, IActionProcessorStrategy actionProcessorStrategy = null, Device.IDeviceManager deviceManager = null) { this.name = name; this.luaName = luaName; this.devTypes = devTypes; this.devSubTypes = devSubTypes; deviceIndex = new List <int>(); this.owner = owner; DrawStyle = DrawInfo.Style.GREEN_BOX; this.deviceManager = deviceManager ?? Device.DeviceManager .GetInstance(); SetActionProcessingStrategy(actionProcessorStrategy); }