org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/util/ProjectUtils.java
changeset 281 c4e6bebd078c
parent 271 4ff7e6f31c66
child 282 39bbb3a15d6f
equal deleted inserted replaced
279:2c8fd0932460 281:c4e6bebd078c
    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 }