當前位置: 首頁>>代碼示例>>Java>>正文


Java ElementTreeSelectionDialog.setValidator方法代碼示例

本文整理匯總了Java中org.eclipse.ui.dialogs.ElementTreeSelectionDialog.setValidator方法的典型用法代碼示例。如果您正苦於以下問題:Java ElementTreeSelectionDialog.setValidator方法的具體用法?Java ElementTreeSelectionDialog.setValidator怎麽用?Java ElementTreeSelectionDialog.setValidator使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.ui.dialogs.ElementTreeSelectionDialog的用法示例。


在下文中一共展示了ElementTreeSelectionDialog.setValidator方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: handleManifestfileBrowse

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
/**
 * 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);
		}
	}
}
 
開發者ID:thahn0720,項目名稱:agui_eclipse_plugin,代碼行數:33,代碼來源:FJExportWizardConfigPage.java

示例2: selectWorkspaceDir

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
	}
 
開發者ID:thahn0720,項目名稱:agui_eclipse_plugin,代碼行數:34,代碼來源:FJExportWizardFilesSelectPage.java

示例3: handleManifestfileBrowse

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
/**
     * 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);
            }
        }
    }
 
開發者ID:thahn0720,項目名稱:agui_eclipse_plugin,代碼行數:37,代碼來源:ConfigPage.java

示例4: selectWorkspaceDir

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
    }
 
開發者ID:thahn0720,項目名稱:agui_eclipse_plugin,代碼行數:32,代碼來源:FilesSelectPage.java

示例5: createWorkspaceFileSelectionDialog

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
/**
 * Creates and returns a dialog to choose an existing workspace file.
 * @param title the title
 * @param message the dialog message
 * @return the dialog
 */
protected ElementTreeSelectionDialog createWorkspaceFileSelectionDialog(String title, String message) {
	int labelFlags= JavaElementLabelProvider.SHOW_BASICS
					| JavaElementLabelProvider.SHOW_OVERLAY_ICONS
					| JavaElementLabelProvider.SHOW_SMALL_ICONS;
	final DecoratingLabelProvider provider= new DecoratingLabelProvider(new JavaElementLabelProvider(labelFlags), new ProblemsLabelDecorator(null));
	ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), provider, new StandardJavaElementContentProvider());
	dialog.setComparator(new JavaElementComparator());
	dialog.setAllowMultiple(false);
	dialog.setValidator(new ISelectionStatusValidator() {
		public IStatus validate(Object[] selection) {
			StatusInfo res= new StatusInfo();
			// only single selection
			if (selection.length == 1 && (selection[0] instanceof IFile))
				res.setOK();
			else
				res.setError(""); //$NON-NLS-1$
			return res;
		}
	});
	dialog.addFilter(new EmptyInnerPackageFilter());
	dialog.addFilter(new LibraryFilter());
	dialog.setTitle(title);
	dialog.setMessage(message);
	dialog.setStatusLineAboveButtons(true);
	dialog.setInput(JavaCore.create(JavaPlugin.getWorkspace().getRoot()));
	return dialog;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:34,代碼來源:JarManifestWizardPage.java

示例6: chooseInternal

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:35,代碼來源:NativeLibrariesConfigurationBlock.java

示例7: chooseFolder

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:28,代碼來源:NewSourceFolderWizardPage.java

示例8: chooseFolder

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:35,代碼來源:AddSourceFolderWizardPage.java

示例9: showDialogAndGetDiagramFile

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
/**
 * Shows a dialog to select a diagram file to compare.
 * 
 * @return selected diagram file.
 */
private IFile showDialogAndGetDiagramFile() {
    ElementTreeSelectionDialog fileDialog = new ElementTreeSelectionDialog(
            DcaseEditorUtil.getActiveWindowShell(),
            new DecoratingLabelProvider(new WorkbenchLabelProvider(),
                    PlatformUI.getWorkbench().getDecoratorManager()
                            .getLabelDecorator()),
            new FileExtensionRestrictTreeContentProvider(PropertyUtil
                    .getSystemProperty(DIAGRAM_FILE_EXTENSION)));

    fileDialog.setInput(ResourcesPlugin.getWorkspace().getRoot()
            .getProjects());
    fileDialog.setAllowMultiple(false);
    fileDialog.setBlockOnOpen(true);
    // sets validator that tests whether a file is selected.
    fileDialog.setValidator(new FileSelectionStatusValidator());
    fileDialog.setTitle(Messages.CompareDcaseFileSelectionAdapter_1);

    fileDialog.open();

    Object[] results = fileDialog.getResult();

    if (results == null) {
        return null;
    }
    return (IFile) results[0];
}
 
開發者ID:d-case,項目名稱:d-case_editor,代碼行數:32,代碼來源:CompareDcaseFileSelectionAdapter.java

示例10: addMultipleEntries

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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);
        }
    }
}
 
開發者ID:iloveeclipse,項目名稱:filesync4eclipse,代碼行數:46,代碼來源:InclusionExclusionDialog.java

示例11: openFileDialog

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:iloveeclipse,項目名稱:filesync4eclipse,代碼行數:49,代碼來源:ProjectSyncPropertyPage.java

示例12: chooseExclusionPattern

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:iloveeclipse,項目名稱:filesync4eclipse,代碼行數:56,代碼來源:InclusionExclusionEntryDialog.java

示例13: createPackageDialog

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
/**
 * Creates a selection dialog that lists all packages under the given package
 * fragment root.
 * The caller is responsible for opening the dialog with <code>Window.open</code>,
 * and subsequently extracting the selected packages (of type
 * <code>IPackageFragment</code>) via <code>SelectionDialog.getResult</code>.
 *
 * @param packageFragments the package fragments
 * @return a new selection dialog
 */
protected SelectionDialog createPackageDialog(Set<IJavaElement> packageFragments) {
	List<IPackageFragment> packages= new ArrayList<IPackageFragment>(packageFragments.size());
	for (Iterator<IJavaElement> iter= packageFragments.iterator(); iter.hasNext();) {
		IPackageFragment fragment= (IPackageFragment)iter.next();
		boolean containsJavaElements= false;
		int kind;
		try {
			kind= fragment.getKind();
			containsJavaElements= fragment.getChildren().length > 0;
		} catch (JavaModelException ex) {
			ExceptionHandler.handle(ex, getContainer().getShell(), JarPackagerMessages.JarManifestWizardPage_error_jarPackageWizardError_title, Messages.format(JarPackagerMessages.JarManifestWizardPage_error_jarPackageWizardError_message, JavaElementLabels.getElementLabel(fragment, JavaElementLabels.ALL_DEFAULT)));
			continue;
		}
		if (kind != IPackageFragmentRoot.K_BINARY && containsJavaElements)
			packages.add(fragment);
	}
	StandardJavaElementContentProvider cp= new StandardJavaElementContentProvider() {
		@Override
		public boolean hasChildren(Object element) {
			// prevent the + from being shown in front of packages
			return !(element instanceof IPackageFragment) && super.hasChildren(element);
		}
	};
	final DecoratingLabelProvider provider= new DecoratingLabelProvider(new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT), new ProblemsLabelDecorator(null));
	ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getContainer().getShell(), provider, cp);
	dialog.setDoubleClickSelects(false);
	dialog.setComparator(new JavaElementComparator());
	dialog.setInput(JavaCore.create(JavaPlugin.getWorkspace().getRoot()));
	dialog.addFilter(new EmptyInnerPackageFilter());
	dialog.addFilter(new LibraryFilter());
	dialog.addFilter(new SealPackagesFilter(packages));
	dialog.setValidator(new ISelectionStatusValidator() {
		public IStatus validate(Object[] selection) {
			StatusInfo res= new StatusInfo();
			for (int i= 0; i < selection.length; i++) {
				if (!(selection[i] instanceof IPackageFragment)) {
					res.setError(JarPackagerMessages.JarManifestWizardPage_error_mustContainPackages);
					return res;
				}
			}
			res.setOK();
			return res;
		}
	});
	return dialog;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:57,代碼來源:JarManifestWizardPage.java

示例14: internalChooseArchivePath

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
private String internalChooseArchivePath() {
	ZipFile zipFile= null;
	try {
		if (fWorkspaceRadio.isSelected()) {
			IResource resource= ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(fArchiveField.getText()));
			if (resource != null) {
				IPath location= resource.getLocation();
				if (location != null) {
					zipFile= new ZipFile(location.toOSString());
				}
			}
		} else {
			zipFile= new ZipFile(fArchiveField.getText());
		}
		if (zipFile == null) {
			return null;
		}

		ZipFileStructureProvider provider= new ZipFileStructureProvider(zipFile);

		ILabelProvider lp= new ZipDialogLabelProvider(provider);
		ZipDialogContentProvider cp= new ZipDialogContentProvider(provider);

		ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(fShell, lp, cp);
		dialog.setAllowMultiple(false);
		dialog.setValidator(new ZipDialogValidator());
		dialog.setTitle(PreferencesMessages.JavadocConfigurationBlock_browse_jarorzip_path_title);
		dialog.setMessage(PreferencesMessages.JavadocConfigurationBlock_location_in_jarorzip_message);
		dialog.setComparator(new ViewerComparator());

		String init= fArchivePathField.getText();
		if (init.length() == 0) {
			init= "docs/api"; //$NON-NLS-1$
		}
		dialog.setInitialSelection(cp.findElement(new Path(init)));

		dialog.setInput(this);
		if (dialog.open() == Window.OK) {
			String name= provider.getFullPath(dialog.getFirstResult());
			return new Path(name).removeTrailingSeparator().toString();
		}
	} catch (IOException e) {
		JavaPlugin.log(e);
	} finally {
		if (zipFile != null) {
			try {
				zipFile.close();
			} catch (IOException e1) {
				// ignore
			}
		}
	}
	return null;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:55,代碼來源:JavadocConfigurationBlock.java

示例15: chooseExclusionPattern

import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; //導入方法依賴的package包/類
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;
}
 
開發者ID:trylimits,項目名稱:Eclipse-Postfix-Code-Completion,代碼行數:54,代碼來源:ExclusionInclusionEntryDialog.java


注:本文中的org.eclipse.ui.dialogs.ElementTreeSelectionDialog.setValidator方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。