示例#1
0
        void UpdateRoomData()
        {
            dataWidgets = new List <IResultDataWidget>();
            results     = new List <RoundResultData>();

            // 9 rows for speakers, 2 rows for both teams
            // the containers are always in standard order
            Container[] c = new Container[] { cGov1, cOpp1, cGov2, cOpp2,
                                              cFree1, cFree2, cFree3, cOpp3, cGov3, cTeamGov, cTeamOpp };

            List <object> o = roomData.AsOrderedObjects();

            for (int i = 0; i < 11; i++)
            {
                SetupTeamRow(c[i], o[i], i);
            }

            InsertTableColumns(judgesOffset, (uint)roomData.Judges.Count);
            // JUDGES
            // clear all avg parents (9 Speakers, 2 Teams = 11) first
            for (int i = 0; i < 11; i++)
            {
                labels[i].ClearParents();
            }

            // Setup Judge Column (fills resultsJudges)
            resultsJudges = new List <RoundResultData>();
            for (int i = 0; i < roomData.Judges.Count; i++)
            {
                SetupJudgeColumn(i);
            }

            // CHECK CONSISTENCY
            CheckPositions();

            // GUI COL POSITIONS
            // (this needs to be done at the end!)
            RepositionJudgeCols();

            // GUI ROW POSITIONS
            RepositionTeamRows(posGov);
            RepositionTeamRows(posOpp);

            // the above changes FrameLabels, so undo it.
            SetSpeakerFrameLabels();

            // force total sum updates
            labels[labels.Count - 1].ForceUpdate();
            labels[labels.Count - 2].ForceUpdate();
            // is complete?
            CheckCompleteFlags();
            // update bestOnes...
            UpdateBestOnes();
            UpdateBestSpeaker();
        }