JDT:Choose Source Container Dialog(选择src目录的功能)
来源:互联网 发布:直通车关键词软件 编辑:程序博客网 时间:2024/05/29 09:26
源码位于org.eclipse.jdt.ui.wizards.NewContainerWizardPage类中,注意一下ElementTreeSelectionDialog对话框的使用。
// ------------- choose source container dialog/** * Opens a selection dialog that allows to select a source container. * * @return returns the selected package fragment root or <code>null</code> if the dialog has been canceled. * The caller typically sets the result to the container input field. * <p> * Clients can override this method if they want to offer a different dialog. * </p> * * @since 3.2 */protected IPackageFragmentRoot chooseContainer() {IJavaElement initElement= getPackageFragmentRoot();Class[] acceptedClasses= new Class[] { IPackageFragmentRoot.class, IJavaProject.class };TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, false) {public boolean isSelectedValid(Object element) {try {if (element instanceof IJavaProject) {IJavaProject jproject= (IJavaProject)element;IPath path= jproject.getProject().getFullPath();return (jproject.findPackageFragmentRoot(path) != null);} else if (element instanceof IPackageFragmentRoot) {return (((IPackageFragmentRoot)element).getKind() == IPackageFragmentRoot.K_SOURCE);}return true;} catch (JavaModelException e) {JavaPlugin.log(e.getStatus()); // just log, no UI in validation}return false;}};acceptedClasses= new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };ViewerFilter filter= new TypedViewerFilter(acceptedClasses) {public boolean select(Viewer viewer, Object parent, Object element) {if (element instanceof IPackageFragmentRoot) {try {return (((IPackageFragmentRoot)element).getKind() == IPackageFragmentRoot.K_SOURCE);} catch (JavaModelException e) {JavaPlugin.log(e.getStatus()); // just log, no UI in validationreturn false;}}return super.select(viewer, parent, element);}};StandardJavaElementContentProvider provider= new StandardJavaElementContentProvider();ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), labelProvider, provider);dialog.setValidator(validator);dialog.setComparator(new JavaElementComparator());dialog.setTitle(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_title);dialog.setMessage(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_description);dialog.addFilter(filter);dialog.setInput(JavaCore.create(fWorkspaceRoot));dialog.setInitialSelection(initElement);dialog.setHelpAvailable(false);if (dialog.open() == Window.OK) {Object element= dialog.getFirstResult();if (element instanceof IJavaProject) {IJavaProject jproject= (IJavaProject)element;return jproject.getPackageFragmentRoot(jproject.getProject());} else if (element instanceof IPackageFragmentRoot) {return (IPackageFragmentRoot)element;}return null;}return null;}说明:IPackageFragmentRoot接口表示一组包段,并将各段映射至底层资源,它可以是文件夹、JAR或ZIP文件。此处是返回源码包,判断如下:(((IPackageFragmentRoot)element).getKind() == IPackageFragmentRoot.K_SOURCE
- JDT:Choose Source Container Dialog(选择src目录的功能)
- myeclipse中新建source folder目录和src目录
- src目录结构的改变
- 公用的选择dialog
- 使用eclipse的JDT实现JAVA代码格式化功能
- 如何开启Eclipse JDT ASTParser的ResolveBindings功能
- java读取src目录下的配置文件
- java读取src下面的目录
- Java读取src目录下的配置文件
- java 读取src目录下的配置文件
- 获取项目src下的目录
- 获取java中src目录的方法
- source insight中cpp文件和h文件的切换(使用si的内置语言实现)[增加src/include目录切换]
- 从CVS checkout项目到 myeclipse下 , src目录变成文件夹(Folder)而不是Source Folder
- eclipse的jdt简介
- Eclipse-JDT的使用
- How to choose WPF container controls
- Container with path org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launch
- web学习—css样式表—css语法(二)
- log4j 2.0 报ExceptionInInitializerError,初始化异常
- CTRL +SHIFT+T 失效
- ufw ubuntu防火墙简单设置
- java synchronized实例详解
- JDT:Choose Source Container Dialog(选择src目录的功能)
- IO寄存器和传统内存对比
- Android下如何获取Mac地址?
- hdu(4009)最小树形图自己建立root
- Part 1
- 創建oracle資料庫
- JAVA判断字符串是否为数字
- Java程序里的内存泄漏是如何表现的
- C++解析XML