Java 类org.eclipse.ui.views.navigator.ResourceComparator 实例源码

项目:neoscada    文件:HiveTab.java   
protected void chooseWorkspace ()
{
    final ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog ( getShell (), new WorkbenchLabelProvider (), new WorkbenchContentProvider () );
    dialog.setTitle ( "Select driver exporter configuration file" );
    dialog.setMessage ( "Choose a driver exporter file for the configuration" );
    dialog.setInput ( ResourcesPlugin.getWorkspace ().getRoot () );
    dialog.setComparator ( new ResourceComparator ( ResourceComparator.NAME ) );
    dialog.setAllowMultiple ( true );
    dialog.setDialogBoundsSettings ( getDialogBoundsSettings ( HiveTab.WORKSPACE_SELECTION_DIALOG ), Dialog.DIALOG_PERSISTSIZE );
    if ( dialog.open () == IDialogConstants.OK_ID )
    {
        final IResource resource = (IResource)dialog.getFirstResult ();
        if ( resource != null )
        {
            final String arg = resource.getFullPath ().toString ();
            final String fileLoc = VariablesPlugin.getDefault ().getStringVariableManager ().generateVariableExpression ( "workspace_loc", arg ); //$NON-NLS-1$
            this.fileText.setText ( fileLoc );
            makeDirty ();
        }
    }
}
项目:gwt-eclipse-plugin    文件:ResourceTreeSelectionDialog.java   
/**
 * Constructs an instance of <code>ResourceTreeSelectionDialog</code>.
 * 
 * @param parent the parent shell for the dialog
 * @param title dialog title
 * @param message dialog message
 * @param rootResource resource that serves as the root of the tree. This
 *          resource's descendants are visible in the tree, but the root
 *          itself is not.
 * @param initialResource the initially-selected resource
 * @param visibleResourceTypes a set of {@link IResource} types that are
 *          visible in the tree (e.g.
 *          <code>IResource.FILE | IResource.FOLDER</code>)
 * @param acceptedResourceTypes a set of {@link IResource} types that can be
 *          selected
 * @param multiSelection whether or not to allow selection of multiple
 *          resources
 */
public ResourceTreeSelectionDialog(Shell parent, String title,
    String message, IContainer rootResource, IResource initialResource,
    int visibleResourceTypes, int acceptedResourceTypes,
    boolean multiSelection) {
  super(parent, new WorkbenchLabelProvider(), new WorkbenchContentProvider());

  setTitle(title);
  setMessage(message);
  setHelpAvailable(false);

  setInput(rootResource);
  if (initialResource != null) {
    setInitialSelection(initialResource);
  }
  setComparator(new ResourceComparator(ResourceComparator.NAME));
  setValidator(new ResourceFilter(acceptedResourceTypes, multiSelection));
  addFilter(new ResourceFilter(visibleResourceTypes));
}
项目:filesync4eclipse    文件:MultipleFolderSelectionDialog.java   
/**
 * Creates the tree viewer.
 *
 * @param parent the parent composite
 * @return the tree viewer
 */
protected CheckboxTreeViewer createTreeViewer(Composite parent) {
    fViewer = new CheckboxTreeViewer(parent, SWT.BORDER);

    fViewer.setContentProvider(fContentProvider);
    fViewer.setLabelProvider(fLabelProvider);
    fViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateOKStatus();
        }
    });

    fViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
    if (fFilters != null) {
        for (int i = 0; i != fFilters.size(); i++) {
            fViewer.addFilter((ViewerFilter) fFilters.get(i));
        }
    }

    fViewer.setInput(fInput);

    return fViewer;
}
项目:Eclipse-Postfix-Code-Completion    文件:MultipleFolderSelectionDialog.java   
/**
 * Creates the tree viewer.
 *
 * @param parent the parent composite
 * @return the tree viewer
 */
protected CheckboxTreeViewer createTreeViewer(Composite parent) {
    fViewer = new CheckboxTreeViewer(parent, SWT.BORDER);

    fViewer.setContentProvider(fContentProvider);
    fViewer.setLabelProvider(fLabelProvider);
    fViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateOKStatus();
        }
    });

    fViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
    if (fFilters != null) {
        for (int i = 0; i != fFilters.size(); i++)
            fViewer.addFilter(fFilters.get(i));
    }

    fViewer.setInput(fInput);

    return fViewer;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:MultipleFolderSelectionDialog.java   
/**
 * Creates the tree viewer.
 *
 * @param parent the parent composite
 * @return the tree viewer
 */
protected CheckboxTreeViewer createTreeViewer(Composite parent) {
    fViewer = new CheckboxTreeViewer(parent, SWT.BORDER);

    fViewer.setContentProvider(fContentProvider);
    fViewer.setLabelProvider(fLabelProvider);
    fViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateOKStatus();
        }
    });

    fViewer.setComparator(new ResourceComparator(ResourceComparator.NAME));
    if (fFilters != null) {
        for (int i = 0; i != fFilters.size(); i++)
            fViewer.addFilter(fFilters.get(i));
    }

    fViewer.setInput(fInput);

    return fViewer;
}
项目:teavm    文件:TeaVMProfileDialog.java   
private String chooseWorkspaceDirectory(String prompt) {
    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(),
            new WorkbenchContentProvider());
    dialog.setTitle("Selecting directory");
    dialog.setMessage(prompt);
    dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    if (dialog.open() == IDialogConstants.OK_ID) {
        IResource resource = (IResource)dialog.getFirstResult();
        if (resource != null) {
            String path = resource.getFullPath().toString();
            String fileLoc = VariablesPlugin.getDefault().getStringVariableManager()
                    .generateVariableExpression("workspace_loc", path);
            return fileLoc;
        }
    }
    return null;
}
项目:jsbuild-eclipse    文件:FileSelectionDialog.java   
public FileSelectionDialog(Shell parent, List<IFile> files, String title,
        String message, String filterExtension, String filterMessage) {
    super(parent, new WorkbenchLabelProvider(),
            new WorkbenchContentProvider());

    setTitle(title);
    setMessage(message);
    fFilter = new FileFilter(files, filterExtension);
    fFilterMessage = filterMessage;
    setInput(ResourcesPlugin.getWorkspace().getRoot());
    setComparator(new ResourceComparator(ResourceComparator.NAME));

    ISelectionStatusValidator validator = new ISelectionStatusValidator() {
        @Override
        public IStatus validate(Object[] selection) {
            if (selection.length == 0) {
                return new Status(IStatus.ERROR,
                        JSBuildFileUIPlugin.PLUGIN_ID, 0, "", null);
            }
            for (int i = 0; i < selection.length; i++) {
                if (!(selection[i] instanceof IFile)) {
                    return new Status(IStatus.ERROR,
                            JSBuildFileUIPlugin.PLUGIN_ID, 0, "", null);
                }
            }
            return new Status(IStatus.OK, JSBuildFileUIPlugin.PLUGIN_ID, 0,
                    "", null);
        }
    };
    setValidator(validator);
}
项目:agui_eclipse_plugin    文件:FJExportWizardConfigPage.java   
/**
 * Uses the standard container selection dialog to choose the new value for
 * the container field.
 */

private void handleManifestfileBrowse() {
    String manifestFilename = getManifestfile();

    ILabelProvider lp = new WorkbenchLabelProvider();
    ITreeContentProvider cp = new WorkbenchContentProvider();

    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), lp, cp);
    dialog.setValidator(null);
    dialog.setAllowMultiple(false);
    dialog.setTitle("Select Manifest File"); //$NON-NLS-1$
    //        dialog.setMessage("msg?"); //$NON-NLS-1$
    // dialog.addFilter(filter);
    // dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
    dialog.setInput(jproject.getProject());
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == ElementTreeSelectionDialog.OK) {
        Object[] elements = dialog.getResult();
        if (elements.length == 1) {
            manifestFilename = ((IResource) elements[0]).getFullPath().toOSString();
            int n = manifestFilename.indexOf(File.separatorChar, 1);
            if (n != -1)
                manifestFilename = manifestFilename.substring(n + 1);
            manifestfileText.setText(manifestFilename);
        }
    }
}
项目:agui_eclipse_plugin    文件:FJExportWizardFilesSelectPage.java   
private String selectWorkspaceDir() {

        String result = null;
        ILabelProvider lp = new WorkbenchLabelProvider();
        ITreeContentProvider cp = new WorkbenchContentProvider();

        ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
                getShell(), lp, cp);
        dialog.setValidator(null);
        dialog.setAllowMultiple(false);
        dialog.setTitle("Select base directory to add"); //$NON-NLS-1$
        dialog.setMessage("msg?"); //$NON-NLS-1$
        ViewerFilter filter = new ViewerFilter() {
            public boolean select(Viewer viewer, Object parentElement,
                    Object element) {
                boolean ok = (element instanceof Folder)
                        || (element instanceof Project);
                return ok;
            }
        };
        dialog.addFilter(filter);

        dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
        dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

        if (dialog.open() == ElementTreeSelectionDialog.OK) {
            Object[] elements = dialog.getResult();
            if (elements.length == 1) {
                result = ((IResource) elements[0]).getFullPath().toOSString();
            }
        }
        return result;
    }
项目:agui_eclipse_plugin    文件:ConfigPage.java   
/**
     * Uses the standard container selection dialog to
     * choose the new value for the container field.
     */

    private void handleManifestfileBrowse() {

        String manifestFilename = getManifestfile();

        ILabelProvider lp= new WorkbenchLabelProvider();
        ITreeContentProvider cp= new WorkbenchContentProvider();

        ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(
                getShell(), lp, cp);
        dialog.setValidator(null);
        dialog.setAllowMultiple(false);
        dialog.setTitle("Select Manifest File"); //$NON-NLS-1$
//        dialog.setMessage("msg?"); //$NON-NLS-1$
        //dialog.addFilter(filter);
//        dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());   
        //TODO: Validate Input, Make project list IAdaptable
//        dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());   
        dialog.setInput(jproject.getProject());
        dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

        if (dialog.open() == ElementTreeSelectionDialog.OK) {
            Object[] elements= dialog.getResult();
            if (elements.length == 1) {
                manifestFilename = ((IResource)elements[0]).getLocation().toOSString();
//                int n = manifestFilename.indexOf(File.separatorChar,1);
//                if (n!=-1)
//                    manifestFilename = manifestFilename.substring(n+1);
                manifestfileText.setText(manifestFilename);
            }
        }
    }
项目:agui_eclipse_plugin    文件:FilesSelectPage.java   
private String selectWorkspaceDir() {

        String result = null;
        ILabelProvider lp= new WorkbenchLabelProvider();
        ITreeContentProvider cp= new WorkbenchContentProvider();

        ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(
                getShell(), lp, cp);
        dialog.setValidator(null);
        dialog.setAllowMultiple(false);
        dialog.setTitle("Select base directory to add"); //$NON-NLS-1$
        dialog.setMessage("msg?"); //$NON-NLS-1$
        ViewerFilter filter = new ViewerFilter() {
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                boolean ok = (element instanceof Folder) || (element instanceof Project);
                return ok;
            }
        };
        dialog.addFilter(filter);

        dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());   
        dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

        if (dialog.open() == ElementTreeSelectionDialog.OK) {
            Object[] elements= dialog.getResult();
            if (elements.length == 1) {
                result = ((IResource)elements[0]).getFullPath().toOSString();
            }
        }
        return result;
    }
项目:Eclipse-Postfix-Code-Completion    文件:BuildPathDialogAccess.java   
/**
 * Shows the UI to configure a JAR or ZIP archive located in the workspace.
 * The dialog returns the configured classpath entry path or <code>null</code> if the dialog has
 * been canceled. The dialog does not apply any changes.
 *
 * @param shell The parent shell for the dialog.
 * @param initialEntry The path of the initial archive entry
 * @param usedEntries An array of paths that are already on the classpath and therefore should not be
 * selected again.
 * @return Returns the configured JAR path or <code>null</code> if the dialog has
 * been canceled by the user.
 */
public static IPath configureJAREntry(Shell shell, IPath initialEntry, IPath[] usedEntries) {
    if (initialEntry == null || usedEntries == null) {
        throw new IllegalArgumentException();
    }

    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);

    ArrayList<IResource> usedJars= new ArrayList<IResource>(usedEntries.length);
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    for (int i= 0; i < usedEntries.length; i++) {
        IPath curr= usedEntries[i];
        if (!curr.equals(initialEntry)) {
            IResource resource= root.findMember(usedEntries[i]);
            if (resource instanceof IFile) {
                usedJars.add(resource);
            }
        }
    }

    IResource existing= root.findMember(initialEntry);

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
    dialog.setValidator(validator);
    dialog.setTitle(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_edit_title);
    dialog.setMessage(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_edit_description);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.addFilter(new ArchiveFileFilter(usedJars, true, true));
    dialog.setInput(root);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setInitialSelection(existing);

    if (dialog.open() == Window.OK) {
        IResource element= (IResource) dialog.getFirstResult();
        return element.getFullPath();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:BuildPathDialogAccess.java   
/**
 * Shows the UI to select new JAR or ZIP archive entries located in the workspace.
 * The dialog returns the selected entries or <code>null</code> if the dialog has
 * been canceled. The dialog does not apply any changes.
 *
 * @param shell The parent shell for the dialog.
 * @param initialSelection The path of the element (container or archive) to initially select or <code>null</code> to not select an entry.
 * @param usedEntries An array of paths that are already on the classpath and therefore should not be
 * selected again.
 * @return Returns the new JAR paths or <code>null</code> if the dialog has
 * been canceled by the user.
 */
public static IPath[] chooseJAREntries(Shell shell, IPath initialSelection, IPath[] usedEntries) {
    if (usedEntries == null) {
        throw new IllegalArgumentException();
    }

    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
    ArrayList<IResource> usedJars= new ArrayList<IResource>(usedEntries.length);
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    for (int i= 0; i < usedEntries.length; i++) {
        IResource resource= root.findMember(usedEntries[i]);
        if (resource instanceof IFile) {
            usedJars.add(resource);
        }
    }
    IResource focus= initialSelection != null ? root.findMember(initialSelection) : null;

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
    dialog.setHelpAvailable(false);
    dialog.setValidator(validator);
    dialog.setTitle(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_new_title);
    dialog.setMessage(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_new_description);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.addFilter(new ArchiveFileFilter(usedJars, true, true));
    dialog.setInput(root);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setInitialSelection(focus);

    if (dialog.open() == Window.OK) {
        Object[] elements= dialog.getResult();
        IPath[] res= new IPath[elements.length];
        for (int i= 0; i < res.length; i++) {
            IResource elem= (IResource)elements[i];
            res[i]= elem.getFullPath();
        }
        return res;
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:JavadocConfigurationBlock.java   
private String chooseWorkspaceArchive() {
    String initSelection= fArchiveField.getText();

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();
    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);

    IResource initSel= null;
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    if (initSelection.length() > 0) {
        initSel= root.findMember(new Path(initSelection));
    }

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(fShell, lp, cp);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.setAllowMultiple(false);
    dialog.setValidator(validator);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setTitle(PreferencesMessages.JavadocConfigurationBlock_workspace_archive_selection_dialog_title);
    dialog.setMessage(PreferencesMessages.JavadocConfigurationBlock_workspace_archive_selection_dialog_description);
    dialog.setInput(root);
    dialog.setInitialSelection(initSel);
    dialog.setHelpAvailable(false);
    if (dialog.open() == Window.OK) {
        IResource res= (IResource) dialog.getFirstResult();
        return res.getFullPath().makeRelative().toString();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:NativeLibrariesConfigurationBlock.java   
private String chooseInternal() {
    String initSelection= fPathField.getText();

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();
    Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses);

    IResource initSel= null;
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    if (initSelection.length() > 0) {
        initSel= root.findMember(new Path(initSelection));
    }
    if (initSel == null) {
        initSel= root.findMember(fEntry.getPath());
    }

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(fShell, lp, cp);
    dialog.setAllowMultiple(false);
    dialog.setValidator(validator);
    dialog.addFilter(filter);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setTitle(NewWizardMessages.NativeLibrariesDialog_intfiledialog_title);
    dialog.setMessage(NewWizardMessages.NativeLibrariesDialog_intfiledialog_message);
    dialog.setInput(root);
    dialog.setInitialSelection(initSel);
    dialog.setHelpAvailable(false);
    if (dialog.open() == Window.OK) {
        IResource res= (IResource) dialog.getFirstResult();
        return res.getFullPath().makeRelative().toString();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:NewSourceFolderWizardPage.java   
private IFolder chooseFolder(String title, String message, IPath initialPath) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, null);

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IProject currProject= fCurrJProject.getProject();

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), lp, cp);
    dialog.setValidator(validator);
    dialog.setTitle(title);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currProject);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    IResource res= currProject.findMember(initialPath);
    if (res != null) {
        dialog.setInitialSelection(res);
    }

    if (dialog.open() == Window.OK) {
        return (IFolder) dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:BuildPathsBlock.java   
private IContainer chooseContainer() {
    Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    IProject[] allProjects= fWorkspaceRoot.getProjects();
    ArrayList<IProject> rejectedElements= new ArrayList<IProject>(allProjects.length);
    IProject currProject= fCurrJProject.getProject();
    for (int i= 0; i < allProjects.length; i++) {
        if (!allProjects[i].equals(currProject)) {
            rejectedElements.add(allProjects[i]);
        }
    }
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initSelection= null;
    if (fOutputLocationPath != null) {
        initSelection= fWorkspaceRoot.findMember(fOutputLocationPath);
    }

    FolderSelectionDialog dialog= new FolderSelectionDialog(getShell(), lp, cp);
    dialog.setTitle(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_title);
    dialog.setValidator(validator);
    dialog.setMessage(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_description);
    dialog.addFilter(filter);
    dialog.setInput(fWorkspaceRoot);
    dialog.setInitialSelection(initSelection);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        return (IContainer)dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:AddSourceFolderWizardPage.java   
private IFolder chooseFolder(String title, String message, IPath initialPath) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, null);

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IProject currProject= fNewElement.getJavaProject().getProject();

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), lp, cp) {
        @Override
        protected Control createDialogArea(Composite parent) {
            Control result= super.createDialogArea(parent);
            PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IJavaHelpContextIds.BP_CHOOSE_EXISTING_FOLDER_TO_MAKE_SOURCE_FOLDER);
            return result;
        }
    };
    dialog.setValidator(validator);
    dialog.setTitle(title);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currProject);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    IResource res= currProject.findMember(initialPath);
    if (res != null) {
        dialog.setInitialSelection(res);
    }

    if (dialog.open() == Window.OK) {
        return (IFolder) dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BuildPathDialogAccess.java   
/**
 * Shows the UI to configure a JAR or ZIP archive located in the workspace.
 * The dialog returns the configured classpath entry path or <code>null</code> if the dialog has
 * been canceled. The dialog does not apply any changes.
 *
 * @param shell The parent shell for the dialog.
 * @param initialEntry The path of the initial archive entry
 * @param usedEntries An array of paths that are already on the classpath and therefore should not be
 * selected again.
 * @return Returns the configured JAR path or <code>null</code> if the dialog has
 * been canceled by the user.
 */
public static IPath configureJAREntry(Shell shell, IPath initialEntry, IPath[] usedEntries) {
    if (initialEntry == null || usedEntries == null) {
        throw new IllegalArgumentException();
    }

    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);

    ArrayList<IResource> usedJars= new ArrayList<IResource>(usedEntries.length);
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    for (int i= 0; i < usedEntries.length; i++) {
        IPath curr= usedEntries[i];
        if (!curr.equals(initialEntry)) {
            IResource resource= root.findMember(usedEntries[i]);
            if (resource instanceof IFile) {
                usedJars.add(resource);
            }
        }
    }

    IResource existing= root.findMember(initialEntry);

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
    dialog.setValidator(validator);
    dialog.setTitle(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_edit_title);
    dialog.setMessage(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_edit_description);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.addFilter(new ArchiveFileFilter(usedJars, true, true));
    dialog.setInput(root);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setInitialSelection(existing);

    if (dialog.open() == Window.OK) {
        IResource element= (IResource) dialog.getFirstResult();
        return element.getFullPath();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BuildPathDialogAccess.java   
/**
 * Shows the UI to select new JAR or ZIP archive entries located in the workspace.
 * The dialog returns the selected entries or <code>null</code> if the dialog has
 * been canceled. The dialog does not apply any changes.
 *
 * @param shell The parent shell for the dialog.
 * @param initialSelection The path of the element (container or archive) to initially select or <code>null</code> to not select an entry.
 * @param usedEntries An array of paths that are already on the classpath and therefore should not be
 * selected again.
 * @return Returns the new JAR paths or <code>null</code> if the dialog has
 * been canceled by the user.
 */
public static IPath[] chooseJAREntries(Shell shell, IPath initialSelection, IPath[] usedEntries) {
    if (usedEntries == null) {
        throw new IllegalArgumentException();
    }

    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
    ArrayList<IResource> usedJars= new ArrayList<IResource>(usedEntries.length);
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    for (int i= 0; i < usedEntries.length; i++) {
        IResource resource= root.findMember(usedEntries[i]);
        if (resource instanceof IFile) {
            usedJars.add(resource);
        }
    }
    IResource focus= initialSelection != null ? root.findMember(initialSelection) : null;

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
    dialog.setHelpAvailable(false);
    dialog.setValidator(validator);
    dialog.setTitle(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_new_title);
    dialog.setMessage(NewWizardMessages.BuildPathDialogAccess_JARArchiveDialog_new_description);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.addFilter(new ArchiveFileFilter(usedJars, true, true));
    dialog.setInput(root);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setInitialSelection(focus);

    if (dialog.open() == Window.OK) {
        Object[] elements= dialog.getResult();
        IPath[] res= new IPath[elements.length];
        for (int i= 0; i < res.length; i++) {
            IResource elem= (IResource)elements[i];
            res[i]= elem.getFullPath();
        }
        return res;
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:JavadocConfigurationBlock.java   
private String chooseWorkspaceArchive() {
    String initSelection= fArchiveField.getText();

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();
    Class<?>[] acceptedClasses= new Class[] { IFile.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);

    IResource initSel= null;
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    if (initSelection.length() > 0) {
        initSel= root.findMember(new Path(initSelection));
    }

    FilteredElementTreeSelectionDialog dialog= new FilteredElementTreeSelectionDialog(fShell, lp, cp);
    dialog.setInitialFilter(ArchiveFileFilter.JARZIP_FILTER_STRING);
    dialog.setAllowMultiple(false);
    dialog.setValidator(validator);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setTitle(PreferencesMessages.JavadocConfigurationBlock_workspace_archive_selection_dialog_title);
    dialog.setMessage(PreferencesMessages.JavadocConfigurationBlock_workspace_archive_selection_dialog_description);
    dialog.setInput(root);
    dialog.setInitialSelection(initSel);
    dialog.setHelpAvailable(false);
    if (dialog.open() == Window.OK) {
        IResource res= (IResource) dialog.getFirstResult();
        return res.getFullPath().makeRelative().toString();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:NativeLibrariesConfigurationBlock.java   
private String chooseInternal() {
    String initSelection= fPathField.getText();

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();
    Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses);

    IResource initSel= null;
    IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
    if (initSelection.length() > 0) {
        initSel= root.findMember(new Path(initSelection));
    }
    if (initSel == null) {
        initSel= root.findMember(fEntry.getPath());
    }

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(fShell, lp, cp);
    dialog.setAllowMultiple(false);
    dialog.setValidator(validator);
    dialog.addFilter(filter);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setTitle(NewWizardMessages.NativeLibrariesDialog_intfiledialog_title);
    dialog.setMessage(NewWizardMessages.NativeLibrariesDialog_intfiledialog_message);
    dialog.setInput(root);
    dialog.setInitialSelection(initSel);
    dialog.setHelpAvailable(false);
    if (dialog.open() == Window.OK) {
        IResource res= (IResource) dialog.getFirstResult();
        return res.getFullPath().makeRelative().toString();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:NewSourceFolderWizardPage.java   
private IFolder chooseFolder(String title, String message, IPath initialPath) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, null);

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IProject currProject= fCurrJProject.getProject();

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), lp, cp);
    dialog.setValidator(validator);
    dialog.setTitle(title);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currProject);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    IResource res= currProject.findMember(initialPath);
    if (res != null) {
        dialog.setInitialSelection(res);
    }

    if (dialog.open() == Window.OK) {
        return (IFolder) dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:BuildPathsBlock.java   
private IContainer chooseContainer() {
    Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    IProject[] allProjects= fWorkspaceRoot.getProjects();
    ArrayList<IProject> rejectedElements= new ArrayList<IProject>(allProjects.length);
    IProject currProject= fCurrJProject.getProject();
    for (int i= 0; i < allProjects.length; i++) {
        if (!allProjects[i].equals(currProject)) {
            rejectedElements.add(allProjects[i]);
        }
    }
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initSelection= null;
    if (fOutputLocationPath != null) {
        initSelection= fWorkspaceRoot.findMember(fOutputLocationPath);
    }

    FolderSelectionDialog dialog= new FolderSelectionDialog(getShell(), lp, cp);
    dialog.setTitle(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_title);
    dialog.setValidator(validator);
    dialog.setMessage(NewWizardMessages.BuildPathsBlock_ChooseOutputFolderDialog_description);
    dialog.addFilter(filter);
    dialog.setInput(fWorkspaceRoot);
    dialog.setInitialSelection(initSelection);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        return (IContainer)dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:AddSourceFolderWizardPage.java   
private IFolder chooseFolder(String title, String message, IPath initialPath) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, null);

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IProject currProject= fNewElement.getJavaProject().getProject();

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), lp, cp) {
        @Override
        protected Control createDialogArea(Composite parent) {
            Control result= super.createDialogArea(parent);
            PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IJavaHelpContextIds.BP_CHOOSE_EXISTING_FOLDER_TO_MAKE_SOURCE_FOLDER);
            return result;
        }
    };
    dialog.setValidator(validator);
    dialog.setTitle(title);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currProject);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    IResource res= currProject.findMember(initialPath);
    if (res != null) {
        dialog.setInitialSelection(res);
    }

    if (dialog.open() == Window.OK) {
        return (IFolder) dialog.getFirstResult();
    }
    return null;
}
项目:goclipse    文件:ControlUtils.java   
public static String openProgramPathDialog(IProject project, Button button) throws OperationCancellation {
    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
        button.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
    dialog.setTitle(LangUIMessages.ProgramPathDialog_title);
    dialog.setMessage(LangUIMessages.ProgramPathDialog_message);

    dialog.setInput(project);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    if(dialog.open() == IDialogConstants.OK_ID) {
        IResource resource = (IResource) dialog.getFirstResult();
        return resource.getProjectRelativePath().toPortableString();
    }
    throw new OperationCancellation();
}
项目:filesync4eclipse    文件:InclusionExclusionDialog.java   
private void addMultipleEntries(ListDialogField field) {
    Class[] acceptedClasses = new Class[] { IFolder.class, IFile.class };
    ISelectionStatusValidator validator = new TypedElementSelectionValidator(
            acceptedClasses, true);
    ViewerFilter filter = new TypedViewerFilter(acceptedClasses);

    ILabelProvider lp = new WorkbenchLabelProvider();
    ITreeContentProvider cp = new WorkbenchContentProvider();

    String title, message;
    if (isExclusion(field)) {
        title = "Exclusion Pattern Selection";
        message = "&Choose folders or files to exclude:";
    } else {
        title = "Inclusion Pattern Selection";
        message = "&Choose folders or files to include:";
    }
    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(),
            lp, cp);
    dialog.setTitle(title);
    dialog.setValidator(validator);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currSourceFolder);
    dialog.setInitialSelection(null);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        Object[] objects = dialog.getResult();
        int existingSegments = currSourceFolder.getFullPath().segmentCount();

        for (int i = 0; i < objects.length; i++) {
            IResource curr = (IResource) objects[i];
            IPath path = curr.getFullPath().removeFirstSegments(existingSegments)
                    .makeRelative();
            String res;
            if (curr instanceof IContainer) {
                res = path.addTrailingSeparator().toString();
            } else {
                res = path.toString();
            }
            field.addElement(res);
        }
    }
}
项目:filesync4eclipse    文件:ProjectSyncPropertyPage.java   
private IPath openFileDialog(IPath path) {
    Class[] acceptedClasses = new Class[] { IFile.class, IFolder.class,
            IProject.class };
    ISelectionStatusValidator validator = new TypedElementSelectionValidator(
            acceptedClasses, false) {
        @Override
        public IStatus validate(Object[] elements) {
            if (elements.length > 1 || elements.length == 0
                    || !(elements[0] instanceof IFile)) {
                return errorStatus;
            }
            return okStatus;
        }
    };

    IProject[] allProjects = workspaceRoot.getProjects();
    ArrayList rejectedElements = new ArrayList(allProjects.length);
    for (int i = 0; i < allProjects.length; i++) {
        if (!allProjects[i].equals(project)) {
            rejectedElements.add(allProjects[i]);
        }
    }
    ViewerFilter filter = new TypedViewerFilter(acceptedClasses, rejectedElements
            .toArray());

    ILabelProvider lp = new WorkbenchLabelProvider();
    ITreeContentProvider cp = new WorkbenchContentProvider();

    IResource initSelection = null;
    if (path != null) {
        initSelection = project.findMember(path);
    }

    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(),
            lp, cp);
    dialog.setTitle("Variables");
    dialog.setValidator(validator);
    dialog.setMessage("Select file with variables definition");
    dialog.addFilter(filter);
    dialog.setInput(workspaceRoot);
    dialog.setInitialSelection(initSelection);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        return ((IFile) dialog.getFirstResult()).getProjectRelativePath();
    }
    return null;
}
项目:filesync4eclipse    文件:InclusionExclusionEntryDialog.java   
private IPath chooseExclusionPattern() {
    Class[] acceptedClasses = new Class[] { IFolder.class, IFile.class };
    ISelectionStatusValidator validator = new TypedElementSelectionValidator(
            acceptedClasses, false);
    ViewerFilter filter = new TypedViewerFilter(acceptedClasses);

    ILabelProvider lp = new WorkbenchLabelProvider();
    ITreeContentProvider cp = new WorkbenchContentProvider();

    IPath initialPath = new Path(exclPatternDialog.getText());
    IResource initialElement = null;
    IContainer curr = currSourceFolder;
    int nSegments = initialPath.segmentCount();
    for (int i = 0; i < nSegments; i++) {
        IResource elem = curr.findMember(initialPath.segment(i));
        if (elem != null) {
            initialElement = elem;
        }
        if (elem instanceof IContainer) {
            curr = (IContainer) elem;
        } else {
            break;
        }
    }
    String title, message;
    if (isExclusion) {
        title = "Exclusion Pattern Selection";
        message = "&Choose a folder or file to exclude:";
    } else {
        title = "Inclusion Pattern Selection";
        message = "&Choose a folder or file to include:";
    }

    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
            getShell(), lp, cp);
    dialog.setTitle(title);
    dialog.setValidator(validator);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currSourceFolder);
    dialog.setInitialSelection(initialElement);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        IResource res = (IResource) dialog.getFirstResult();
        IPath path = res.getFullPath().removeFirstSegments(
                currSourceFolder.getFullPath().segmentCount())
                .makeRelative();
        if (res instanceof IContainer) {
            return path.addTrailingSeparator();
        }
        return path;
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:OutputLocationDialog.java   
private IContainer chooseOutputLocation() {
    IWorkspaceRoot root= fCurrProject.getWorkspace().getRoot();
    final Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    IProject[] allProjects= root.getProjects();
    ArrayList<IProject> rejectedElements= new ArrayList<IProject>(allProjects.length);
    for (int i= 0; i < allProjects.length; i++) {
        if (!allProjects[i].equals(fCurrProject)) {
            rejectedElements.add(allProjects[i]);
        }
    }
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initSelection= null;
    if (fOutputLocation != null) {
        initSelection= root.findMember(fOutputLocation);
    }

    FolderSelectionDialog dialog= new FolderSelectionDialog(getShell(), lp, cp);
    dialog.setTitle(NewWizardMessages.OutputLocationDialog_ChooseOutputFolder_title);

       dialog.setValidator(new ISelectionStatusValidator() {
           ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
           public IStatus validate(Object[] selection) {
               IStatus typedStatus= validator.validate(selection);
               if (!typedStatus.isOK())
                   return typedStatus;
               if (selection[0] instanceof IFolder) {
                   IFolder folder= (IFolder) selection[0];
                   try {
                    IStatus result= ClasspathModifier.checkSetOutputLocationPrecondition(fEntryToEdit, folder.getFullPath(), fAllowInvalidClasspath, fCPJavaProject);
                    if (result.getSeverity() == IStatus.ERROR)
                        return result;
                   } catch (CoreException e) {
                    JavaPlugin.log(e);
                   }
                   return new StatusInfo();
               } else {
                return new StatusInfo(IStatus.ERROR, ""); //$NON-NLS-1$
               }
           }
       });
    dialog.setMessage(NewWizardMessages.OutputLocationDialog_ChooseOutputFolder_description);
    dialog.addFilter(filter);
    dialog.setInput(root);
    dialog.setInitialSelection(initSelection);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        return (IContainer)dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion    文件:FolderSelectionDialog.java   
public FolderSelectionDialog(Shell parent, ILabelProvider labelProvider, ITreeContentProvider contentProvider) {
    super(parent, labelProvider, contentProvider);
    setComparator(new ResourceComparator(ResourceComparator.NAME));
}
项目:Eclipse-Postfix-Code-Completion    文件:ExclusionInclusionEntryDialog.java   
public static IPath[] chooseExclusionPattern(Shell shell, IContainer currentSourceFolder, String title, String message, IPath initialPath, boolean multiSelection) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class, IFile.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, multiSelection);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses);


    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initialElement= null;
    if (initialPath != null) {
        IContainer curr= currentSourceFolder;
        int nSegments= initialPath.segmentCount();
        for (int i= 0; i < nSegments; i++) {
            IResource elem= curr.findMember(initialPath.segment(i));
            if (elem != null) {
                initialElement= elem;
            }
            if (elem instanceof IContainer) {
                curr= (IContainer) elem;
            } else {
                break;
            }
        }
    }

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(shell, lp, cp);
    dialog.setTitle(title);
    dialog.setValidator(validator);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currentSourceFolder);
    dialog.setInitialSelection(initialElement);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
        Object[] objects= dialog.getResult();
        int existingSegments= currentSourceFolder.getFullPath().segmentCount();

        IPath[] resArr= new IPath[objects.length];
        for (int i= 0; i < objects.length; i++) {
            IResource currRes= (IResource) objects[i];
            IPath path= currRes.getFullPath().removeFirstSegments(existingSegments).makeRelative();
            if (currRes instanceof IContainer) {
                path= path.addTrailingSeparator();
            }
            resArr[i]= path;
        }
        return resArr;
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:OutputLocationDialog.java   
private IContainer chooseOutputLocation() {
    IWorkspaceRoot root= fCurrProject.getWorkspace().getRoot();
    final Class<?>[] acceptedClasses= new Class[] { IProject.class, IFolder.class };
    IProject[] allProjects= root.getProjects();
    ArrayList<IProject> rejectedElements= new ArrayList<IProject>(allProjects.length);
    for (int i= 0; i < allProjects.length; i++) {
        if (!allProjects[i].equals(fCurrProject)) {
            rejectedElements.add(allProjects[i]);
        }
    }
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses, rejectedElements.toArray());

    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initSelection= null;
    if (fOutputLocation != null) {
        initSelection= root.findMember(fOutputLocation);
    }

    FolderSelectionDialog dialog= new FolderSelectionDialog(getShell(), lp, cp);
    dialog.setTitle(NewWizardMessages.OutputLocationDialog_ChooseOutputFolder_title);

       dialog.setValidator(new ISelectionStatusValidator() {
           ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, false);
           public IStatus validate(Object[] selection) {
               IStatus typedStatus= validator.validate(selection);
               if (!typedStatus.isOK())
                   return typedStatus;
               if (selection[0] instanceof IFolder) {
                   IFolder folder= (IFolder) selection[0];
                   try {
                    IStatus result= ClasspathModifier.checkSetOutputLocationPrecondition(fEntryToEdit, folder.getFullPath(), fAllowInvalidClasspath, fCPJavaProject);
                    if (result.getSeverity() == IStatus.ERROR)
                        return result;
                   } catch (CoreException e) {
                    JavaPlugin.log(e);
                   }
                   return new StatusInfo();
               } else {
                return new StatusInfo(IStatus.ERROR, ""); //$NON-NLS-1$
               }
           }
       });
    dialog.setMessage(NewWizardMessages.OutputLocationDialog_ChooseOutputFolder_description);
    dialog.addFilter(filter);
    dialog.setInput(root);
    dialog.setInitialSelection(initSelection);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));

    if (dialog.open() == Window.OK) {
        return (IContainer)dialog.getFirstResult();
    }
    return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:FolderSelectionDialog.java   
public FolderSelectionDialog(Shell parent, ILabelProvider labelProvider, ITreeContentProvider contentProvider) {
    super(parent, labelProvider, contentProvider);
    setComparator(new ResourceComparator(ResourceComparator.NAME));
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:ExclusionInclusionEntryDialog.java   
public static IPath[] chooseExclusionPattern(Shell shell, IContainer currentSourceFolder, String title, String message, IPath initialPath, boolean multiSelection) {
    Class<?>[] acceptedClasses= new Class[] { IFolder.class, IFile.class };
    ISelectionStatusValidator validator= new TypedElementSelectionValidator(acceptedClasses, multiSelection);
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses);


    ILabelProvider lp= new WorkbenchLabelProvider();
    ITreeContentProvider cp= new WorkbenchContentProvider();

    IResource initialElement= null;
    if (initialPath != null) {
        IContainer curr= currentSourceFolder;
        int nSegments= initialPath.segmentCount();
        for (int i= 0; i < nSegments; i++) {
            IResource elem= curr.findMember(initialPath.segment(i));
            if (elem != null) {
                initialElement= elem;
            }
            if (elem instanceof IContainer) {
                curr= (IContainer) elem;
            } else {
                break;
            }
        }
    }

    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(shell, lp, cp);
    dialog.setTitle(title);
    dialog.setValidator(validator);
    dialog.setMessage(message);
    dialog.addFilter(filter);
    dialog.setInput(currentSourceFolder);
    dialog.setInitialSelection(initialElement);
    dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
        Object[] objects= dialog.getResult();
        int existingSegments= currentSourceFolder.getFullPath().segmentCount();

        IPath[] resArr= new IPath[objects.length];
        for (int i= 0; i < objects.length; i++) {
            IResource currRes= (IResource) objects[i];
            IPath path= currRes.getFullPath().removeFirstSegments(existingSegments).makeRelative();
            if (currRes instanceof IContainer) {
                path= path.addTrailingSeparator();
            }
            resArr[i]= path;
        }
        return resArr;
    }
    return null;
}