void SwapItems(List <RankingDataItem> list, int i) { // swap them in list RankingDataItem item = list[i - 1]; list[i - 1] = list[i]; list[i] = item; // save this order for both items SaveResolution(list[i - 1], i - 1); SaveResolution(list[i], i); }
void SaveResolution(RankingDataItem item, int i) { string id = EqualPointsResolver.IdRanking(availRounds, item); EqualPointsResolver epr = Tournament.I.FindResolver(id); if (epr == null) { epr = new EqualPointsResolver(id, i); Tournament.I.Resolvers.Add(epr); } else { epr.Resolution = i; } }
void SetupTableRow(Table table, Widget w, List <RankingDataItem> items, int i) { RankingDataItem item = items[i]; uint row = (uint)i + 1; string pos = row.ToString(); // check for equal points if (i > 0 && items[i - 1].TotalPoints == item.TotalPoints) { uint off = row % 2; table.Attach(MakeResolveBtn(table, i), 3 + off, 3 + off + 1, row - 1, row + 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0); } if (!item.Resolved) { pos += "?"; } // insert widgets in table, // always in EventBox for marking with Backgrounds... Label lblPos = new Label(pos); lblPos.Yalign = 0.5f; table.Attach(MiscHelpers.MakeBackground(lblPos), 0, 1, row, row + 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0); table.Attach(MiscHelpers.MakeBackground(w), 1, 2, row, row + 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0); Label lblPoints = new Label(); lblPoints.Markup = item.TotalPoints < 0 ? "<big><b>?</b></big>" : "<b><big>" + OPDtabData.MiscHelpers.FmtDecimal(item.TotalPoints) + "</big></b>"; table.Attach(MiscHelpers.MakeBackground(lblPoints), 2, 3, row, row + 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0); }