// ========================================= PRIVATE FUNCS ========================================= private void AddChildPanel(OriginPanel originPanel, LinkLabel linkLabel) { CommonPanel comPanel = linkLabel.GetReferPanel(); // foreach all of labels List <Label> labels = comPanel.GetLabels(); if (labels.Count == 0) { return; } Label label = labels[Random.Range(0, labels.Count)]; // add normal label if (label is InputLabel) { originPanel.AddLabel(label); if (resultText.Length > 0) { resultText += " "; } resultText += label.GetText(); } // add origin panel (for linking label) else if (label is LinkLabel) { CommonPanel referPanel = (label as LinkLabel).GetReferPanel(); OriginPanel genPanel = originPanel.AddOriginPanel(referPanel); // loop add all labels of the generated panel AddChildPanel(genPanel, label as LinkLabel); } }
public void ShowResult(CommonPanel panel) { // clear old result for (int i = 0; i < transPanelCont.childCount; i++) { Destroy(transPanelCont.GetChild(i).gameObject); } resultText = ""; // show title string valText = panel.GetTitleObj().GetTextObject().text; sentencePanel.SetValue(valText); // show result List <Label> labels = panel.GetLabels(); for (int i = 0; i < labels.Count; i++) { Label label = labels[i]; if (label is InputLabel) { // create simple label Label genLabel = Instantiate(prefLabel, transPanelCont).GetComponent <Label>(); genLabel.Init(); genLabel.SetText(label.GetTextObject()); if (resultText.Length > 0) { resultText += " "; } resultText += label.GetText(); } else if (label is LinkLabel) { // create origin label (nest labels) OriginPanel genPanel = Instantiate(prefOriginPanel, transPanelCont).GetComponent <OriginPanel>(); genPanel.Init(); // change title for this panel CommonPanel referPanel = (label as LinkLabel).GetReferPanel(); genPanel.SetTitle(referPanel.GetTitleLabel().GetTextObject().text); genPanel.SetColor(referPanel.GetColorType()); // add child labels for genereted panel AddChildPanel(genPanel, label as LinkLabel); } } CanvasMgr.Instance.RefreshCanvas(); (CanvasMgr.Instance.GetBoard <ResultBoard>() as ResultBoard).ShowResult(resultText); }
public void SaveDataInfo(CommonPanel panel) { if (!isInitDone) { return; } // determine panel is in which board (element or story) List <Label> labels = panel.GetLabels(); //if (labels.Count == 0) // return; // save val DataType type = panel.GetBoard() is ElementBoard ? DataType.Element : DataType.Story; // get all text of label of panel List <string> vars = new List <string>(); for (int i = 0; i < labels.Count; i++) { Label label = labels[i]; string var = ""; // element of Element Board if (type == DataType.Element) { if (label is LinkLabel) { // store the connection //AddLinkingVal(labelText, key); var = "#" + label.GetText() + "#"; } else { var = label.GetText(); } } // element of Story Board else { if (label is LinkLabel) { // store the connection //AddLinkingVal(labelText, key); var = "#" + label.GetText() + "#"; } else { var = label.GetText(); } } vars.Add(var); } // get key of panel string key = panel.GetTitle(); if (IsContainDataInfo(type, key)) { AddDataInfo(type, key, vars); } else { ReplaceDataInfo(type, key, vars); } // save index data SaveIndexData(panel); }