Project Structure: refactoring and cleanup
authornik <Nikolay.Chashnikov@jetbrains.com>
Tue, 7 Jul 2015 12:31:14 +0000 (15:31 +0300)
committernik <Nikolay.Chashnikov@jetbrains.com>
Wed, 8 Jul 2015 17:42:45 +0000 (20:42 +0300)
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/FacetEditorFacadeImpl.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/FacetStructureConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java
platform/platform-api/src/com/intellij/openapi/ui/MasterDetailsComponent.java

index db72e479f79d63347a4792d562dce542867c39f9..65b89205a8a2b485def9a01354d3a7e5dd08fa63 100644 (file)
@@ -66,7 +66,7 @@ public class FacetEditorFacadeImpl implements FacetEditorFacade {
     final FacetStructureConfigurable facetStructureConfigurable = FacetStructureConfigurable.getInstance(myStructureConfigurable.getProject());
     final MasterDetailsComponent.MyNode facetTypeNode = facetStructureConfigurable.getOrCreateFacetTypeNode(facet.getType());
     LOG.assertTrue(facetTypeNode != null, "Cannot found node for " + facet.getType());
-    facetStructureConfigurable.addFacetNode(facetTypeNode, facet, this, false);
+    facetStructureConfigurable.addFacetNodes(facetTypeNode, Collections.singletonList(facet), this);
   }
 
   private MasterDetailsComponent.MyNode addFacetNode(final Facet facet, final MasterDetailsComponent.MyNode moduleNode) {
index b8027eccbabe894d9193526f64a9eac4ae9b3ae7..b299ef262b34882901fe720408cfcc9a25924cef 100644 (file)
@@ -171,14 +171,8 @@ public class FacetStructureConfigurable extends BaseStructureConfigurable {
     MyNode facetTypeNode = new MyNode(facetTypeConfigurable);
     addNode(facetTypeNode, myRoot);
 
-    for (Module module : myModuleManager.getModules()) {
-      Collection<? extends Facet> facets = FacetManager.getInstance(module).getFacetsByType(facetType.getId());
-      FacetEditorFacadeImpl editorFacade = ModuleStructureConfigurable.getInstance(myProject).getFacetEditorFacade();
-      for (Facet facet : facets) {
-        addFacetNode(facetTypeNode, facet, editorFacade, true);
-      }
-    }
-    addNodeCompleted(facetTypeNode);
+    FacetEditorFacadeImpl editorFacade = ModuleStructureConfigurable.getInstance(myProject).getFacetEditorFacade();
+    addFacetNodes(facetTypeNode, ProjectFacetManager.getInstance(myProject).getFacets(facetType.getId()), editorFacade);
     return facetTypeNode;
   }
 
@@ -203,14 +197,13 @@ public class FacetStructureConfigurable extends BaseStructureConfigurable {
     return addFacetTypeNode(facetType);
   }
 
-  public void addFacetNode(
-    @NotNull MyNode facetTypeNode,
-    @NotNull Facet facet,
-    @NotNull FacetEditorFacadeImpl editorFacade,
-    boolean delayRedraw) {
-    FacetConfigurable facetConfigurable = editorFacade.getOrCreateConfigurable(facet);
-    addNode(new FacetConfigurableNode(facetConfigurable), facetTypeNode, delayRedraw);
-    myContext.getDaemonAnalyzer().queueUpdate(new FacetProjectStructureElement(myContext, facet));
+  public void addFacetNodes(@NotNull MyNode facetTypeNode, @NotNull List<? extends Facet> facets, @NotNull FacetEditorFacadeImpl editorFacade) {
+    for (Facet facet : facets) {
+      FacetConfigurable facetConfigurable = editorFacade.getOrCreateConfigurable(facet);
+      facetTypeNode.add(new FacetConfigurableNode(facetConfigurable));
+      myContext.getDaemonAnalyzer().queueUpdate(new FacetProjectStructureElement(myContext, facet));
+    }
+    sortDescendants(facetTypeNode);
   }
 
   @Nullable
index 6eebd449f58eee364873b4f13b805fb2c4e5cfe2..d8760f3e5a3e8a939c4c6c0f9a1904a9188ae348 100644 (file)
@@ -144,10 +144,6 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
     super.addNode(nodeToAdd, parent);
   }
 
-  public void addNode(MyNode nodeToAdd, MyNode parent, boolean delayRedraw) {
-    super.addNode(nodeToAdd, parent, delayRedraw);
-  }
-
   @Override
   @NotNull
   protected ArrayList<AnAction> createActions(final boolean fromPopup) {
@@ -234,28 +230,28 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
       }
       final String[] groupPath = myPlainMode ? null : myContext.myModulesConfigurator.getModuleModel().getModuleGroupPath(module);
       if (groupPath == null || groupPath.length == 0){
-        addNode(moduleNode, myRoot, true);
-      } else {
+        myRoot.add(moduleNode);
+      }
+      else {
         final MyNode moduleGroupNode = ModuleGroupUtil
           .buildModuleGroupPath(new ModuleGroup(groupPath), myRoot, moduleGroup2NodeMap,
                                 new Consumer<ModuleGroupUtil.ParentChildRelation<MyNode>>() {
                                   @Override
                                   public void consume(final ModuleGroupUtil.ParentChildRelation<MyNode> parentChildRelation) {
-                                    addNode(parentChildRelation.getChild(), parentChildRelation.getParent(), true);
+                                    parentChildRelation.getParent().add(parentChildRelation.getChild());
                                   }
                                 },
                                 new Function<ModuleGroup, MyNode>() {
                                   @Override
                                   public MyNode fun(final ModuleGroup moduleGroup) {
-                                    final NamedConfigurable moduleGroupConfigurable =
-                                      createModuleGroupConfigurable(moduleGroup);
+                                    final NamedConfigurable moduleGroupConfigurable = createModuleGroupConfigurable(moduleGroup);
                                     return new MyNode(moduleGroupConfigurable, true);
                                   }
                                 });
-        addNode(moduleNode, moduleGroupNode, true);
+        moduleGroupNode.add(moduleNode);
       }
     }
-    addNodeCompleted(myRoot);
+    sortDescendants(myRoot);
     if (myProject.isDefault()) {  //do not add modules node in case of template project
       myRoot.removeAllChildren();
     }
@@ -297,7 +293,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
                                  ? null
                                  : group != null ? group.getGroupPath() : null;
       if (groupPath == null || groupPath.length == 0){
-        addNode(moduleNode, myRoot);
+        myRoot.add(moduleNode);
       } else {
         final MyNode moduleGroupNode = ModuleGroupUtil
           .updateModuleGroupPath(new ModuleGroup(groupPath), myRoot, new Function<ModuleGroup, MyNode>() {
@@ -309,7 +305,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
           }, new Consumer<ModuleGroupUtil.ParentChildRelation<MyNode>>() {
             @Override
             public void consume(final ModuleGroupUtil.ParentChildRelation<MyNode> parentChildRelation) {
-              addNode(parentChildRelation.getChild(), parentChildRelation.getParent());
+              parentChildRelation.getParent().add(parentChildRelation.getChild());
             }
           }, new Function<ModuleGroup, MyNode>() {
             @Override
@@ -318,14 +314,13 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
               return new MyNode(moduleGroupConfigurable, true);
             }
           });
-        addNode(moduleNode, moduleGroupNode);
+        moduleGroupNode.add(moduleNode);
       }
       Module module = (Module)moduleNode.getConfigurable().getEditableObject();
       myFacetEditorFacade.addFacetsNodes(module, moduleNode);
       addNodesFromExtensions(module, moduleNode);
     }
-    TreeUtil.sort(myRoot, getNodeComparator());
-    ((DefaultTreeModel)myTree.getModel()).reload(myRoot);
+    sortDescendants(myRoot);
     return true;
   }
 
index 45ed57353228ccb7bf49d1626e794c0bcf9001ec..cef3f1bb367cc8dfec68a5b14ba668cf9a0c2990 100644 (file)
@@ -580,20 +580,12 @@ public abstract class MasterDetailsComponent implements Configurable, DetailsCom
 
   protected void addNode(MyNode nodeToAdd, MyNode parent) {
     parent.add(nodeToAdd);
-    TreeUtil.sort(parent, getNodeComparator());
-    ((DefaultTreeModel)myTree.getModel()).reload(parent);
+    sortDescendants(parent);
   }
 
-  protected void addNode(MyNode nodeToAdd, MyNode parent, boolean delayRedraw) {
-    parent.add(nodeToAdd);
-    if (!delayRedraw) {
-      addNodeCompleted(parent);
-    }
-  }
-
-  protected void addNodeCompleted(MyNode parent) {
-    TreeUtil.sort(parent, getNodeComparator());
-    ((DefaultTreeModel)myTree.getModel()).reload(parent);
+  protected void sortDescendants(MyNode root) {
+    TreeUtil.sort(root, getNodeComparator());
+    ((DefaultTreeModel)myTree.getModel()).reload(root);
   }
 
   protected Comparator<MyNode> getNodeComparator() {