From 6f1b75b311cb8eebd94fb55df3680ed346b4df06 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Wed, 19 Sep 2012 18:21:11 +0400 Subject: [PATCH] IDEA-19061 Integrate the Rearranger-plugin into core-IDE Test fixes --- .../arrangement/ArrangementRuleTree.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleTree.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleTree.java index 5df0261ad086..00914cf85c1c 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleTree.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/ArrangementRuleTree.java @@ -18,6 +18,7 @@ package com.intellij.application.options.codeStyle.arrangement; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Pair; +import com.intellij.psi.codeStyle.arrangement.group.ArrangementGroupingRule; import com.intellij.psi.codeStyle.arrangement.match.StdArrangementMatchRule; import com.intellij.psi.codeStyle.arrangement.StdArrangementSettings; import com.intellij.psi.codeStyle.arrangement.match.StdArrangementEntryMatcher; @@ -73,23 +74,24 @@ public class ArrangementRuleTree { @NotNull private final DefaultTreeModel myTreeModel; @NotNull private final Tree myTree; @NotNull private final ArrangementNodeComponentFactory myFactory; - @NotNull private final List> myGroupingRules; + @NotNull private final List> myUiGroupingRules; - private int myCanvasWidth; - private boolean myExplicitSelectionChange; - private boolean mySkipSelectionChange; + @Nullable private List myGroupings; + private int myCanvasWidth; + private boolean myExplicitSelectionChange; + private boolean mySkipSelectionChange; public ArrangementRuleTree(@Nullable StdArrangementSettings settings, - @NotNull List> groupingRules, + @NotNull List> uiGroupingRules, @NotNull ArrangementNodeDisplayManager displayManager) { - myGroupingRules = groupingRules; + myUiGroupingRules = uiGroupingRules; myFactory = new ArrangementNodeComponentFactory(displayManager, new Runnable() { @Override public void run() { notifySelectionListeners(); } - }, groupingRules); + }, uiGroupingRules); myRoot = new ArrangementTreeNode(null); myTreeModel = new DefaultTreeModel(myRoot); @@ -355,7 +357,7 @@ public class ArrangementRuleTree { private void map(@NotNull List rules) { for (StdArrangementMatchRule rule : rules) { - Pair pair = myModelBuilder.build(rule, myTree, myRoot, null, myGroupingRules); + Pair pair = myModelBuilder.build(rule, myTree, myRoot, null, myUiGroupingRules); if (pair != null) { myModels.put(pair.first.getRow(), pair.first); pair.first.addListener(myModelChangeListener); @@ -428,7 +430,13 @@ public class ArrangementRuleTree { if (prevGroup != null) { rules.add(new StdArrangementMatchRule(new StdArrangementEntryMatcher(prevGroup))); } - return new StdArrangementSettings(rules); + + if (myGroupings == null) { + return new StdArrangementSettings(rules); + } + else { + return new StdArrangementSettings(myGroupings, rules); + } } public void setSettings(@Nullable StdArrangementSettings settings) { @@ -440,6 +448,8 @@ public class ArrangementRuleTree { return; } + myGroupings = settings.getGroupings(); + List rules = settings.getRules(); map(rules); expandAll(myTree, new TreePath(myRoot)); @@ -622,7 +632,7 @@ public class ArrangementRuleTree { final ArrangementTreeNode anchor = activeModels.size() != 1 ? null : activeModels.get(0).getBottomMost(); doClearSelection(); Pair pair = myModelBuilder.build( - ArrangementRuleEditingModel.EMPTY_RULE, myTree, myRoot, anchor, myGroupingRules + ArrangementRuleEditingModel.EMPTY_RULE, myTree, myRoot, anchor, myUiGroupingRules ); assert pair != null; processRowChanges(pair.second);