public Dictionary <string, TransactionSummaryGameObjectList> ExpandCollapseSecondPanel(bool shouldExpandPanel, TransactionSummarySecondSubData selectedTransSubData, string parentKey, Dictionary <string, TransactionSummaryGameObjectList> transactionGameObjectDict) { if (!shouldExpandPanel) { transactionGameObjectDict.Remove(parentKey + "_" + selectedTransSubData.GetPrimaryKey()); } else { transactionGameObjectDict.Remove(parentKey + "_" + selectedTransSubData.GetPrimaryKey()); GameObject parentGameObject = transactionGameObjectDict[parentKey].GetParentGameObject(); GameObject selectedSubPanel = parentGameObject.transform.Find("SecondSubPanel_" + parentKey + "_" + selectedTransSubData.GetPrimaryKey()).gameObject; TransactionSummaryGameObjectList transactionGameObjects = new TransactionSummaryGameObjectList(parentKey + "_" + selectedTransSubData.GetPrimaryKey(), selectedSubPanel); transactionGameObjects.SetExpandedFlag(true); transactionGameObjectDict.Add(parentKey + "_" + selectedTransSubData.GetPrimaryKey(), transactionGameObjects); foreach (TransactionSummarySubDetailsData tsSubDetailsData in selectedTransSubData.GetTransactionSummarySubDetailsData()) { GameObject tempThirdSubPanel = (GameObject)Instantiate(thirdSubPanel, transform.position, transform.rotation); Transform[] ts = tempThirdSubPanel.transform.GetComponentsInChildren <Transform>(); tempThirdSubPanel.name = "ThirdSubPanel_" + parentKey + "_" + selectedTransSubData.GetPrimaryKey() + "_" + tsSubDetailsData.GetPrimaryKey(); string firstSubPanelSubText = ""; bool shouldSubTextBeVisible = false; if (isOrderByDate) { firstSubPanelSubText = tsSubDetailsData.GetPrimaryKey().Substring(0, 1); shouldSubTextBeVisible = true; } foreach (Transform t in ts) { switch (t.gameObject.name) { case "ThirdSubPanelMainText": t.gameObject.GetComponent <Text>().text = tsSubDetailsData.GetPrimaryKey(); break; case "ThirdSubPanelSubTextImage": t.gameObject.GetComponent <Button>().GetComponentInChildren <Text>().text = firstSubPanelSubText; t.gameObject.GetComponent <Button>().gameObject.SetActive(shouldSubTextBeVisible); break; case "ThirdSubPanelPrice": t.gameObject.GetComponent <Text>().text = "$" + tsSubDetailsData.GetTotalPrice(); break; } } tempThirdSubPanel.SetActive(true); tempThirdSubPanel.transform.SetParent(selectedSubPanel.transform, false); transactionGameObjects.GetTransactionSummaryGameObjects().Add(tempThirdSubPanel); } } return(transactionGameObjectDict); }
public void InitiateTransactionRows(List <TransactionSummaryData> transactionList, bool isOrderByDate, Dictionary <string, TransactionSummaryGameObjectList> transactionGameObjectDict) { this.isOrderByDate = isOrderByDate; firstSubPanel.SetActive(false); secondSubPanel.SetActive(false); thirdSubPanel.SetActive(false); transactionsPanel.SetActive(false); TransactionSummaryGameObjectList transactionGameObjects = null; foreach (TransactionSummaryData tsData in transactionList) { GameObject tempTitlePanel = (GameObject)Instantiate(titlePanel, transform.position, transform.rotation); Transform[] ts = tempTitlePanel.transform.GetComponentsInChildren <Transform>(); tempTitlePanel.name = "TitlePanel_" + tsData.GetPrimaryKey(); bool isExpanded = false; if (transactionGameObjectDict.ContainsKey(tsData.GetPrimaryKey())) { transactionGameObjects = transactionGameObjectDict[tsData.GetPrimaryKey()]; isExpanded = transactionGameObjects.IsExpanded(); transactionGameObjectDict.Remove(tsData.GetPrimaryKey()); } foreach (Transform t in ts) { switch (t.gameObject.name) { case "MainTitle": t.gameObject.GetComponent <Text>().text = tsData.GetPrimaryKey(); break; case "ExpandCollapseButton": if (isExpanded) { t.gameObject.GetComponent <Button>().GetComponentInChildren <Text>().text = "v"; } else { t.gameObject.GetComponent <Button>().GetComponentInChildren <Text>().text = ">"; } break; } } tempTitlePanel.transform.SetParent(mainPanel.transform, false); tempTitlePanel.SetActive(true); titlePanel.SetActive(false); transactionGameObjects = new TransactionSummaryGameObjectList(tsData.GetPrimaryKey(), tempTitlePanel); transactionGameObjects.SetExpandedFlag(isExpanded); transactionGameObjectDict.Add(tsData.GetPrimaryKey(), transactionGameObjects); } }
public Dictionary <string, TransactionSummaryGameObjectList> ExpandCollapseBasePanel(bool shouldExpandPanel, TransactionSummaryData tsData, Dictionary <string, TransactionSummaryGameObjectList> transactionGameObjectDict) { TransactionSummaryGameObjectList transactionGameObjects = transactionGameObjectDict[tsData.GetPrimaryKey()]; transactionGameObjects.GetTransactionSummaryGameObjects().Clear(); GameObject parentGameObject = transactionGameObjects.GetParentGameObject(); GameObject expandCollapseButtonObject = parentGameObject.transform.GetComponentsInChildren <Button>()[1].gameObject; if (!shouldExpandPanel) { expandCollapseButtonObject.GetComponentInChildren <Text>().text = ">"; transactionGameObjects.SetExpandedFlag(false); } else { expandCollapseButtonObject.GetComponentInChildren <Text>().text = "v"; transactionGameObjects.SetExpandedFlag(true); foreach (TransactionSummaryFirstSubData tsFirstSubData in tsData.GetTransactionSummaryFirstSubDataList()) { GameObject tempFirstSubPanel = (GameObject)Instantiate(firstSubPanel, transform.position, transform.rotation); Transform[] ts = tempFirstSubPanel.transform.GetComponentsInChildren <Transform>(); tempFirstSubPanel.name = "FirstSubPanel_" + tsData.GetPrimaryKey() + "_" + tsFirstSubData.GetPrimaryKey(); foreach (Transform t in ts) { switch (t.gameObject.name) { case "FirstSubPanelMainText": t.gameObject.GetComponent <Text>().text = tsFirstSubData.GetPrimaryKey(); break; case "FirstSubPanelSubText": t.gameObject.GetComponent <Text>().text = ""; break; case "FirstSubPanelPrice": t.gameObject.GetComponent <Text>().text = "$" + tsFirstSubData.GetTotalPrice(); break; } } tempFirstSubPanel.SetActive(true); tempFirstSubPanel.transform.SetParent(parentGameObject.transform, false); transactionGameObjects.AddTransactionSummaryGameObject(tempFirstSubPanel); } } return(transactionGameObjectDict); }
public Dictionary <string, TransactionSummaryGameObjectList> ExpandCollapseFirstPanel(bool shouldExpandPanel, TransactionSummaryFirstSubData selectedTransSubData, string parentKey, Dictionary <string, TransactionSummaryGameObjectList> transactionGameObjectDict) { if (!shouldExpandPanel) { transactionGameObjectDict.Remove(parentKey + "_" + selectedTransSubData.GetPrimaryKey()); } else { GameObject parentGameObject = transactionGameObjectDict[parentKey].GetParentGameObject(); transactionGameObjectDict.Remove(parentKey + "_" + selectedTransSubData.GetPrimaryKey()); GameObject selectedSubPanel = parentGameObject.transform.Find("FirstSubPanel_" + parentKey + "_" + selectedTransSubData.GetPrimaryKey()).gameObject; TransactionSummaryGameObjectList transactionGameObjects = new TransactionSummaryGameObjectList(parentKey + "_" + selectedTransSubData.GetPrimaryKey(), selectedSubPanel); transactionGameObjects.SetExpandedFlag(true); transactionGameObjectDict.Add(parentKey + "_" + selectedTransSubData.GetPrimaryKey(), transactionGameObjects); foreach (TransactionSummarySecondSubData tsSecondSubData in selectedTransSubData.GetTransactionSummarySecondSubDataList()) { GameObject tempSecondSubPanel = (GameObject)Instantiate(secondSubPanel, transform.position, transform.rotation); Transform[] ts = tempSecondSubPanel.transform.GetComponentsInChildren <Transform>(); tempSecondSubPanel.name = "SecondSubPanel_" + parentKey + "_" + selectedTransSubData.GetPrimaryKey() + "_" + tsSecondSubData.GetPrimaryKey(); foreach (Transform t in ts) { switch (t.gameObject.name) { case "SecondSubPanelMainText": t.gameObject.GetComponent <Text>().text = tsSecondSubData.GetPrimaryKey(); break; case "SecondSubPanelSubText": t.gameObject.GetComponent <Text>().text = ""; break; case "SecondSubPanelPrice": t.gameObject.GetComponent <Text>().text = "$" + tsSecondSubData.GetTotalPrice(); break; } } tempSecondSubPanel.SetActive(true); tempSecondSubPanel.transform.SetParent(selectedSubPanel.transform, false); transactionGameObjects.AddTransactionSummaryGameObject(tempSecondSubPanel); } } return(transactionGameObjectDict); }
public void displayTransactionDetails(bool isAlreadyExpanded, string selectedPanelKey) { transactionDetailsList.RemoveAllRows(); TransactionDetailsRow row = transactionDetailsList.AddRow(); TransactionSummaryGameObjectList transactionGameObjects = null; row.InitiateTransactionDetailsRow(selectedMainPanelKey); transactionGameObjectDict = row.expandCollapseTransactionDetailsRows(selectedMainPanelSubDetailsData, selectedMainPanelKey, true, transactionGameObjectDict); transactionGameObjects = transactionGameObjectDict[selectedMainPanelKey]; GameObject transactionDetailsParentPanel = transactionGameObjects.GetParentGameObject(); foreach (TransactionSummaryDetailsData tsDetailsData in selectedMainPanelSubDetailsData.getTransactionSummaryDetailsData()) { string currentTransactionDetailsPanelkey = selectedMainPanelKey + "_" + tsDetailsData.GetPrimaryKey(); bool curTransactionPanelExpandedFlag = false; if ((currentTransactionDetailsPanelkey).Equals(selectedPanelKey)) { curTransactionPanelExpandedFlag = !isAlreadyExpanded; } else { if (transactionGameObjectDict.ContainsKey(currentTransactionDetailsPanelkey)) { transactionGameObjects = transactionGameObjectDict[currentTransactionDetailsPanelkey]; curTransactionPanelExpandedFlag = transactionGameObjects.IsExpanded(); if (curTransactionPanelExpandedFlag) { //transactionGameObjectDict = row.ExpandCollapseThirdPanel(curFinalPanelExpandedFlag, tsSubDetailsData, currentSecondSubPanelkey, transactionGameObjectDict); } } } GameObject transactionDetailsPanel = transactionDetailsParentPanel.transform.Find("TransactionsPanel_" + currentTransactionDetailsPanelkey).gameObject; //transactionDetailsPanel.GetComponentsInChildren<Button>()[0].onClick.AddListener(() => displayTransactionDetails(curTransactionPanelExpandedFlag, currentTransactionDetailsPanelkey)); transactionDetailsPanel.GetComponentsInChildren <Button>()[0].onClick.AddListener(() => openTransactionReceipt(tsDetailsData)); } }
public Dictionary <string, TransactionSummaryGameObjectList> expandCollapseTransactionDetailsRows(TransactionSummarySubDetailsData selectedTransSubData, string mainPanelKey, bool shouldExpandPanel, Dictionary <string, TransactionSummaryGameObjectList> transactionGameObjectDict) { if (!shouldExpandPanel) { transactionGameObjectDict.Remove(mainPanelKey); } else { transactionGameObjectDict.Remove(mainPanelKey); TransactionSummaryGameObjectList transactionGameObjects = new TransactionSummaryGameObjectList(mainPanelKey, mainPanel); transactionGameObjects.SetExpandedFlag(true); transactionGameObjectDict.Add(mainPanelKey, transactionGameObjects); foreach (TransactionSummaryDetailsData tsDetailsData in selectedTransSubData.getTransactionSummaryDetailsData()) { GameObject tempTransactionsPanel = (GameObject)Instantiate(transactionsPanel, transform.position, transform.rotation); Transform[] ts = tempTransactionsPanel.transform.GetComponentsInChildren <Transform>(); tempTransactionsPanel.name = "TransactionsPanel_" + mainPanelKey + "_" + tsDetailsData.GetPrimaryKey(); foreach (Transform t in ts) { switch (t.gameObject.name) { case "TransactionPanelMainText": t.gameObject.GetComponent <Text>().text = "Transaction #" + tsDetailsData.GetPrimaryKey() + ", " + tsDetailsData.GetTransactionTime() + " - $" + tsDetailsData.GetTotalPrice(); break; } } tempTransactionsPanel.SetActive(true); tempTransactionsPanel.transform.SetParent(mainPanel.transform, false); transactionGameObjects.GetTransactionSummaryGameObjects().Add(tempTransactionsPanel); } } return(transactionGameObjectDict); }
public void onClickRow(bool isAlreadyExpanded, string selectedPanel) { transactionByDateList.RemoveAllRows(); if (transactionSummaryDataList != null && transactionSummaryDataList.Count > 0) { TransactionByDateRow row = transactionByDateList.AddRow(); row.InitiateTransactionRows(transactionSummaryDataList, dateToggle.isOn, transactionGameObjectDict); foreach (TransactionSummaryData tsData in transactionSummaryDataList) { string currentMainPanelkey = tsData.GetPrimaryKey(); TransactionSummaryGameObjectList transactionGameObjects = null; bool tempBaseRowExpandedFlag = false; if (selectedPanel.Equals(currentMainPanelkey)) { tempBaseRowExpandedFlag = !isAlreadyExpanded; transactionGameObjectDict = row.ExpandCollapseBasePanel(tempBaseRowExpandedFlag, tsData, transactionGameObjectDict); transactionGameObjects = transactionGameObjectDict[currentMainPanelkey]; } else { if (transactionGameObjectDict.ContainsKey(currentMainPanelkey)) { transactionGameObjects = transactionGameObjectDict[currentMainPanelkey]; tempBaseRowExpandedFlag = transactionGameObjects.IsExpanded(); } if (tempBaseRowExpandedFlag) { transactionGameObjectDict = row.ExpandCollapseBasePanel(tempBaseRowExpandedFlag, tsData, transactionGameObjectDict); } } GameObject tempCurrentRow = transactionGameObjects.GetParentGameObject(); tempCurrentRow.transform.GetComponentsInChildren <Button>()[1].onClick.AddListener(() => onClickRow(tempBaseRowExpandedFlag, tsData.GetPrimaryKey())); row.expandCollapseButton.onClick.AddListener(() => onClickRow(tempBaseRowExpandedFlag, currentMainPanelkey)); if (tempBaseRowExpandedFlag) { foreach (TransactionSummaryFirstSubData tsFirstSubData in tsData.GetTransactionSummaryFirstSubDataList()) { string currentFirstSubPanelkey = currentMainPanelkey + "_" + tsFirstSubData.GetPrimaryKey(); bool tempFirstRowExpandedFlag = false; if ((currentFirstSubPanelkey).Equals(selectedPanel)) { tempFirstRowExpandedFlag = !isAlreadyExpanded; transactionGameObjectDict = row.ExpandCollapseFirstPanel(tempFirstRowExpandedFlag, tsFirstSubData, currentMainPanelkey, transactionGameObjectDict); } else { if (transactionGameObjectDict.ContainsKey(currentFirstSubPanelkey)) { transactionGameObjects = transactionGameObjectDict[currentFirstSubPanelkey]; tempFirstRowExpandedFlag = transactionGameObjects.IsExpanded(); if (tempFirstRowExpandedFlag) { transactionGameObjectDict = row.ExpandCollapseFirstPanel(tempFirstRowExpandedFlag, tsFirstSubData, currentMainPanelkey, transactionGameObjectDict); } } } transactionGameObjects = transactionGameObjectDict[currentMainPanelkey]; GameObject currentFirstPanel = transactionGameObjects.GetParentGameObject().transform.Find("FirstSubPanel_" + currentFirstSubPanelkey).gameObject; currentFirstPanel.GetComponentsInChildren <Button>()[0].onClick.AddListener(() => onClickRow(tempFirstRowExpandedFlag, currentFirstSubPanelkey)); if (tempFirstRowExpandedFlag) { foreach (TransactionSummarySecondSubData tsSecondSubData in tsFirstSubData.GetTransactionSummarySecondSubDataList()) { string currentSecondSubPanelkey = currentFirstSubPanelkey + "_" + tsSecondSubData.GetPrimaryKey(); bool curSecondPanelExpandedFlag = false; if ((currentSecondSubPanelkey).Equals(selectedPanel)) { curSecondPanelExpandedFlag = !isAlreadyExpanded; transactionGameObjectDict = row.ExpandCollapseSecondPanel(curSecondPanelExpandedFlag, tsSecondSubData, currentFirstSubPanelkey, transactionGameObjectDict); } else { if (transactionGameObjectDict.ContainsKey(currentSecondSubPanelkey)) { transactionGameObjects = transactionGameObjectDict[currentSecondSubPanelkey]; curSecondPanelExpandedFlag = transactionGameObjects.IsExpanded(); if (curSecondPanelExpandedFlag) { transactionGameObjectDict = row.ExpandCollapseSecondPanel(curSecondPanelExpandedFlag, tsSecondSubData, currentFirstSubPanelkey, transactionGameObjectDict); } } } transactionGameObjects = transactionGameObjectDict[currentFirstSubPanelkey]; GameObject currentSecondPanel = transactionGameObjects.GetParentGameObject().transform.Find("SecondSubPanel_" + currentSecondSubPanelkey).gameObject; currentSecondPanel.GetComponentsInChildren <Button>()[1].onClick.AddListener(() => onClickRow(curSecondPanelExpandedFlag, currentSecondSubPanelkey)); if (curSecondPanelExpandedFlag) { foreach (TransactionSummarySubDetailsData tsSubDetailsData in tsSecondSubData.GetTransactionSummarySubDetailsData()) { string currentFinalSubPanelkey = currentSecondSubPanelkey + "_" + tsSubDetailsData.GetPrimaryKey(); bool curFinalPanelExpandedFlag = false; if ((currentFinalSubPanelkey).Equals(selectedPanel)) { curFinalPanelExpandedFlag = !isAlreadyExpanded; transactionGameObjectDict = row.ExpandCollapseThirdPanel(curFinalPanelExpandedFlag, tsSubDetailsData, currentSecondSubPanelkey, transactionGameObjectDict); } else { if (transactionGameObjectDict.ContainsKey(currentFinalSubPanelkey)) { transactionGameObjects = transactionGameObjectDict[currentFinalSubPanelkey]; curFinalPanelExpandedFlag = transactionGameObjects.IsExpanded(); if (curFinalPanelExpandedFlag) { transactionGameObjectDict = row.ExpandCollapseThirdPanel(curFinalPanelExpandedFlag, tsSubDetailsData, currentSecondSubPanelkey, transactionGameObjectDict); } } } transactionGameObjects = transactionGameObjectDict[currentSecondSubPanelkey]; GameObject currentThirdPanel = transactionGameObjects.GetParentGameObject().transform.Find("ThirdSubPanel_" + currentFinalSubPanelkey).gameObject; currentThirdPanel.GetComponentsInChildren <Button>()[1].onClick.AddListener(() => openTransactionDetailsView(currentFinalSubPanelkey, tsSubDetailsData)); } } } } } } } } }