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(); } }
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)); }