private void RemoveNode(object sender, EventArgs e) { Control c = (Control)sender; JSONNode n = (JSONNode)c.Tag; TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, (JSONNode)c.Tag); TreeNode tP = t.Parent; if (tP == null) { MessageBox.Show("최상위 노드는 지울 수 없습니다"); return; } tP.Nodes.Remove(t); Control cP = c.Parent; cP.Controls.Remove(c); JSONNode pNode = n.parent; for (int i = 0; i < pNode.Count; ++i) { if (ReferenceEquals(pNode[i], n)) { pNode.remove(i); PanelReSort(cP); break; } } }
private void AddNewNodeButton(object sender, EventArgs e) { Control c = (Control)sender; Panel p = JSONFormUtil.NextPanelFind(c, (JSONNode)c.Tag); AddNewNode(p, (JSONNode)c.Tag); }
public JSONNode ReceiveNode(JSONNode n) { tview_object.Nodes.Clear(); MainPanel.Controls.Clear(); JSONFormUtil.MakeTreeView(n, tview_object); //tview_object.Nodes.Add(node1); RootNode = n; //MappingKey(tview_object.TopNode, n); BasePanelMake(n); return(null); }
public void AddNewNode(Panel p, JSONNode n) { JSONString s = new JSONString("type a string"); string key = n.Add(s); TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, n); TreeNode newTreenode = JSONFormUtil.TreeNodeMake(s); t.Nodes.Add(newTreenode); CreateGroupChild(s, key, p, p.Height - p.Margin.Bottom, (n is JSONObject)?true:false); PanelReSort(p); return; }
public void AddTemplateNodeToBase(JSONNode n) { Panel target; if (nowSelectedNode == null) { target = (Panel)MainPanel.Controls[2]; } else { target = (Panel)nowSelectedNode.Controls[nowSelectedNode.Controls.Count - 1]; } JSONNode node = (JSONNode)target.Tag; TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, node); string key = node.Add(n); TreeNode newTreenode = JSONFormUtil.TreeNodeMake(n); t.Nodes.Add(newTreenode); CreateGroupChild(n, key, target, target.Height, node.type == JSONType.Object ? true : false); PanelReSort(target); }
private void ChangeType(object sender, EventArgs e) { ComboBox c = (ComboBox)sender; JSONNode n = (JSONNode)c.Tag; TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, n); JSONNode newnode; switch (c.SelectedIndex) { case 0: newnode = new JSONArray(); break; case 1: newnode = new JSONBool(true); break; case 2: newnode = new JSONNull(); break; case 3: newnode = new JSONNumber(0); break; case 4: newnode = new JSONObject(); break; case 5: newnode = new JSONString("type a string"); break; default: newnode = new JSONNull(); break; } t.Nodes.Clear(); t.Text = newnode.type.GetTypeString(); t.Tag = newnode; JSONNode pNode = n.parent; for (int i = 0; i < pNode.Count; ++i) { if (ReferenceEquals(pNode[i], n)) { pNode[i] = newnode; break; } } Panel p = (Panel)c.Parent; p.Tag = newnode; Control keybox = FindControl(p, "keybox"); string original_key = keybox.Text; bool original_fixed = keybox.Enabled; p.Controls.Clear(); p.Controls.Add(CreateKeyBox(newnode, original_key, original_fixed)); p.Controls.Add(CreateComboBox(newnode)); p.Controls.Add(CreateDeleteButton(newnode)); if (newnode.type == JSONType.Object || newnode.type == JSONType.Array) { p.Controls.Add(CreateValueLabel()); p.Controls.Add(CreateModifyButton(newnode)); Panel g = CreateJSONNodeGroupBox(newnode, p); p.Controls.Add(CreateNewNodeButton(newnode)); g.BackColor = FormConstValue.baseColor; g.Location = new Point(FormConstValue.stepX, FormConstValue.stepY); p.Controls.Add(g); } else { p.Controls.Add(CreateValueTextBox(newnode)); } PanelReSort(p); }
private void pasteToolStripMenuItem_Click(object sender, EventArgs e) { if (copyTarget == null) { return; } Panel target; if (nowSelectedNode == null) { target = (Panel)MainPanel.Controls[2]; } else { JSONNode tmpnode = (JSONNode)nowSelectedNode.Tag; if (tmpnode is JSONObject || tmpnode is JSONArray) { target = (Panel)nowSelectedNode.Controls[nowSelectedNode.Controls.Count - 1]; } else { MessageBox.Show("선택된 대상은 오브젝트나 배열이 아닙니다"); return; } } JSONNode node = (JSONNode)target.Tag; if (copyTarget.type != JSONType.Array && copyTarget.type != JSONType.Object) { JSONNode copied = copyTarget.CloneNode(); TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, node); string key = node.Add(copied); TreeNode newTreenode = new TreeNode(); newTreenode.Tag = copyTarget; newTreenode.Text = copyTarget.type.GetTypeString(); t.Nodes.Add(newTreenode); CreateGroupChild(copied, key, target, target.Height, node.type == JSONType.Object ? true : false); PanelReSort(target); } else { if (JSONParseThread.Parsing) { MessageBox.Show("다른 파싱이 진행중입니다"); return; } string parseString = copyTarget.Stringify(); JSON.Parse((n) => { JSONNode copied = n; TreeNode t = JSONFormUtil.FindTreeNode(tview_object.TopNode, node); string key = node.Add(copied); TreeNode newTreenode = JSONFormUtil.TreeNodeMake(copied); t.Nodes.Add(newTreenode); CreateGroupChild(copied, key, target, target.Height, node.type == JSONType.Object ? true : false); PanelReSort(target); return(n); }, JSONExceptionCatch, parseString); } }