コード例 #1
0
        static void tempSave_Click(object sender, EventArgs e)
        {
            TreeView         tv       = ((MenuItem)sender).Tag as TreeView;
            CategoryTreeNode settings = tv.Tag as CategoryTreeNode;

            BaseLoader <CategoryTreeNode> .Save(settings.mFileName, settings);
        }
コード例 #2
0
        public void Setup(CategoryTreeNode settings, Category cat)
        {
            mCat = cat;
            this.textBox1.Text = mCat.Name;

            this.collectionChooser1.SetOptions(settings.mAllEntries);

            mTempEntries.Clear();
            mTempEntries.AddRange(mCat.Entries);
            this.collectionChooser1.BoundSelectionList = mTempEntries;
        }
コード例 #3
0
        //Build a tree with built in edit caps
        public static TreeNode BuildTreeEditor(CategoryTreeNode settings)
        {
            TreeNode root = new TreeNode();

            root.Text = "Root";
            foreach (Category c in settings.Categories)
            {
                TreeNode cat = LoadCategoryEditor(c);
                root.Nodes.Add(cat);
            }

            return(root);
        }
コード例 #4
0
        public void Setup(CategoryTreeNode settings)//ICollection<string> entries)
        {
            mSettings     = settings;
            mTreeView.Tag = mSettings;

            mTreeView.Nodes.Clear();


            mTreeView.Nodes.AddRange(CategoryTreeLogic.BuildTree(mSettings));

            //mTreeView.Nodes.AddRange(CategoryTreeLogic.BuildTreeEditor(mSettings).Nodes);

            //load it up...
        }
コード例 #5
0
        static void addTopCategory_Click(object sender, EventArgs e)
        {
            TreeView         tv       = ((MenuItem)sender).Tag as TreeView;
            CategoryTreeNode settings = tv.Tag as CategoryTreeNode;

            Category cat = new Category();

            cat.Name = "New Category";
            settings.Categories.Add(cat);

            TreeNode category = new TreeNode();

            category.Text = cat.Name;
            category.Tag  = cat;
            tv.Nodes.Add(category);
        }
コード例 #6
0
        protected static ContextMenu GetMainMenu(TreeView tv, CategoryTreeNode settings)
        {
            ContextMenu menu = new ContextMenu();

            MenuItem addTopCategory = new MenuItem("Add Category");

            addTopCategory.Click += new EventHandler(addTopCategory_Click);
            addTopCategory.Tag    = tv;
            menu.MenuItems.Add(addTopCategory);

            MenuItem tempSave = new MenuItem("tempSave");

            tempSave.Click += new EventHandler(tempSave_Click);
            tempSave.Tag    = tv;
            menu.MenuItems.Add(tempSave);

            return(menu);
        }
コード例 #7
0
        public static TreeNode[] BuildTree(CategoryTreeNode settings)
        {
            //ICollection<string> names = settings.mAllEntries;

            //TreeNode root = new TreeNode();
            //root.Text = "Root";
            List <TreeNode> nodes = new List <TreeNode>();

            foreach (Category c in settings.Categories)
            {
                TreeNode cat = LoadCategory(c);
                //root.Nodes.Add(cat);
                nodes.Add(cat);
            }

            //return root;
            return(nodes.ToArray());
        }
コード例 #8
0
        static public void ShowMenu(TreeView tv, CategoryTreeNode settings, MouseEventArgs e)
        {
            TreeNode    node = tv.GetNodeAt(e.X, e.Y);
            ContextMenu m    = null;

            if (e.Button == MouseButtons.Right)
            {
                if (node != null)
                {
                    m = CategoryTreeLogic.GetMenu(tv, node);
                }
                else
                {
                    m = CategoryTreeLogic.GetMainMenu(tv, settings);
                }
            }
            if (m != null)
            {
                m.Show(tv, new Point(e.X, e.Y));
            }
        }
コード例 #9
0
        static void deleteCategory_Click(object sender, EventArgs e)
        {
            TreeNode node = ((MenuItem)sender).Tag as TreeNode;
            Category cat  = node.Tag as Category;

            TreeView         tv       = node.TreeView;
            CategoryTreeNode settings = tv.Tag as CategoryTreeNode;


            TreeNode parentNode = node.Parent;

            //has  parent
            if (parentNode != null)
            {
                Category parentCat = parentNode.Tag as Category;
                if (parentCat != null)
                {
                    parentNode.Nodes.Remove(node);
                    parentCat.Categories.Remove(cat);
                    return;
                }
                else
                {
                    settings.Categories.Remove(cat);
                    parentNode.Nodes.Remove(node);
                    return;
                }
            }
            else //is root
            {
                tv.Nodes.Remove(node);
                settings.Categories.Remove(cat);
                return;
            }

            //parent.Categories.Add(cat);


            //node.Nodes.Add(category);
        }
コード例 #10
0
        static void editCategory_Click(object sender, EventArgs e)
        {
            TreeNode         node     = ((MenuItem)sender).Tag as TreeNode;
            Category         cat      = node.Tag as Category;
            TreeView         tv       = node.TreeView;
            CategoryTreeNode settings = tv.Tag as CategoryTreeNode;


            CategoryTreeEditor cte = new CategoryTreeEditor();

            cte.Setup(settings, cat);

            //todo edit page
            //todo popup entry editor??
            PopupEditor pe = new PopupEditor();
            Form        f  = pe.ShowPopup(tv, cte, FormBorderStyle.Sizable, true);

            if (f.ShowDialog() == DialogResult.OK)
            {
                node.Text = cat.Name;
            }
        }
コード例 #11
0
        public static ICollection <string> GetContent(CategoryTreeNode settings, Category cat)//, ICollection<string> allNames)
        {
            //Category cat = node.Tag as Category;
            ICollection <string> allNames = settings.mAllEntries;

            ICollection <string> collection = new List <string>();

            if (cat.Rules.Count > 0)
            {
                ((List <string>)collection).AddRange(allNames);

                foreach (StringRule sr in cat.Rules)
                {
                    collection = StringSets.ApplyRule(sr, collection);
                }
            }

            foreach (string e in cat.Entries)
            {
                collection.Add(e);
            }

            return(collection);
        }
コード例 #12
0
 public void Setup(CategoryTreeNode settings)//ICollection<string> entries)
 {
     mSettings = settings;
     this.categoryTree1.Setup(mSettings);
 }