Example #1
0
        /// <summary>
        /// обновление состояния кнопок и пунктов меню, связанных с роботами
        /// </summary>
        /// <param name="state"></param>
        private void UpdateRobotIconUnsafe(RobotFarm.RobotFarmState state)
        {
            var indexImage = state == RobotFarm.RobotFarmState.Started
                                 ? 12
                                 : state == RobotFarm.RobotFarmState.StartingUp
                                       ? 13
                                       : state == RobotFarm.RobotFarmState.Stopped
                                             ? 11
                                             : state == RobotFarm.RobotFarmState.Stopping ? 14 : 15;
            // проверяем есть ли кнопка на панели системных кнопок
            var pressedBtn = GetPressedCommonButton(SystemToolButton.RobotsStart);

            if (pressedBtn != null)
            {
                pressedBtn.ImageIndex = indexImage;
            }

            // кнопка "Запустить роботов" управляется из MainForm.ToolStripBtnClick + MainForm.ExecuteCommonButtonsCommand
            var checkBox = pressedBtn as CheckBox;

            if (checkBox != null)
            {
                checkBox.Checked = state == RobotFarm.RobotFarmState.Started;
            }

            // меняем доступность пунктов меню
            menuitemRobotPortfolio.Enabled = state == RobotFarm.RobotFarmState.Stopped;
            menuitemRobotState.Enabled     = state == RobotFarm.RobotFarmState.Started;
            // также меняем соответствующие кнопки панели инструментов
            var btn = GetPressedCommonButton(SystemToolButton.RobotPortfolio);

            if (btn != null)
            {
                checkBox = btn as CheckBox;
                if (checkBox != null)
                {
                    checkBox.Enabled = menuitemRobotPortfolio.Enabled;
                }
            }
            btn = GetPressedCommonButton(SystemToolButton.RobotState);
            if (btn != null)
            {
                checkBox = btn as CheckBox;
                if (checkBox != null)
                {
                    checkBox.Enabled = menuitemRobotState.Enabled;
                }
            }
        }
Example #2
0
        /// <summary>
        /// изменилось состояние "фермы" роботов - обновить иконку кнопки запуска/останова
        /// </summary>
        private void RobotFarmStateChanged(RobotFarm.RobotFarmState state)
        {
            var del = new RobotFarm.StateChangedDel(UpdateRobotIconUnsafe);

            BeginInvoke(del, state);
        }