Example #1
0
 /// <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);
 }
Example #2
0
        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);
        }
Example #3
0
        public void SetActionProcessingStrategy(
            IActionProcessorStrategy strategy)
        {
            if (strategy == null)
            {
                actionProcessorStrategy = new DefaultActionProcessorStrategy();
            }
            else
            {
                actionProcessorStrategy = strategy;
            }

            actionProcessorStrategy.Action = this;
        }
Example #4
0
        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);
        }
Example #5
0
        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);
            });
        }
Example #6
0
        /// <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);
        }