public void addRow(BBResRow para_nwRow) { if(rows == null) { rows = new List<BBResRow>(); } rows.Add(para_nwRow); }
public override void buildPage(int para_pageID, GameObject para_pageParent) { if(pageInitFlags == null) { pageInitFlags = new bool[]{false,false}; } if(para_pageID == 0) { string reqPageObjName = "ResultScreens_A"; Transform reqResultScreenPage = transform.FindChild(reqPageObjName); Transform subPageTemplate = reqResultScreenPage.FindChild("Pages").FindChild("Ac"+acPKey); subPageTemplate.gameObject.SetActive(true); if(pageInitFlags[0] == false) { // Load necessary items. string fullPathToTemplate = reqPageObjName + "*" + "Pages" + "*" + ("Ac"+acPKey); // Init Items. BBGameyResultData gameyData = (BBGameyResultData) acResultData.getGameyData(); int numCompleteCorrectBridges = gameyData.getNumOfCompleteCorrectBridges(); int numBrokenBridges = gameyData.getNumBrokenBridges(); string timeStr = gameyData.getTimeString(); string[] elementNames = {"FieldTitle-0","FieldTitle-1","FieldTitle-2","FieldContent-0","FieldContent-1","FieldContent-2"}; string[] elementContent = {LocalisationMang.translate("Full correct bridges"),LocalisationMang.translate("Broken bridges"),LocalisationMang.translate("Time"),""+numCompleteCorrectBridges,""+numBrokenBridges,timeStr}; bool[] destroyGuideArr = {false,false,false,false,false,false}; int[] textElementTypeArr = {0,0,0,0,0,0}; prepTextElements(elementNames,elementContent,destroyGuideArr,textElementTypeArr,fullPathToTemplate); pageInitFlags[0] = true; } } else if(para_pageID == 1) { string reqPageObjName = "ResultScreens_B"; Transform reqResultScreenPage = transform.FindChild(reqPageObjName); Transform subPageTemplate = reqResultScreenPage.FindChild("Pages").FindChild("Ac"+acPKey); subPageTemplate.gameObject.SetActive(true); if(pageInitFlags[1] == false) { // Load necessary items. string fullPathToTemplate = reqPageObjName + "*" + "Pages" + "*" + ("Ac"+acPKey); availableTables = new List<BBResTable>(); // Table to column lookup. Dictionary<string, List<BBResColumn>> tableLookup = new Dictionary<string, List<BBResColumn>>(); List<ILevelConfig> presentedContent = acResultData.getPresentedContent(); List<LevelOutcome> outcomeList = acResultData.getOutcomeList(); for(int i=0; i<presentedContent.Count; i++) { BBLevelConfig tmpContent = (BBLevelConfig) presentedContent[i]; BBLevelOutcome tmpOutcome = (BBLevelOutcome) outcomeList[i]; string contentDescription = tmpContent.getDescription(); List<BBResColumn> workbenchTableColumns = null; if(tableLookup.ContainsKey(contentDescription)) { workbenchTableColumns = tableLookup[contentDescription]; } else { workbenchTableColumns = new List<BBResColumn>(); workbenchTableColumns.Add(new BBResColumn()); workbenchTableColumns.Add(new BBResColumn()); tableLookup.Add(contentDescription,workbenchTableColumns); } //List<IndexRegion> playerHighlights = tmpOutcome.getPlayerHighlights(); string cellText = ""; cellText = produceFancyText(tmpContent.getBridgeWord(),tmpContent.getCorrectHighlightAreas()); if(tmpOutcome.isPositiveOutcome()) { workbenchTableColumns[0].addCell(new BBResCell(cellText)); } else { workbenchTableColumns[1].addCell(new BBResCell(cellText)); } tableLookup[contentDescription] = workbenchTableColumns; } // Compress all tables. List<string> lookupKeys = new List<string>(tableLookup.Keys); for(int i=0; i<lookupKeys.Count; i++) { List<BBResColumn> tmpTableColumns = tableLookup[lookupKeys[i]]; BBResTable workbenchTable = new BBResTable(lookupKeys[i]); workbenchTable.addHeaderName(LocalisationMang.translate("Success")); workbenchTable.addHeaderName(LocalisationMang.translate("Revise")); // Convert columns to rows. bool canMakeMoreRows = true; int dataRowIndex = 0; while(canMakeMoreRows) { canMakeMoreRows = false; List<BBResCell> nwRowData = new List<BBResCell>(); for(int k=0; k<tmpTableColumns.Count; k++) { List<BBResCell> columnContent = tmpTableColumns[k].columnContent; if((columnContent != null)&&(dataRowIndex < (columnContent.Count))) { nwRowData.Add(columnContent[dataRowIndex]); canMakeMoreRows = true; } else { nwRowData.Add(null); } } if(canMakeMoreRows) { BBResRow nwRow = new BBResRow(nwRowData); workbenchTable.addRow(nwRow); } dataRowIndex++; } availableTables.Add(workbenchTable); } string[] elementNames = {"TableScrollArea"}; string[] elementContent = {"Table Scroll Area"}; bool[] destroyGuideArr = {true}; int[] textElementTypeArr = {0}; prepTextElements(elementNames,elementContent,destroyGuideArr,textElementTypeArr,fullPathToTemplate); columnEqualGuiWidth = ((uiBounds["TableScrollArea"].width * 0.9f) / (2 * 1.0f)); float minimumColumnWidth = (uiBounds["TableScrollArea"].width * 0.45f); if(columnEqualGuiWidth <= minimumColumnWidth) { columnEqualGuiWidth = minimumColumnWidth; } pageInitFlags[1] = true; } } }