Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/actions/OpenExternalFolderDialogAction.java |
=================================================================== |
--- editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/actions/OpenExternalFolderDialogAction.java (revision 5183) |
+++ editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/actions/OpenExternalFolderDialogAction.java (working copy) |
@@ -13,26 +13,10 @@ |
*/ |
package com.google.dart.tools.ui.actions; |
-import com.google.dart.tools.core.internal.util.ResourceUtil; |
-import com.google.dart.tools.ui.internal.projects.NewApplicationCreationPage.ProjectType; |
-import com.google.dart.tools.ui.internal.projects.ProjectMessages; |
-import com.google.dart.tools.ui.internal.projects.ProjectUtils; |
- |
-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.core.runtime.Path; |
-import org.eclipse.jface.dialogs.MessageDialog; |
-import org.eclipse.osgi.util.NLS; |
import org.eclipse.swt.widgets.DirectoryDialog; |
-import org.eclipse.swt.widgets.Shell; |
import org.eclipse.ui.IWorkbenchWindow; |
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; |
-import java.io.File; |
-import java.net.URI; |
- |
/** |
* Opens the "Open..." dialog. |
*/ |
@@ -56,57 +40,11 @@ |
@Override |
public void run() { |
- String directory = new DirectoryDialog(getShell()).open(); |
+ String directory = new DirectoryDialog(window.getShell()).open(); |
if (directory == null) { |
return; |
} |
- Path path = new Path(directory); |
- String name = path.lastSegment(); |
- |
- IProject projectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(name); |
- if (projectHandle.exists()) { |
- ProjectUtils.selectAndReveal(projectHandle); |
- } else if (!isNestedByAnExistingProject(path) && !nestsAnExistingProject(path)) { |
- URI location = new File(directory).toURI(); |
- |
- IProject project = ProjectUtils.createNewProject(name, projectHandle, ProjectType.NONE, |
- location, window, getShell()); |
- |
- ProjectUtils.selectAndReveal(project); |
- } |
+ new CreateAndRevealProjectAction(window, directory).run(); |
} |
- |
- private Shell getShell() { |
- return window.getShell(); |
- } |
- |
- private boolean isNestedByAnExistingProject(IPath path) { |
- for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) { |
- IPath location = project.getLocation(); |
- if (location.isPrefixOf(path)) { |
- IResource resource = ResourceUtil.getResource(path.toFile()); |
- ProjectUtils.selectAndReveal(resource); |
- return true; |
- } |
- } |
- return false; |
- } |
- |
- private boolean nestsAnExistingProject(IPath path) { |
- for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) { |
- IPath location = project.getLocation(); |
- if (path.isPrefixOf(location)) { |
- String folderName = path.lastSegment(); |
- String projectName = project.getName(); |
- MessageDialog.openError(getShell(), |
- ProjectMessages.OpenExistingFolderWizardAction_nesting_title, |
- NLS.bind(ProjectMessages.OpenExistingFolderWizardAction_nesting_msg, folderName, |
- projectName)); |
- return true; |
- } |
- } |
- return false; |
- } |
- |
} |