예제 #1
0
        public void miPasteFile_Click(object sender, RoutedEventArgs e)
        {
            UpdateCurrentTagByContextMenu();


            string[] token = Clipboard.GetText().Split(new char[] { ClipboardConst.CommandSplitToken }, StringSplitOptions.RemoveEmptyEntries);

            if (token.Length == 2)
            {
                string arg = token[1];

                string[] args = arg.Split(new char[] { ClipboardConst.ArgsSplitToken }, StringSplitOptions.RemoveEmptyEntries);
                switch (token[0])
                {
                case ClipboardConst.KUMMERWU_TAG_COPY:
                {
                    GUTag argTag = TagDB.GetTag(Guid.Parse(arg));
                    if (argTag != null)
                    {
                        TagDB.SetParent(SelectedTag, argTag);
                        RedrawGraph();
                    }
                }
                break;

                case ClipboardConst.KUMMERWU_TAG_CUT:
                {
                    GUTag argTag = TagDB.GetTag(Guid.Parse(arg));
                    if (argTag != null)
                    {
                        TagDB.ResetParent(SelectedTag, argTag);
                        RedrawGraph();
                    }
                }
                break;

                case ClipboardConst.KUMMERWU_URI_CUT:
                    MoveUris(args);
                    break;

                case ClipboardConst.KUMMERWU_URI_COPY:
                    UriDB.AddUris(args, new List <string>()
                    {
                        SelectedTag.Title
                    });
                    //foreach (string uri in args)
                    //{
                    //    UriDB.AddUri(uri, new List<string>() { currentTag });
                    //}
                    break;

                default: PasteFiles(); break;
                }
            }
            else
            {
                PasteFiles();
            }
        }
예제 #2
0
        public void ITagDB_Test_SetRelation()//多个切换到一个(不存在的)
        {
            GUTag P1 = db.NewTag("P1");
            GUTag P2 = db.NewTag("P2");
            GUTag P3 = db.NewTag("P3");
            GUTag C1 = db.NewTag("C1");
            GUTag C2 = db.NewTag("C2");

            db.SetParent(P1, C1);
            db.SetParent(P2, C1);
            List <GUTag> parents = db.QueryTagParent(C1);

            AssertListEqual(parents, new List <GUTag>()
            {
                P1, P2
            });

            db.ResetParent(P3, C1);

            AssertListEqual(new List <string>()
            {
                "P3"
            }, db.QueryTagParent(C1));
            AssertListEqual(new List <string>()
            {
            }, db.QueryTagChildren(C1));

            AssertListEqual(new List <string>(), db.QueryTagParent(P1));
            AssertListEqual(new List <string>()
            {
            }, db.QueryTagChildren(P1));

            AssertListEqual(new List <string>(), db.QueryTagParent(P2));
            AssertListEqual(new List <string>()
            {
            }, db.QueryTagChildren(P2));

            AssertListEqual(new List <string>(), db.QueryTagParent(P3));
            AssertListEqual(new List <string>()
            {
                "C1"
            }, db.QueryTagChildren(P3));
        }