예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }