CTCOfficeGUI.TableViewScreen.UpdateDisplay C# (CSharp) Méthode

UpdateDisplay() public méthode

Updates the display of block and train information
public UpdateDisplay ( List blocks, List trains ) : void
blocks List
trains List
Résultat void
        public void UpdateDisplay(List<TrackBlock> blocks, List<ITrain> trains)
        {
            if (InvokeRequired)
            {
                Invoke(m_updateDelegate, blocks, trains);
            }
            else
            {
                if (blocks != null)
                {
                    this.SuspendLayout();

                    for (int i = 0, j = scrollbar.Value; i < m_numRows && j < blocks.Count; i++, j++)
                    {
                        //Display the block information
                        m_labelTable[i].NameLabel.Text = blocks[i].Name;
                        m_labelTable[i].AuthorityLabel.Text = blocks[i].Authority.Authority.ToString();
                        m_labelTable[i].SpeedLimitLabel.Text = blocks[i].Authority.SpeedLimitKPH.ToString() + " " + KPH;
                        m_labelTable[i].StaticLimitLabel.Text = blocks[i].StaticSpeedLimit + " " + KPH;

                        if (blocks[i].Status.TrainPresent)
                        {
                            m_labelTable[i].TrainLabel.Text = "yes";
                        }
                        else
                        {
                            m_labelTable[i].TrainLabel.Text = "no";
                        }

                        m_labelTable[i].SignalLabel.Text = blocks[i].Status.SignalState.ToString();
                        m_labelTable[i].GradeLabel.Text = blocks[i].Grade.ToString() + "%";
                        m_labelTable[i].LengthLabel.Text = blocks[i].LengthMeters.ToString() + " " + METERS;

                        if (blocks[i].HasTunnel)
                        {
                            m_labelTable[i].HasTunnelLabel.Text = "yes";
                        }
                        else
                        {
                            m_labelTable[i].HasTunnelLabel.Text = "no";
                        }

                        if (blocks[i].RailroadCrossing)
                        {
                            m_labelTable[i].RRCrossingLabel.Text = "yes";
                        }
                        else
                        {
                            m_labelTable[i].RRCrossingLabel.Text = "yes";
                        }

                        if (blocks[i].Transponder != null) //Could use block.HasTransponder property, but check for null to be on the safe side...
                        {
                            if (blocks[i].Transponder.DistanceToStation != 0)
                            {
                                m_labelTable[i].TransponderLabel.Text = blocks[i].Transponder.StationName + "in " + blocks[i].Transponder.DistanceToStation.ToString() + " block(s)";
                            }
                            else
                            {
                                m_labelTable[i].TransponderLabel.Text = "At " + blocks[i].Transponder.StationName;
                            }
                        }
                        else
                        {
                            m_labelTable[i].TransponderLabel.Text = "none";
                        }

                        m_labelTable[i].FailureLabel.Text = GetBlockFailureStateString(blocks[i]);
                        m_labelTable[i].ShowLabels();
                    }

                    //Hide the unused labels
                    for (int i = blocks.Count; i < m_numRows; i++)
                    {
                        m_labelTable[i].HideLabels();
                    }
                }

                this.ResumeLayout();
            }
        }

Same methods

TableViewScreen::UpdateDisplay ( List blocks, List trains ) : void