mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-19061 Integrate the Rearranger-plugin into core-IDEA
Finish DefaultMutableTreeNode -> ArrangementTreeNode transition
This commit is contained in:
+1
-2
@@ -60,8 +60,7 @@ public class ArrangementRuleEditingModelBuilderTest extends AbstractArrangementR
|
||||
assertEquals(and(atom(PUBLIC), atom(STATIC)), modifiersUiNode.getBackingSetting());
|
||||
}
|
||||
|
||||
// TODO den uncomment
|
||||
//@Test
|
||||
@Test
|
||||
public void addToExistingLayer() {
|
||||
myBuilder.build(and(atom(PUBLIC), atom(STATIC), atom(FIELD)), myTree, myRoot, myGrouper, myRowMappings);
|
||||
myBuilder.build(and(atom(PRIVATE), atom(FIELD)), myTree, myRoot, myGrouper, myRowMappings);
|
||||
|
||||
+3
-4
@@ -171,18 +171,17 @@ public class ArrangementRuleEditingModelImplTest extends AbstractArrangementRule
|
||||
checkTreeNodesConsistency();
|
||||
}
|
||||
|
||||
// TODO den uncomment
|
||||
//@Test
|
||||
@Test
|
||||
public void removeLastRowConditionFromMultiChildrenParent() {
|
||||
configure(and(atom(FIELD), atom(PUBLIC)));
|
||||
configure(and(atom(FIELD), atom(STATIC)));
|
||||
|
||||
assertEquals(2, myRowMappings.size());
|
||||
ArrangementRuleEditingModel siblingModel = myRowMappings.get(2);
|
||||
assertNotNull(siblingModel);
|
||||
|
||||
ArrangementRuleEditingModel modelToChange = myRowMappings.get(3);
|
||||
assertNotNull(modelToChange);
|
||||
assertEquals(2, myRowMappings.size());
|
||||
|
||||
modelToChange.removeAndCondition(atom(STATIC));
|
||||
|
||||
@@ -199,7 +198,7 @@ public class ArrangementRuleEditingModelImplTest extends AbstractArrangementRule
|
||||
|
||||
ArrangementTreeNode publicNode = compositeFieldNode.getFirstChild();
|
||||
assertNotNull(publicNode);
|
||||
assertEquals(atom(PUBLIC), publicNode.getUserObject());
|
||||
assertEquals(atom(PUBLIC), publicNode.getBackingSetting());
|
||||
|
||||
ArrangementTreeNode atomFieldNode = compositeFieldNode.getNextSibling();
|
||||
assertNotNull(atomFieldNode);
|
||||
|
||||
+14
-10
@@ -176,34 +176,38 @@ public class ArrangementConfigUtil {
|
||||
* @param uiParentNode UI tree node which should hold UI nodes created for representing given settings node;
|
||||
* <code>null</code> as an indication that we want to create a standalone nodes hierarchy
|
||||
* @param settingsNode settings node which should be represented at the UI tree denoted by the given UI tree node
|
||||
* @param model tree model to use for the tree modification
|
||||
* @return pair {@code (bottom-most leaf node created; number of rows created)}
|
||||
*/
|
||||
@NotNull
|
||||
public static Pair<ArrangementTreeNode, Integer> map(@Nullable ArrangementTreeNode uiParentNode,
|
||||
@NotNull HierarchicalArrangementSettingsNode settingsNode)
|
||||
@NotNull HierarchicalArrangementSettingsNode settingsNode,
|
||||
@Nullable DefaultTreeModel model)
|
||||
{
|
||||
ArrangementTreeNode uiNode = null;
|
||||
int rowsCreated = 0;
|
||||
if (uiParentNode != null) {
|
||||
for (int i = uiParentNode.getChildCount() - 1; i >= 0; i--) {
|
||||
ArrangementTreeNode child = uiParentNode.getChildAt(i);
|
||||
if (settingsNode.getCurrent().equals(child.getUserObject())) {
|
||||
uiNode = child;
|
||||
break;
|
||||
}
|
||||
if (uiParentNode != null && uiParentNode.getChildCount() > 0) {
|
||||
ArrangementTreeNode child = uiParentNode.getChildAt(uiParentNode.getChildCount() - 1);
|
||||
if (settingsNode.getCurrent().equals(child.getBackingSetting())) {
|
||||
uiNode = child;
|
||||
}
|
||||
}
|
||||
if (uiNode == null) {
|
||||
uiNode = new ArrangementTreeNode(settingsNode.getCurrent());
|
||||
if (uiParentNode != null) {
|
||||
uiParentNode.add(uiNode);
|
||||
if (model == null) {
|
||||
uiParentNode.add(uiNode);
|
||||
}
|
||||
else {
|
||||
model.insertNodeInto(uiNode, uiParentNode, uiParentNode.getChildCount());
|
||||
}
|
||||
}
|
||||
rowsCreated++;
|
||||
}
|
||||
ArrangementTreeNode leaf = uiNode;
|
||||
HierarchicalArrangementSettingsNode childSettingsNode = settingsNode.getChild();
|
||||
if (childSettingsNode != null) {
|
||||
Pair<ArrangementTreeNode, Integer> pair = map(uiNode, childSettingsNode);
|
||||
Pair<ArrangementTreeNode, Integer> pair = map(uiNode, childSettingsNode, model);
|
||||
leaf = pair.first;
|
||||
rowsCreated += pair.second;
|
||||
}
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ public class ArrangementRuleEditingModelBuilder {
|
||||
|
||||
HierarchicalArrangementSettingsNode grouped = grouper.group(setting);
|
||||
DefaultTreeModel treeModel = (DefaultTreeModel)tree.getModel();
|
||||
Pair<ArrangementTreeNode, Integer> pair = ArrangementConfigUtil.map(root, grouped);
|
||||
Pair<ArrangementTreeNode, Integer> pair = ArrangementConfigUtil.map(root, grouped, treeModel);
|
||||
ArrangementTreeNode topMostNode = ArrangementConfigUtil.getLastBefore(pair.first, root);
|
||||
int row = initialInsertRow + pair.second - 1;
|
||||
ArrangementRuleEditingModelImpl model = new ArrangementRuleEditingModelImpl(
|
||||
|
||||
+3
-2
@@ -129,7 +129,8 @@ public class ArrangementRuleEditingModelImpl implements ArrangementRuleEditingMo
|
||||
// No refresh is necessary.
|
||||
return;
|
||||
}
|
||||
else if (myTopMost.getUserObject().equals(node.getUserObject())) {
|
||||
ArrangementSettingsNode setting = myTopMost.getBackingSetting();
|
||||
if (setting != null && setting.equals(node.getBackingSetting())) {
|
||||
myTopMost = node;
|
||||
return;
|
||||
}
|
||||
@@ -181,7 +182,7 @@ public class ArrangementRuleEditingModelImpl implements ArrangementRuleEditingMo
|
||||
return;
|
||||
}
|
||||
|
||||
Pair<ArrangementTreeNode, Integer> replacement = ArrangementConfigUtil.map(null, grouped);
|
||||
Pair<ArrangementTreeNode, Integer> replacement = ArrangementConfigUtil.map(null, grouped, null);
|
||||
ArrangementTreeNode newBottom = replacement.first;
|
||||
ArrangementTreeNode newTop = ArrangementConfigUtil.getRoot(newBottom);
|
||||
final TIntIntHashMap rowChanges = ArrangementConfigUtil.replace(myTopMost, myBottomMost, newTop, myTreeModel);
|
||||
|
||||
Reference in New Issue
Block a user