private void Reset(LcButton bt, LcDst dst) { bt.Id = dst.Id; if (_SlowBlinkList.Remove(bt) && (_SlowBlinkList.Count == 0)) { _SlowBlinkTimer.Enabled = false; _SlowBlinkOn = true; } if (dst.IsConfigurated) { Color rx = VisualStyle.ButtonColor; Color tx = VisualStyle.ButtonColor; if (!dst.Unavailable) { switch (dst.Rx) { case LcRxState.Idle: break; case LcRxState.Rx: case LcRxState.RxNotif: rx = VisualStyle.Colors.Green; break; case LcRxState.Mem: rx = VisualStyle.Colors.Orange; break; } switch (dst.Tx) { case LcTxState.Idle: case LcTxState.Out: break; case LcTxState.Tx: tx = VisualStyle.Colors.Green; break; case LcTxState.Congestion: tx = _SlowBlinkOn ? VisualStyle.Colors.Red : VisualStyle.ButtonColor; _SlowBlinkList[bt] = VisualStyle.Colors.Red; _SlowBlinkTimer.Enabled = true; break; case LcTxState.Busy: tx = VisualStyle.Colors.Red; break; } } bt.Reset(dst.Dst, dst.Unavailable, rx, tx); bt.Enabled = LcDstEnabled(dst); } bt.Visible = dst.IsConfigurated; }
public LcView([ServiceDependency] IModelCmdManagerService cmdManager, [ServiceDependency] StateManagerService stateManager) { InitializeComponent(); if (Settings.Default.LcRows == 1) { this._LcButtonsTLP.RowCount = 2; this._LcButtonsTLP.RowStyles.Clear(); this._LcButtonsTLP.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this._LcButtonsTLP.Size = new System.Drawing.Size(800, 85); this.Size = new System.Drawing.Size(800, 85); } if (global::HMI.Presentation.Twr.Properties.Settings.Default.BigFonts) { this._LcButtonsTLP.Font = new System.Drawing.Font("Trebuchet MS", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); } _CmdManager = cmdManager; _StateManager = stateManager; _LcButtonsTLP.RowCount = Settings.Default.LcRows; _LcButtonsTLP.RowStyles.Clear(); for (int i = 0; i < _LcButtonsTLP.RowCount; i++) { RowStyle st = new RowStyle(SizeType.Percent, 100); _LcButtonsTLP.RowStyles.Add(st); } _LcButtonsTLP.ColumnCount = Settings.Default.LcColumns; _LcButtonsTLP.ColumnStyles.Clear(); for (int i = 0; i < _LcButtonsTLP.ColumnCount; i++) { ColumnStyle st = new ColumnStyle(SizeType.Percent, 100); _LcButtonsTLP.ColumnStyles.Add(st); } _NumPositionsByPage = _LcButtonsTLP.RowCount * _LcButtonsTLP.ColumnCount; _SlowBlinkList = new Dictionary <LcButton, Color>(); for (int row = _LcButtonsTLP.RowCount - 1, pos = 0; row >= 0; row--) { for (int column = 0; column < _LcButtonsTLP.ColumnCount; column++, pos++) { LcButton bt = new LcButton(); _LcButtonsTLP.Controls.Add(bt, column, row); _LcButtons.Add(bt); bt.Dock = DockStyle.Fill; bt.Name = "_LcButton" + pos; bt.Visible = false; bt.Id = pos; bt.MouseDown += LcButton_MouseDown; bt.MouseUp += LcButton_MouseUp; } } }
public LcView([ServiceDependency] IModelCmdManagerService cmdManager, [ServiceDependency] StateManagerService stateManager) { InitializeComponent(); _CmdManager = cmdManager; _StateManager = stateManager; _LcButtonsTLP.RowCount = Settings.Default.LcRows; _LcButtonsTLP.RowStyles.Clear(); for (int i = 0; i < _LcButtonsTLP.RowCount; i++) { RowStyle st = new RowStyle(SizeType.Percent, 100); //_LcButtonsTLP.RowStyles.Add(st); } _LcButtonsTLP.ColumnCount = Settings.Default.LcColumns; _LcButtonsTLP.ColumnStyles.Clear(); for (int i = 0; i < _LcButtonsTLP.ColumnCount; i++) { ColumnStyle st = new ColumnStyle(SizeType.Percent, 100); //_LcButtonsTLP.ColumnStyles.Add(st); } _NumPositionsByPage = _LcButtonsTLP.RowCount * _LcButtonsTLP.ColumnCount; _SlowBlinkList = new Dictionary <LcButton, Color>(); for (int row = _LcButtonsTLP.RowCount - 1, pos = 0; row >= 0; row--) { for (int column = 0; column < _LcButtonsTLP.ColumnCount; column++, pos++) { LcButton bt = new LcButton(); //_LcButtonsTLP.Controls.Add(bt, column, row); //_LcButtons.Add(bt); bt.Dock = DockStyle.Fill; bt.Name = "_LcButton" + pos; bt.Visible = false; bt.Id = pos; bt.MouseDown += LcButton_MouseDown; bt.MouseUp += LcButton_MouseUp; } } }
public void OnLcChanged(object sender, RangeMsg e) { Debug.Assert(e.Count > 0); for (int i = e.From, to = e.From + e.Count; i < to; i++) { LcDst dst = _StateManager.Lc[i]; int headerOfGroup = dst.Group != 0 ? _StateManager.Lc.HeaderLc(dst.Group) : i; //17_01_13 (-1) if (headerOfGroup < _NumPositionsByPage) { LcButton bt = _LcButtons[headerOfGroup]; LcDst activeDst = dst.Group != 0 ? _StateManager.Lc.ActiveLc(dst.Group, bt.Id) : dst; //17_01_13 (-1) if ((bt.Id != activeDst.Id) || (bt.Id == i)) { Reset(bt, activeDst); } } } }