public void ITagDB_Test_AddDel()//添加后删除 { GUTag p = db.NewTag("p"); GUTag c1 = db.NewTag("c1"); db.SetParent(p, c1); List <string> a = db.QueryTagAlias(p); Assert.AreEqual(1, a.Count); Assert.AreEqual("p", a[0]); db.RemoveTag(p); a = db.QueryTagAlias(p); Assert.AreEqual(0, a.Count); }
public void testBaseRemove() { db.AddTag("p", "c1"); List <string> a = db.QueryTagAlias("p"); Assert.AreEqual(1, a.Count); Assert.AreEqual("p", a[0]); db.RemoveTag("p"); a = db.QueryTagAlias("p"); Assert.AreEqual(0, a.Count); }
private void miDeleteTag_Click(object sender, RoutedEventArgs e) { UpdateCurrentTagByContextMenu(); if (TagDB.QueryTagChildren(SelectedTag).Count == 0) { GUTag oldCurrentTag, newCurrentTag; GetNextTag(out oldCurrentTag, out newCurrentTag); TagDB.RemoveTag(oldCurrentTag); //如果新选出来的当前节点在视图中,直接选中该tag foreach (UIElement u in allTagBox) { TagBox t = u as TagBox; if (t != null && t.GUTag == newCurrentTag) { SetCurrentTag(newCurrentTag, true); } } //当新选出来的tag不再视图中时,才需要切换视图的根节点 if (SelectedTag != newCurrentTag) { ChangeRoot(newCurrentTag, newCurrentTag); } else { RedrawGraph(); } //如果该title的所有tag全部被删除,则需要删除Tag所在目录: //这个调用之所以放在这儿,而不放在TagDB.RemoveTag时调用, //是因为在彻底删除该tag后(转到其他tag后),程序打开的标签笔记才会被关闭。 //这个时候才能删除tag的目录(否则会有文件正在使用无法移动目录) if (TagDB.QueryTags(oldCurrentTag.Title).Count == 0) //确保没有同名标签,才要删除目录,否则不要删除目录 { BackTask.Ins.Add(new DelTagTaskInf(oldCurrentTag.Title)); } } else { MessageBox.Show(string.Format("[{0}]下还有其他子节点,如果确实需要删除该标签,请先删除所有子节点", SelectedTag), "提示:", MessageBoxButton.OK, MessageBoxImage.Warning); } }