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); } } }
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(); } } }
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); } } }
// 结果为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); }
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); } } }