You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2012/07/31 01:07:36 UTC

svn commit: r1367356 - /ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java

Author: hibou
Date: Mon Jul 30 23:07:36 2012
New Revision: 1367356

URL: http://svn.apache.org/viewvc?rev=1367356&view=rev
Log:
- fix selection in project and workspace
- allow selection of folder

Modified:
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java?rev=1367356&r1=1367355&r2=1367356&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/ui/PathEditor.java Mon Jul 30 23:07:36 2012
@@ -17,8 +17,10 @@
  */
 package org.apache.ivyde.eclipse.ui;
 
+import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.debug.ui.StringVariableSelectionDialog;
@@ -33,6 +35,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
@@ -137,7 +140,10 @@ public class PathEditor extends Composit
                 if (element instanceof IProject) {
                     return ((IProject) element).getName().equals(project.getName());
                 }
-
+                if (defaultExtension == null) {
+                    // we want a folder
+                    return element instanceof IContainer;
+                }
                 return true;
             }
         });
@@ -145,14 +151,9 @@ public class PathEditor extends Composit
         // TODO try to preselect the current file
         dialog.open();
         Object[] results = dialog.getResult();
-        if ((results != null) && (results.length > 0) && (results[0] instanceof IFile)) {
-            IPath path = ((IFile) results[0]).getFullPath();
-            if (project != null && path.segment(0).equals(project.getProject().getName())) {
-                setProjectLoc(path.removeFirstSegments(1).makeRelative().toString());
-            } else {
-                String containerName = path.makeRelative().toString();
-                setWorkspaceLoc("${workspace_loc:" + containerName + "}");
-            }
+        if ((results != null) && (results.length > 0) && (results[0] instanceof IResource)) {
+            IPath path = ((IResource) results[0]).getFullPath();
+            setProjectLoc(path.removeFirstSegments(1).makeRelative().toString());
         }
     }
 
@@ -167,7 +168,10 @@ public class PathEditor extends Composit
                 if (element instanceof IProject) {
                     return ((IProject) element).isAccessible();
                 }
-
+                if (defaultExtension == null) {
+                    // we want a folder
+                    return element instanceof IContainer;
+                }
                 return true;
             }
         });
@@ -175,19 +179,31 @@ public class PathEditor extends Composit
         // TODO try to preselect the current file
         dialog.open();
         Object[] results = dialog.getResult();
-        if ((results != null) && (results.length > 0) && (results[0] instanceof IFile)) {
-            IPath path = ((IFile) results[0]).getFullPath();
-            setProjectLoc(path.removeFirstSegments(1).makeRelative().toString());
+        if (results != null && results.length > 0 && results[0] instanceof IResource) {
+            IPath path = ((IResource) results[0]).getFullPath();
+            if (project != null && path.segment(0).equals(project.getProject().getName())) {
+                setProjectLoc(path.removeFirstSegments(1).makeRelative().toString());
+            } else {
+                String containerName = path.makeRelative().toString();
+                setWorkspaceLoc("${workspace_loc:" + containerName + "}");
+            }
         }
     }
 
     private void selectInFileSystem() {
-        FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
-        if (text != null) {
-            dialog.setFileName(text.getText());
+        String file;
+        if (defaultExtension == null) {
+            // we want a folder
+            DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.OPEN);
+            file = dialog.open();
+        } else {
+            FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
+            if (text != null) {
+                dialog.setFileName(text.getText());
+            }
+            dialog.setFilterExtensions(new String[] {defaultExtension, "*"});
+            file = dialog.open();            
         }
-        dialog.setFilterExtensions(new String[] {defaultExtension, "*"});
-        String file = dialog.open();
         if (file != null) {
             setFile(file);
         }