Esempio n. 1
0
        int checkDuplication(JsonTreeViewItem add_tvi)
        {
            if (add_tvi == null)
            {
                return(1);
            }

            JsonTextBox add_tb = add_tvi.Header.Children[0] as JsonTextBox;

            if (add_tb == null)
            {
                return(1);
            }

            // 중복 비교
            for (int i = 0; i < this.Items.Count; i++)
            {
                JsonTreeViewItem tvi = this.Items[i] as JsonTreeViewItem;
                if (tvi == null)
                {
                    continue;
                }

                JsonTextBox tb = tvi.Header.Children[0] as JsonTextBox;
                if (tb == null)
                {
                    continue;
                }
                // 키중복이면 삽입 x
                if (tb.Text == add_tb.Text)
                {
                    return(-1);
                }
            }
            return(0);
        }
Esempio n. 2
0
        static void convertToJToken_recursive(JsonTreeViewItem tvi_cur, JObject jobj_cur)
        {
            if (tvi_cur == null || jobj_cur == null)
            {
                return;
            }

            JToken cur_jtok = jobj_cur;

            // 여기서부터는 property 로 시작
            foreach (var v in tvi_cur.Items)
            {
                JsonTreeViewItem tvi_child = v as JsonTreeViewItem;
                if (tvi_child == null)
                {
                    continue;
                }

                JsonTreeViewItemHeader pan = tvi_child.Header as JsonTreeViewItemHeader;
                if (pan == null)
                {
                    continue;
                }

                // pan(MyTreeViewItem.Header) = key, val or val.type, button
                JsonTextBox tb_key = pan.Children[0] as JsonTextBox;
                JsonTextBox tb_val = pan.Children[1] as JsonTextBox;

                if (tb_val is KeyTextBox)
                {
                    KeyTextBox tb_type = tb_val as KeyTextBox;
                    switch (tvi_child.type)
                    {
                    case JsonTreeViewItem.JsonType.JObject:
                    {
                        JObject   jobj  = new JObject();
                        JProperty jprop = new JProperty(tb_key.Text, jobj);
                        (cur_jtok as JObject).Add(jprop);
                        convertToJToken_recursive(tvi_child, jobj);
                    }
                    break;

                    case JsonTreeViewItem.JsonType.JArray:
                    {
                        JArray    jarr  = new JArray();
                        JProperty jprop = new JProperty(tb_key.Text, jarr);
                        (cur_jtok as JObject).Add(jprop);
                        for (int i = 0; i < tvi_child.Items.Count; i++)
                        {
                            JObject jobj = new JObject();
                            jarr.Add(jobj);
                            convertToJToken_recursive(tvi_child.Items[i] as JsonTreeViewItem, jobj);
                        }
                    }
                    break;
                    }
                }
                else
                {
                    JProperty jprop = new JProperty(tb_key.Text, tb_val.Text);
                    (cur_jtok as JObject).Add(jprop);
                }
            }
        }