/** * Called by the edit section panel to remove a section */ public void removeSection() { string removedSection = tObject.text; Transform par = tm.SectionContentPar.transform; if (!tObject.text.Contains("/")) { Destroy(tm.SectionContentPar.transform.Find(tObject.text + "Button").gameObject); } else { for (int i = 0; i < tm.SectionContentPar.transform.childCount; i++) { if (tm.SectionContentPar.transform.GetChild(i).name.Equals(tObject.text + "Button")) { Destroy(tm.SectionContentPar.transform.GetChild(i).gameObject); break; } } } string sectionData = ds.GetData(removedSection).GetAllData(); ds.RemoveSection(removedSection); //editSectionPanel.gameObject.SetActive (false); tm.RemoveCurrentSection(); List <string> keyList = ds.GetImageKeys(); // ds.GetImages ().Keys.ToList (); foreach (string key in keyList) { if (key.StartsWith(tObject.text) || sectionData.Contains("<Image>" + key + "</Image>")) { Debug.Log("Removing Image: " + key); ds.RemoveImage(key); //ds.GetImages ().Remove (key); } } keyList = ds.GetDialogues().Keys.ToList(); foreach (string key in keyList) { if (key.StartsWith(tObject.text)) { ds.GetDialogues().Remove(key); } } keyList = ds.GetQuizes().Keys.ToList(); foreach (string key in keyList) { if (key.StartsWith(tObject.text)) { ds.GetQuizes().Remove(key); } } string switchTo = ""; for (int i = 0; i < tm.SectionContentPar.transform.childCount; i++) { Transform child = tm.SectionContentPar.transform.GetChild(i); if (!child.name.Equals("Filler")) { switchTo = child.Find("SectionDisplayTMP").GetComponent <TextMeshProUGUI> ().text.Replace(" ", "_") + "Section"; if (!switchTo.Equals(removedSection)) { break; } } else { switchTo = ""; } } //Debug.Log (tm.SectionContentPar.transform.GetComponentsInChildren<Transform>()[1].name); //switchTo = tm.SectionContentPar.GetComponentsInChildren<Transform>()[1].Find("SectionDisplayText").GetComponent<TextMeshProUGUI>().text; if (switchTo.Equals("")) { BG.transform.Find("SectionCreatorBG").gameObject.SetActive(true); for (int i = 0; i < tm.TabContentPar.transform.childCount; i++) { Destroy(tm.TabContentPar.transform.GetChild(i).gameObject); } } else { tm.SwitchSection(switchTo); } //Destroy (editTabPanel); }
/** * Switches the active section. * Pass in the LinkToText */ public void SwitchSection(string sectionName) { string sName = null; //Disable the text and edit button of the section we're switching away from (show only the icon) List <Button> sectionButtonsList = SectionContentPar.GetComponentsInChildren <Button>().ToList(); sectionButtonsList.RemoveAt(sectionButtonsList.Count - 1); //Remove the AddSectionButton if (currentSection != null && !currentSection.Equals("")) { sName = currentSection.Replace(" ", "_") + "Button"; foreach (Button t in sectionButtonsList) { if (t.transform.name.Equals(sName)) { Transform[] components = t.transform.GetComponentsInChildren <Transform>(); foreach (Transform c in components) { if (!c.name.Equals(t.name) && !c.name.Equals("SectionDisplayTMP")) { c.gameObject.SetActive(false); } if (c.name.Equals("SectionDisplayTMP") && c.GetComponent <TextMeshProUGUI>().preferredWidth > 85) { c.GetComponent <LayoutElement>().preferredWidth = 85; } } t.transform.GetChild(0).gameObject.SetActive(true); t.interactable = true; } } } if (sectionName == null || sectionName.Equals("")) //No section provided. Use default { if (ID == null) { ID = new DefaultDataScript(); } sectionName = ID.defaultSection; print(string.Join(",", sectionButtonsList.Select(b => b.name))); if (sectionButtonsList.Count > 0 && sectionButtonsList[0].name.Length > 0) { sectionName = sectionButtonsList[0].name.Remove(sectionButtonsList[0].name.Length - "Button".Length); } print(sectionName); } else if (sectionName.Equals(currentSection)) //Trying to switch to current section { return; } if (currentSection != null && !currentSection.Equals("")) //Save data before switching away { AddToDictionary(); currentSection = null; currentTab = null; } currentSection = sectionName; //Destroy Tab buttons and content foreach (Transform child in TabContentPar.GetComponentInChildren <Transform>()) { Destroy(child.gameObject); } foreach (Transform child in TabButtonContentPar.GetComponentInChildren <Transform>()) { if (child.name != "AddTabButton") { Destroy(child.gameObject); } } //Enable the new section's text and edit button sName = currentSection.Replace(" ", "_") + "Button"; foreach (Button t in sectionButtonsList) { if (t.name.Equals(sName) && !t.name.Equals("AddSectionButton")) { Transform[] components = t.GetComponentsInChildren <Transform>(true); foreach (Transform c in components) { if (c.name.Equals("SectionDisplayText")) { continue; } c.gameObject.SetActive(true); if (c.name.Equals("SectionDisplayTMP")) { if (c.GetComponent <TextMeshProUGUI>().preferredWidth > 270) { c.GetComponent <LayoutElement>().preferredWidth = 270; } else { c.GetComponent <LayoutElement>().preferredWidth = -1; } } } t.GetComponent <Button>().interactable = false; t.GetComponent <ScriptButtonFixScript>().FixTab(); } } //Load in the Tab buttons for each tab List <string> sectionTabs = null; if (ds.GetData(currentSection) != null) { sectionTabs = ds.GetData(currentSection).GetTabList(); } int i = 0; if (sectionTabs == null || sectionTabs.Count == 0) //Spawn a default tab //transform.Find("TabSelectorBG").gameObject.SetActive(true); //Let the user choose their new tab { GameObject savePrefab = Instantiate(Resources.Load("Writer/Prefabs/Panels/TabSelectorBG")) as GameObject; savePrefab.transform.SetParent(BG.transform, false); if (savePrefab.transform.Find("TabSelectorPanel/RowTitle/CancelButton")) { savePrefab.transform.Find("TabSelectorPanel/RowTitle/CancelButton").gameObject.SetActive(false); } //This code spawns in the default tab listed in DefaultDataScript /*string tabName = ID.defaultTab; * GameObject newTab = Resources.Load (gData.resourcesPath + "/Prefabs/TabButton") as GameObject; * Text[] children = newTab.GetComponentsInChildren<Text> (); * foreach (Text child in children) { * if (child.name.Equals ("TabButtonLinkToText")) { //Where the button links to * child.text = tabName.Replace (" ", "_") + "Tab" + i; * } else if (child.name.Equals ("TabButtonDisplayText")) { //What the button displays * child.text = tabName; * } * } * //The button's position * newTab = Instantiate (newTab, TabButtonContentPar.transform); * newTab.name = tabName + "Button"; * ds.GetData (currentSection).AddData (tabName.Replace (" ", "_") + "Tab" + i, null); * ds.GetData (currentSection).SetCurrentTab (new TabInfoScript (i, tabName.Replace (" ", "_") + "Tab"));*/ } else { //Spawn in the section's tab buttons Debug.Log("TABS = " + string.Join(",", sectionTabs.ToArray())); foreach (string tabName in sectionTabs) { GameObject newTab = Resources.Load(GlobalData.resourcePath + "/Prefabs/TabButton") as GameObject; TextMeshProUGUI[] children = newTab.GetComponentsInChildren <TextMeshProUGUI>(); foreach (TextMeshProUGUI child in children) { if (child.name.Equals("TabButtonLinkToText")) //Where the button links to { child.text = tabName; } else if (child.name.Equals("TabButtonDisplayText")) //What the button displays { string customName = ds.GetData(currentSection).GetTabInfo(tabName).customName; if (customName != null) // && customName != tabName) { { child.text = customName; } else { if (child.text.Contains(" ")) { //child.text = tabName.Replace ("_", " ").Substring (0, tabName.Length - "Tab".Length); //Unformat it //child.text = child.text.Replace(" ", "_") + "Tab"; } child.text = tabName; ds.GetData(currentSection).GetTabInfo(tabName).customName = child.text; } } } //The button's position i++; newTab = Instantiate(newTab, TabButtonContentPar.transform); newTab.name = tabName /*.Replace (" ", "_")*/ + "TabButton"; } //transform.Find ("TabSelectorBG/TabSelectorPanel/Content/ScrollView/Viewport/Content/BackgroundInfoTabPanel").gameObject.SetActive (activateBGInfoOption); for (int j = 0; j < TabButtonContentPar.transform.childCount; j++) { //foreach (string tabName in sectionTabs) { //TabButtonContentPar.transform.Find (tabName/*.Replace (" ", "_")*/ + "TabButton").GetComponent<TabAndSectionDragScript> ().UpdateEntryList (); if (!TabButtonContentPar.transform.GetChild(j).name.Equals("AddTabButton")) { TabButtonContentPar.transform.GetChild(j).GetComponent <TabAndSectionDragScript>().UpdateEntryList(); } } } //If the section had a custom icon image (and can load it), then set the tab background bar color to the icon image color if (currentSection != null && ds.GetImageKeys().Contains(currentSection)) { if (ds.GetImage(currentSection).color.a > 0) { GameObject.Find("TabButtonsPanel").GetComponent <Image>().color = ds.GetImage(currentSection).color; } else { GameObject.Find("TabButtonsPanel").GetComponent <Image>().color = ID.defaultColor; } } else if (currentSection == ID.defaultSection) { GameObject.Find("TabButtonsPanel").GetComponent <Image>().color = ID.defaultColor; } addTabButton.transform.SetAsLastSibling(); //Switch to the default/last active tab of the new section TabInfoScript tab = ds.GetData(currentSection).GetCurrentTab(); if (tab != null) { string formattedName = tab.customName; //.Replace (" ", "_") + "Tab"; //Debug.Log ("CUSTOM NAME: " + tab.customName); setTabName(formattedName); SwitchTab(formattedName); } else if (ds.GetData(getCurrentSection()).GetTabList().Count <= 0) { return; } else { //Debug.Log (string.Join (",", ds.GetData (getCurrentSection ()).GetTabList ().ToArray ())); TabInfoScript newTabInfo = ds.GetData(getCurrentSection()).GetTabInfo(ds.GetData(getCurrentSection()).GetTabList()[0]); string formattedName = newTabInfo.customName; //.Replace (" ", "_") + "Tab"; //Debug.Log ("DEFAULT'S CUSTOM NAME: " + newTabInfo.customName); setTabName(formattedName); SwitchTab(formattedName); //SwitchTab (ds.GetData (getCurrentSection ()).GetTabList () [0]); } }
public void ApprovedPinRemove(GameObject pin) { //Dropdown pDrop = pin.transform.parent.parent.Find ("AddPinButton").GetComponentInChildren<Dropdown> (); //pDrop.AddOptions (new List<Dropdown.OptionData>(){new Dropdown.OptionData ("Quiz", pin.transform.Find ("ItemIcon").GetComponent<Image> ().sprite)}); //pDrop.GetComponent<PinTabScript>().myOptions.Add (pin.name.Remove (pin.name.Length - "pin".Length)); DataScript ds = GameObject.Find("GaudyBG").GetComponent <DataScript> (); string uniquePath = ""; Debug.Log(pin.transform.name); Transform tempPin = pin.transform; if (!tempPin.GetComponentInParent <HistoryFieldManagerScript> ()) { Transform uniqueParent = tempPin; uniquePath = ""; while (uniqueParent.parent != null && !uniqueParent.parent.name.Equals("Content")) { if (uniqueParent.parent.GetComponent <HistoryFieldManagerScript> () != null) { break; } uniqueParent = uniqueParent.parent; } uniquePath = uniqueParent.name; while (!uniqueParent.name.Equals(ds.GetComponent <TabManager>().getCurrentTab() + "Tab")) { uniqueParent = uniqueParent.parent; if (uniqueParent == null) { break; } uniquePath = uniqueParent.name + "/" + uniquePath; } uniquePath = ds.GetComponent <TabManager>().getCurrentSection() + "/" + uniquePath; } else { while (tempPin != null) { if (tempPin.name.StartsWith("LabEntry:")) { //uniquePath = "LabEntry: " + tempPin.GetSiblingIndex() + uniquePath; uniquePath = tempPin.name + uniquePath; } if (tempPin.name.EndsWith("Tab")) { uniquePath = tempPin.name + "/" + uniquePath; } tempPin = tempPin.parent; } uniquePath = ds.GetComponent <TabManager>().getCurrentSection() + "/" + uniquePath; } Debug.Log("Removing: " + uniquePath); switch (pin.transform.name) { case "DialoguePin": ds.GetDialogues().Remove(uniquePath); break; case "QuizPin": Dictionary <string, string> quizes = ds.GetQuizes(); string quizData = ""; if (quizes.ContainsKey(uniquePath)) { quizData = quizes [uniquePath]; } else { break; } ds.GetQuizes().Remove(uniquePath); List <string> imagesToRemove = new List <string> (); foreach (string key in ds.GetImageKeys()) { if (quizData.Contains("<Image>" + key + "</Image>")) { Debug.Log("Removing image: " + key); imagesToRemove.Add(key); } } foreach (string s in imagesToRemove) { quizes.Remove(s); } break; case "FlagPin": ds.GetFlags().Remove(uniquePath); break; case "EventPin": // Wipe event input break; } if (pin.transform.Find("Item Background Off")) { pin.transform.Find("Item Background Off").gameObject.SetActive(true); pin.transform.Find("Item Background On").gameObject.SetActive(false); } else { Destroy(pin.gameObject); } }
/** * Called when removing a tab from the edit tab panel */ public void removeTab() { //Debug.Log (tObject.text); tm.AddToDictionary(); string tabData = ds.GetData(tm.getCurrentSection(), tabName.text); ds.RemoveTab(tabName.text); tm.DestroyCurrentTab(); tm.TabButtonContentPar.transform.Find(tabName.text + "TabButton"); if (!tabName.text.Contains("/")) { Destroy(tm.TabButtonContentPar.transform.Find(tabName.text + "TabButton").gameObject); } else { for (int i = 0; i < tm.TabButtonContentPar.transform.childCount; i++) { if (tm.TabButtonContentPar.transform.GetChild(i).name.Equals(tabName.text + "TabButton")) { Destroy(tm.TabButtonContentPar.transform.GetChild(i).gameObject); break; //break out of the loop } } } if (ds.GetData(tm.getCurrentSection()).GetTabList().Count != 0) { TabInfoScript newTabInfo = ds.GetData(tm.getCurrentSection()).GetTabInfo(ds.GetData(tm.getCurrentSection()).GetTabList() [0]); tm.setTabName(newTabInfo.customName); tm.SwitchTab(ds.GetData(tm.getCurrentSection()).GetTabList() [0]); } else { //BG.transform.Find ("TabSelectorBG").gameObject.SetActive (true); GameObject tabSelectorPrefab = Instantiate(Resources.Load("Writer/Prefabs/Panels/TabSelectorBG")) as GameObject; tabSelectorPrefab.transform.SetParent(BG.transform, false); if (tabSelectorPrefab.transform.Find("TabSelectorPanel/RowTitle/CancelButton")) { tabSelectorPrefab.transform.Find("TabSelectorPanel/RowTitle/CancelButton").gameObject.SetActive(false); } } //Debug.Log (ds.GetData (tm.getCurrentSection()).getTabList ()[0]); tabEditPrefab.transform.Find(TitleValuePath).GetComponent <TMP_InputField>().text = ""; //tabEditPrefab.gameObject.SetActive (false); if (tabName.text.StartsWith("Background_InfoTab")) { ds.transform.Find("TabSelectorBG/TabSelectorPanel/Content/ScrollView/Viewport/Content/BackgroundInfoTabPanel").gameObject.SetActive(true); } Destroy(tabEditPrefab); List <string> keyList = ds.GetImageKeys(); // ds.GetImages ().Keys.ToList(); foreach (string key in keyList) { if (tabData.Contains("<Image>" + key + "</Image>")) { Debug.Log("Removing Image: " + key); ds.RemoveImage(key); //ds.GetImages ().Remove (key); } } keyList = ds.GetDialogues().Keys.ToList(); foreach (string key in keyList) { if (key.StartsWith(tm.getCurrentSection() + "/" + tabName.text + "Tab")) { ds.GetDialogues().Remove(key); } } keyList = ds.GetQuizes().Keys.ToList(); foreach (string key in keyList) { if (key.StartsWith(tm.getCurrentSection() + "/" + tabName.text + "Tab")) { ds.GetQuizes().Remove(key); } } }