32 import java.util.zip.ZipEntry; |
32 import java.util.zip.ZipEntry; |
33 import java.util.zip.ZipInputStream; |
33 import java.util.zip.ZipInputStream; |
34 |
34 |
35 import javax.swing.filechooser.FileSystemView; |
35 import javax.swing.filechooser.FileSystemView; |
36 |
36 |
|
37 import org.eclipse.core.commands.ExecutionEvent; |
37 import org.eclipse.core.resources.ICommand; |
38 import org.eclipse.core.resources.ICommand; |
38 import org.eclipse.core.resources.IContainer; |
39 import org.eclipse.core.resources.IContainer; |
39 import org.eclipse.core.resources.IFile; |
40 import org.eclipse.core.resources.IFile; |
40 import org.eclipse.core.resources.IFolder; |
41 import org.eclipse.core.resources.IFolder; |
41 import org.eclipse.core.resources.IProject; |
42 import org.eclipse.core.resources.IProject; |
44 import org.eclipse.core.resources.IResourceVisitor; |
45 import org.eclipse.core.resources.IResourceVisitor; |
45 import org.eclipse.core.resources.IWorkspace; |
46 import org.eclipse.core.resources.IWorkspace; |
46 import org.eclipse.core.resources.IWorkspaceRunnable; |
47 import org.eclipse.core.resources.IWorkspaceRunnable; |
47 import org.eclipse.core.resources.ResourcesPlugin; |
48 import org.eclipse.core.resources.ResourcesPlugin; |
48 import org.eclipse.core.runtime.CoreException; |
49 import org.eclipse.core.runtime.CoreException; |
|
50 import org.eclipse.core.runtime.IAdaptable; |
49 import org.eclipse.core.runtime.IPath; |
51 import org.eclipse.core.runtime.IPath; |
50 import org.eclipse.core.runtime.IProgressMonitor; |
52 import org.eclipse.core.runtime.IProgressMonitor; |
51 import org.eclipse.core.runtime.IStatus; |
53 import org.eclipse.core.runtime.IStatus; |
52 import org.eclipse.core.runtime.NullProgressMonitor; |
54 import org.eclipse.core.runtime.NullProgressMonitor; |
53 import org.eclipse.core.runtime.Path; |
55 import org.eclipse.core.runtime.Path; |
54 import org.eclipse.core.runtime.Status; |
56 import org.eclipse.core.runtime.Status; |
55 import org.eclipse.core.runtime.SubProgressMonitor; |
57 import org.eclipse.core.runtime.SubProgressMonitor; |
56 import org.eclipse.core.runtime.jobs.Job; |
58 import org.eclipse.core.runtime.jobs.Job; |
|
59 import org.eclipse.jface.viewers.ISelection; |
|
60 import org.eclipse.jface.viewers.IStructuredSelection; |
57 import org.eclipse.jface.viewers.StructuredSelection; |
61 import org.eclipse.jface.viewers.StructuredSelection; |
58 import org.eclipse.swt.widgets.Display; |
62 import org.eclipse.swt.widgets.Display; |
|
63 import org.eclipse.ui.IEditorPart; |
59 import org.eclipse.ui.IViewReference; |
64 import org.eclipse.ui.IViewReference; |
60 import org.eclipse.ui.IWorkbenchPage; |
65 import org.eclipse.ui.IWorkbenchPage; |
61 import org.eclipse.ui.IWorkbenchPart; |
66 import org.eclipse.ui.IWorkbenchPart; |
62 import org.eclipse.ui.PlatformUI; |
67 import org.eclipse.ui.PlatformUI; |
|
68 import org.eclipse.ui.handlers.HandlerUtil; |
63 import org.eclipse.ui.ide.IDE; |
69 import org.eclipse.ui.ide.IDE; |
64 import org.eclipse.ui.internal.wizards.datatransfer.TarEntry; |
70 import org.eclipse.ui.internal.wizards.datatransfer.TarEntry; |
65 import org.eclipse.ui.part.ISetSelectionTarget; |
71 import org.eclipse.ui.part.ISetSelectionTarget; |
66 import org.eclipse.wst.jsdt.core.IIncludePathEntry; |
72 import org.eclipse.wst.jsdt.core.IIncludePathEntry; |
67 import org.eclipse.wst.jsdt.core.IJavaScriptProject; |
73 import org.eclipse.wst.jsdt.core.IJavaScriptProject; |
357 return IProjectDescription.DESCRIPTION_FILE_NAME.equals(p.lastSegment()); |
363 return IProjectDescription.DESCRIPTION_FILE_NAME.equals(p.lastSegment()); |
358 } |
364 } |
359 return false; |
365 return false; |
360 } |
366 } |
361 |
367 |
|
368 public static IProject getProjectFromCommandContext(ExecutionEvent event) { |
|
369 IResource resource = null; |
|
370 IWorkbenchPart activePart = HandlerUtil.getActivePart(event); |
|
371 if (activePart instanceof IEditorPart) { |
|
372 resource = (IResource) ((IEditorPart) activePart).getEditorInput().getAdapter(IResource.class); |
|
373 } else { |
|
374 ISelection selection = HandlerUtil.getCurrentSelection(event); |
|
375 if (!selection.isEmpty() && selection instanceof IStructuredSelection) { |
|
376 Object[] array = ((IStructuredSelection) selection).toArray(); |
|
377 if (array.length == 1 && array[0] instanceof IAdaptable) { |
|
378 resource = (IResource) ((IAdaptable) array[0]).getAdapter(IResource.class); |
|
379 } |
|
380 } |
|
381 } |
|
382 if (resource != null) { |
|
383 IProject project = resource.getProject(); |
|
384 if (hasWrtNature(project)) { |
|
385 return project; |
|
386 } |
|
387 } |
|
388 return null; |
|
389 } |
|
390 |
362 } |
391 } |