Beispiel #1
0
        private void EditKeyword()
        {
            if (CategoryTree.SelectedNode.Tag is KeywordAndUser)
            {
                KeywordAndUser   target = (KeywordAndUser)(CategoryTree.SelectedNode.Tag);
                KeywordsEditForm cf     = new KeywordsEditForm();
                cf.Text        = "编辑关键字";
                cf.KeywordName = target.KeywordName;
                cf.KeywordDesc = target.KeywordDesc;
                cf.KeywordRate = target.KeywordRate;

                if (cf.ShowDialog() == DialogResult.OK)
                {
                    target.KeywordName = cf.KeywordName;
                    target.KeywordDesc = cf.KeywordDesc;
                    target.KeywordRate = cf.KeywordRate;

                    CategoryTree.SelectedNode.Text        = target.KeywordName;
                    CategoryTree.SelectedNode.ToolTipText = target.KeywordDesc;

                    db.SubmitChanges();

                    TreeNode tn = CategoryTree.SelectedNode;
                    PresentColor(ref tn, target.KeywordRate);
                }
            }
        }
Beispiel #2
0
        private void DelKeyword()
        {
            if (CategoryTree.SelectedNode.Tag is KeywordAndUser)
            {
                KeywordAndUser ku = (KeywordAndUser)CategoryTree.SelectedNode.Tag;
                if (MessageBox.Show("确认删除该关键字吗?所有标记有该关键字的书籍将被取消该关键字。", "删除", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    Keywords k = ku.Keyword;
                    JianLiLinq.Default.DelKeyword(k);

                    CategoryTree.SelectedNode.Tag = null;
                    CategoryTree.SelectedNode.Remove();
                }
            }
        }
Beispiel #3
0
        private void CreateSonNode(TreeNode target)
        {
            if (target.Tag is Categories)
            {
                if (target.Nodes.Count == 1 && target.Nodes[0].Text == "占位")
                {
                    target.Nodes.Clear();

                    // 初始化子类别
                    var cs = from c in db.Categories
                             where c.CategoryParent == ((Categories)target.Tag).CategoryID
                             select c;

                    foreach (var c in cs)
                    {
                        TreeNode tn = new TreeNode();
                        tn.Tag         = c;
                        tn.Text        = c.CategoryName;
                        tn.ToolTipText = c.CategoryDesc;

                        tn.Nodes.Add("占位");
                        target.Nodes.Add(tn);
                    }


                    // 初始化关键字
                    var ks = from k in db.Keywords
                             where k.CategoryId == ((Categories)target.Tag).CategoryID
                             orderby k.KeywordRate descending, k.KeywordName descending
                    select k;

                    foreach (var k in ks)
                    {
                        TreeNode       tn = new TreeNode();
                        KeywordAndUser ku = new KeywordAndUser();
                        ku.UserKeyword = JianLiLinq.Default.GetUserKeyword(k);
                        ku.Keyword     = k;
                        tn.Tag         = ku;
                        tn.Text        = k.KeywordName;
                        tn.ToolTipText = k.KeywordDesc;
                        PresentColor(ref tn, ku.KeywordRate);
                        target.Nodes.Add(tn);
                    }
                    SortKeyword(target.Nodes);
                }
            }
        }
Beispiel #4
0
        // 结果为tn1-tn2(如果有效)
        private int Compare(TreeNode tn1, TreeNode tn2)
        {
            if (tn1.Tag is KeywordAndUser && tn2.Tag is KeywordAndUser)
            {
                KeywordAndUser k1 = tn1.Tag as KeywordAndUser;
                KeywordAndUser k2 = tn2.Tag as KeywordAndUser;

                if (k1.KeywordRate != k2.KeywordRate)
                {
                    return(k1.KeywordRate - k2.KeywordRate);
                }
                else
                {
                    return(k1.KeywordName.CompareTo(k2.KeywordName));
                }
            }
            return(0);
        }
Beispiel #5
0
        private void NewKeyword()
        {
            if (this.CategoryTree.SelectedNode.Tag is Categories)
            {
                Categories target = (Categories)(this.CategoryTree.SelectedNode.Tag);

                // 这里先借用新建类别的对话框
                NewCategoryForm nkf = new NewCategoryForm();
                nkf.Text = "新建关键字";
                if (nkf.ShowDialog() == DialogResult.OK)
                {
                    Keywords nk = new Keywords {
                        KeywordName = nkf.CategoryName,
                        KeywordDesc = nkf.CategoryDesc,
                        KeywordRate = 3,
                        Categories  = target
                    };// 注意这里Categories的赋值
                    nk.KeywordSubPath = JianLi3FileServiceManager.Default.CreateSubFolderInLib(nk.KeywordName);
                    db.Keywords.InsertOnSubmit(nk);
                    db.SubmitChanges();

                    KeywordAndUser ku = new KeywordAndUser();
                    ku.Keyword     = nk;
                    ku.UserKeyword = JianLiLinq.Default.GetUserKeyword(nk);

                    db.SubmitChanges();

                    TreeNode tn = new TreeNode();
                    tn.Tag         = ku;
                    tn.Text        = nk.KeywordName;
                    tn.ToolTipText = nk.KeywordDesc;

                    tn.ForeColor = Color.Blue;

                    CreateSonNode(CategoryTree.SelectedNode);

                    CategoryTree.SelectedNode.Nodes.Add(tn);
                }
            }
        }