|
1 | 1 | package org.jabref.gui.groups;
|
2 | 2 |
|
| 3 | +import java.util.Arrays; |
| 4 | + |
3 | 5 | import javafx.collections.FXCollections;
|
4 | 6 | import javafx.collections.ObservableList;
|
5 | 7 |
|
@@ -87,7 +89,71 @@ public void treeOfAutomaticKeywordGroupIsCombined() throws Exception {
|
87 | 89 | assertEquals(expected, groupViewModel.getChildren());
|
88 | 90 | }
|
89 | 91 |
|
| 92 | + @Test |
| 93 | + public void draggedOnTopOfGroupAddsBeforeIt() throws Exception { |
| 94 | + GroupNodeViewModel rootViewModel = getViewModelForGroup(new WordKeywordGroup("root", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true)); |
| 95 | + WordKeywordGroup groupA = new WordKeywordGroup("A", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true); |
| 96 | + WordKeywordGroup groupB = new WordKeywordGroup("B", GroupHierarchyType.INCLUDING, "keywords", "A > B", true, ',', true); |
| 97 | + WordKeywordGroup groupC = new WordKeywordGroup("C", GroupHierarchyType.INCLUDING, "keywords", "A > B > B1", true, ',', true); |
| 98 | + GroupNodeViewModel groupAViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupA)); |
| 99 | + GroupNodeViewModel groupBViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupB)); |
| 100 | + GroupNodeViewModel groupCViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupC)); |
| 101 | + |
| 102 | + groupCViewModel.draggedOn(groupBViewModel, DroppingMouseLocation.TOP); |
| 103 | + |
| 104 | + assertEquals(Arrays.asList(groupAViewModel, groupCViewModel, groupBViewModel), rootViewModel.getChildren()); |
| 105 | + } |
| 106 | + |
| 107 | + @Test |
| 108 | + public void draggedOnBottomOfGroupAddsAfterIt() throws Exception { |
| 109 | + GroupNodeViewModel rootViewModel = getViewModelForGroup(new WordKeywordGroup("root", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true)); |
| 110 | + WordKeywordGroup groupA = new WordKeywordGroup("A", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true); |
| 111 | + WordKeywordGroup groupB = new WordKeywordGroup("B", GroupHierarchyType.INCLUDING, "keywords", "A > B", true, ',', true); |
| 112 | + WordKeywordGroup groupC = new WordKeywordGroup("C", GroupHierarchyType.INCLUDING, "keywords", "A > B > B1", true, ',', true); |
| 113 | + GroupNodeViewModel groupAViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupA)); |
| 114 | + GroupNodeViewModel groupBViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupB)); |
| 115 | + GroupNodeViewModel groupCViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupC)); |
| 116 | + |
| 117 | + groupCViewModel.draggedOn(groupAViewModel, DroppingMouseLocation.BOTTOM); |
| 118 | + |
| 119 | + assertEquals(Arrays.asList(groupAViewModel, groupCViewModel, groupBViewModel), rootViewModel.getChildren()); |
| 120 | + } |
| 121 | + |
| 122 | + @Test |
| 123 | + public void draggedOnBottomOfGroupAddsAfterItWhenSourceGroupWasBefore() throws Exception { |
| 124 | + GroupNodeViewModel rootViewModel = getViewModelForGroup(new WordKeywordGroup("root", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true)); |
| 125 | + WordKeywordGroup groupA = new WordKeywordGroup("A", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true); |
| 126 | + WordKeywordGroup groupB = new WordKeywordGroup("B", GroupHierarchyType.INCLUDING, "keywords", "A > B", true, ',', true); |
| 127 | + WordKeywordGroup groupC = new WordKeywordGroup("C", GroupHierarchyType.INCLUDING, "keywords", "A > B > B1", true, ',', true); |
| 128 | + GroupNodeViewModel groupAViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupA)); |
| 129 | + GroupNodeViewModel groupBViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupB)); |
| 130 | + GroupNodeViewModel groupCViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupC)); |
| 131 | + |
| 132 | + groupAViewModel.draggedOn(groupBViewModel, DroppingMouseLocation.BOTTOM); |
| 133 | + |
| 134 | + assertEquals(Arrays.asList(groupBViewModel, groupAViewModel, groupCViewModel), rootViewModel.getChildren()); |
| 135 | + } |
| 136 | + |
| 137 | + @Test |
| 138 | + public void draggedOnTopOfGroupAddsBeforeItWhenSourceGroupWasBefore() throws Exception { |
| 139 | + GroupNodeViewModel rootViewModel = getViewModelForGroup(new WordKeywordGroup("root", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true)); |
| 140 | + WordKeywordGroup groupA = new WordKeywordGroup("A", GroupHierarchyType.INCLUDING, "keywords", "A", true, ',', true); |
| 141 | + WordKeywordGroup groupB = new WordKeywordGroup("B", GroupHierarchyType.INCLUDING, "keywords", "A > B", true, ',', true); |
| 142 | + WordKeywordGroup groupC = new WordKeywordGroup("C", GroupHierarchyType.INCLUDING, "keywords", "A > B > B1", true, ',', true); |
| 143 | + GroupNodeViewModel groupAViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupA)); |
| 144 | + GroupNodeViewModel groupBViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupB)); |
| 145 | + GroupNodeViewModel groupCViewModel = getViewModelForGroup(rootViewModel.addSubgroup(groupC)); |
| 146 | + |
| 147 | + groupAViewModel.draggedOn(groupCViewModel, DroppingMouseLocation.TOP); |
| 148 | + |
| 149 | + assertEquals(Arrays.asList(groupBViewModel, groupAViewModel, groupCViewModel), rootViewModel.getChildren()); |
| 150 | + } |
| 151 | + |
90 | 152 | private GroupNodeViewModel getViewModelForGroup(AbstractGroup group) {
|
91 | 153 | return new GroupNodeViewModel(databaseContext, stateManager, taskExecutor, group);
|
92 | 154 | }
|
| 155 | + |
| 156 | + private GroupNodeViewModel getViewModelForGroup(GroupTreeNode group) { |
| 157 | + return new GroupNodeViewModel(databaseContext, stateManager, taskExecutor, group); |
| 158 | + } |
93 | 159 | }
|
0 commit comments