PathEditor is not abstract
authorDmitry Jemerov <yole@jetbrains.com>
Wed, 7 Jul 2010 16:42:58 +0000 (20:42 +0400)
committerDmitry Jemerov <yole@jetbrains.com>
Wed, 7 Jul 2010 16:46:06 +0000 (20:46 +0400)
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/OrderRootTypeUIFactory.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/AnnotationsOrderRootTypeUIFactory.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/ClassesOrderRootTypeUIFactory.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/JavadocOrderRootTypeUIFactory.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/SourcesOrderRootTypeUIFactory.java
platform/lang-impl/src/com/intellij/openapi/projectRoots/ui/PathEditor.java

index ac12c56e6d7789ce36932b40eadab733c999eef3..47415c25e280eaba0684a17df4467b9c48dae220 100644 (file)
@@ -20,7 +20,6 @@
  */
 package com.intellij.openapi.roots.ui.configuration;
 
-import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.projectRoots.Sdk;
 import com.intellij.openapi.projectRoots.ui.PathEditor;
 import com.intellij.openapi.roots.OrderRootType;
@@ -37,40 +36,4 @@ public interface OrderRootTypeUIFactory {
 
   LibraryTableTreeContentElement createElement(final LibraryElement parentElement);
   PathEditor createPathEditor(Sdk sdk);
-
-  class MyPathsEditor extends PathEditor {
-    private final boolean myShowUrl;
-    private final OrderRootType myOrderRootType;
-    private final FileChooserDescriptor myDescriptor;
-    private final String myDisplayName;
-    protected final Sdk mySdk;
-
-    public MyPathsEditor(final String displayName,
-                         final OrderRootType orderRootType,
-                         final FileChooserDescriptor descriptor,
-                         final boolean showUrl,
-                         Sdk sdk) {
-      myShowUrl = showUrl;
-      myOrderRootType = orderRootType;
-      myDescriptor = descriptor;
-      myDisplayName = displayName;
-      mySdk = sdk;
-    }
-
-    protected boolean isShowUrlButton() {
-      return myShowUrl;
-    }
-
-    protected OrderRootType getRootType() {
-      return myOrderRootType;
-    }
-
-    protected FileChooserDescriptor createFileChooserDescriptor() {
-      return myDescriptor;
-    }
-
-    public String getDisplayName() {
-      return myDisplayName;
-    }
-  }
 }
index 0b4ab2759abe34ed5dcbd22248a13c6b3c7f6a0a..240ca0c0af5d4f53a985da5ed37ae5fb347af32a 100644 (file)
@@ -33,7 +33,7 @@ public class AnnotationsOrderRootTypeUIFactory implements OrderRootTypeUIFactory
   }
 
   public PathEditor createPathEditor(Sdk sdk) {
-    return new MyPathsEditor(ProjectBundle.message("sdk.configure.annotations.tab"), AnnotationOrderRootType.getInstance(),
-                             FileChooserDescriptorFactory.createSingleFolderDescriptor(), false, sdk);
+    return new PathEditor(ProjectBundle.message("sdk.configure.annotations.tab"), AnnotationOrderRootType.getInstance(),
+                          FileChooserDescriptorFactory.createSingleFolderDescriptor());
   }
 }
\ No newline at end of file
index c74af974f0a7f213f91fe8f06e3f318bd7980273..9dba0edd3627829abe2c840f283d7529a35cf0a5 100644 (file)
@@ -33,7 +33,6 @@ public class ClassesOrderRootTypeUIFactory implements OrderRootTypeUIFactory {
   }
 
   public PathEditor createPathEditor(Sdk sdk) {
-    return new MyPathsEditor(ProjectBundle.message("sdk.configure.classpath.tab"), OrderRootType.CLASSES, new FileChooserDescriptor(true, true, true, false, true, true), false,
-                             sdk);
+    return new PathEditor(ProjectBundle.message("sdk.configure.classpath.tab"), OrderRootType.CLASSES, new FileChooserDescriptor(true, true, true, false, true, true));
   }
 }
\ No newline at end of file
index 847f4be080514c4e042c2dfe1cb081aa46c088d4..d41a685aeed32cfa8f65c5a84d1066baf187e5d3 100644 (file)
@@ -40,14 +40,19 @@ public class JavadocOrderRootTypeUIFactory implements OrderRootTypeUIFactory {
     return new JavadocPathsEditor(sdk);
   }
 
-  static class JavadocPathsEditor extends MyPathsEditor {
+  static class JavadocPathsEditor extends PathEditor {
+    private final Sdk mySdk;
 
     public JavadocPathsEditor(Sdk sdk) {
       super(ProjectBundle.message("sdk.configure.javadoc.tab"),
             JavadocOrderRootType.getInstance(),
-            new FileChooserDescriptor(false, true, true, false, true, true), 
-            true,
-            sdk);
+            new FileChooserDescriptor(false, true, true, false, true, true));
+      mySdk = sdk;
+    }
+
+    @Override
+    protected boolean isShowUrlButton() {
+      return true;
     }
 
     @Override
index d485ba0743f7c3cfe824b4440bca8878b9c688c0..9bdc02712df5b6ca38c7092ef5a963229394a3b6 100644 (file)
@@ -37,8 +37,7 @@ public class SourcesOrderRootTypeUIFactory implements OrderRootTypeUIFactory {
   }
 
   public PathEditor createPathEditor(Sdk sdk) {
-    return new MyPathsEditor(ProjectBundle.message("sdk.configure.sourcepath.tab"), OrderRootType.SOURCES, new FileChooserDescriptor(true, true, true, false, true, true), false,
-                             sdk) {
+    return new PathEditor(ProjectBundle.message("sdk.configure.sourcepath.tab"), OrderRootType.SOURCES, new FileChooserDescriptor(true, true, true, false, true, true)) {
       @Override
       protected VirtualFile[] adjustAddedFileSet(final Component component, final VirtualFile[] files) {
         return PathUIUtils.scanAndSelectDetectedJavaSourceRoots(component, files);
index b6abaf5cf37c99e135d9ab3eac7a2b726a60278e..766bf3590f812ce0370ea93f66db1a06d023c051 100644 (file)
@@ -53,7 +53,7 @@ import java.util.Set;
 /**
  * @author MYakovlev
  */
-public abstract class PathEditor {
+public class PathEditor {
   private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.projectRoots.ui.PathEditor");
   public static final Color INVALID_COLOR = new Color(210, 0, 0);
 
@@ -68,17 +68,28 @@ public abstract class PathEditor {
   private boolean myEnabled = false;
   private static final Icon ICON_INVALID = IconLoader.getIcon("/nodes/ppInvalid.png");
   private static final Icon ICON_EMPTY = IconLoader.getIcon("/nodes/emptyNode.png");
+  private final String myDisplayName;
+  private final OrderRootType myOrderRootType;
+  private final FileChooserDescriptor myDescriptor;
+
+  public PathEditor(final String displayName,
+                    final OrderRootType orderRootType,
+                    final FileChooserDescriptor descriptor) {
+    myDisplayName = displayName;
+    myOrderRootType = orderRootType;
+    myDescriptor = descriptor;
+  }
 
-  protected abstract boolean isShowUrlButton();
+  protected boolean isShowUrlButton() {
+    return false;
+  }
 
   protected void onSpecifyUrlButtonClicked() {
   }
 
-  protected abstract OrderRootType getRootType();
-
-  protected abstract FileChooserDescriptor createFileChooserDescriptor();
-
-  public abstract String getDisplayName();
+  public String getDisplayName() {
+    return myDisplayName;
+  }
 
   protected void setModified(boolean modified){
     myModified = modified;
@@ -89,11 +100,10 @@ public abstract class PathEditor {
   }
 
   public void apply(SdkModificator sdkModificator) {
-    final OrderRootType rootType = getRootType();
-    sdkModificator.removeRoots(rootType);
+    sdkModificator.removeRoots(myOrderRootType);
     // add all items
     for (int i = 0; i < getRowCount(); i++){
-      sdkModificator.addRoot(getValueAt(i), rootType);
+      sdkModificator.addRoot(getValueAt(i), myOrderRootType);
     }
     setModified(false);
     updateButtons();
@@ -186,8 +196,7 @@ public abstract class PathEditor {
   }
 
   private VirtualFile[] doAdd(){
-    FileChooserDescriptor descriptor = createFileChooserDescriptor();
-    VirtualFile[] files = FileChooser.chooseFiles(myPanel, descriptor);
+    VirtualFile[] files = FileChooser.chooseFiles(myPanel, myDescriptor);
     files = adjustAddedFileSet(myPanel, files);
     List<VirtualFile> added = new ArrayList<VirtualFile>(files.length);
     for (VirtualFile vFile : files) {