Пример #1
0
        public void LoadModelWithRules()
        {
            EditableTreeView editableTv = new EditableTreeView();

            TreeModel <string> tm = new TreeModel <string>("",
                                                           new List <TreeModel <string> >()
            {
                new TreeModel <string>("section 1",
                                       new List <TreeModel <string> >()
                {
                    new TreeModel <string>("sec1item1"),
                    new TreeModel <string>("sec1item2")
                }),
                new TreeModel <string>("section 2"),
            });

            List <EditableTreeViewLevelRule> rules =
                new List <EditableTreeViewLevelRule>()
            {
                new EditableTreeViewLevelRule("section", true),
                new EditableTreeViewLevelRule("item", true),
            };

            editableTv.LoadModelWithRules(tm, rules);

            TreeModel <string> saved = new TreeModel <string>("", editableTv.SaveToTreeModel());

            Assert.AreEqual(tm, saved);

            Assert.IsTrue(LayersHaveTextBoxes(editableTv, 2));
        }
        public EditableTreeViewSettingsMapping(string storageKey,
                                               string defaultValue, EditableTreeView treeView,
                                               IEnumerable <EditableTreeViewLevelRule> rules)
            : base(storageKey, defaultValue)
        {
            this.TreeView = treeView;
            this.Rules    = rules;

            this.Model            = new TreeModel <string>("");
            this.TreeModelMapping = new TreeModelSettingsMapping(
                storageKey, defaultValue, this.Model);
        }
Пример #3
0
        public void TestEditableTreeViewSettingsMapping()
        {
            TreeModel <string> tm = new TreeModel <string>("",
                                                           new List <TreeModel <string> >()
            {
                new TreeModel <string>("section 1",
                                       new List <TreeModel <string> >()
                {
                    new TreeModel <string>("sec1item1"),
                    new TreeModel <string>("sec1item2")
                }),
                new TreeModel <string>("section 2"),
            });

            List <EditableTreeViewLevelRule> rules =
                new List <EditableTreeViewLevelRule>()
            {
                new EditableTreeViewLevelRule("section", true),
                new EditableTreeViewLevelRule("item", true),
            };

            EditableTreeView etv = new EditableTreeView();
            //etv.LoadModelWithRules(tm, rules);

            EditableTreeViewSettingsMapping mapping =
                new EditableTreeViewSettingsMapping("test", null,
                                                    etv, rules);

            string serialized = mapping.Serialize();

            EditableTreeView dupe = new EditableTreeView();
            EditableTreeViewSettingsMapping mapdupe =
                new EditableTreeViewSettingsMapping("test", null,
                                                    etv, rules);

            mapdupe.Deserialize(serialized);

            Assert.AreEqual(etv.SaveToTreeModel(""), dupe.SaveToTreeModel(""));
            Assert.AreEqual(serialized, mapdupe.Serialize());
        }
Пример #4
0
        public void AddWithTextbox()
        {
            EditableTreeView editableTv = new EditableTreeView();

            TreeModel <string> tm = new TreeModel <string>("",
                                                           new List <TreeModel <string> >()
            {
                new TreeModel <string>("section 1",
                                       new List <TreeModel <string> >()
                {
                    new TreeModel <string>("sec1item1"),
                    new TreeModel <string>("sec1item2")
                }),
                new TreeModel <string>("section 2"),
            });

            List <EditableTreeViewLevelRule> rules =
                new List <EditableTreeViewLevelRule>()
            {
                new EditableTreeViewLevelRule("section", true),
                new EditableTreeViewLevelRule("item", true),
            };

            editableTv.LoadModelWithRules(tm, rules);

            foreach (object item in editableTv.Items)
            {
                if (item is TextBox)
                {
                    TextBox tb = (TextBox)item;
                    tb.Text = "newitem";

                    tb.RaiseEvent(new KeyEventArgs(
                                      Keyboard.PrimaryDevice,
                                      new FakePresentationSource(),
                                      0,
                                      Key.Enter)
                    {
                        RoutedEvent = Keyboard.KeyUpEvent
                    });

                    break;
                }
            }

            TreeModel <string> saved = new TreeModel <string>("", editableTv.SaveToTreeModel());

            TreeModel <string> expectedResult = new TreeModel <string>("",
                                                                       new List <TreeModel <string> >()
            {
                new TreeModel <string>("section 1",
                                       new List <TreeModel <string> >()
                {
                    new TreeModel <string>("sec1item1"),
                    new TreeModel <string>("sec1item2")
                }),
                new TreeModel <string>("section 2"),
                new TreeModel <string>("newitem")
            });

            Assert.AreEqual(expectedResult, saved);

            Assert.IsTrue(LayersHaveTextBoxes(editableTv, 2));
        }