choosePackage(选择package的功能)(ElementListSelectionDialog对话框)

来源:互联网 发布:tp的访客网络占带宽吗 编辑:程序博客网 时间:2024/06/09 20:44

在Eclipse中,新建Class,Interface等向导页(org.eclipse.jdt.ui.wizards.NewTypeWizardPage)中的browse package的功能即是通过下面代码实现的,此处可以注意一下ElementListSelectionDialog类。直接看一下代码吧

protected IPackageFragment choosePackage() {IPackageFragmentRoot froot= getPackageFragmentRoot();;//可能是为src源码目录IJavaElement[] packages= null;try {if (froot != null && froot.exists()) {packages= froot.getChildren();}} catch (JavaModelException e) {JavaPlugin.log(e);}if (packages == null) {packages= new IJavaElement[0];}ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT));dialog.setIgnoreCase(false);dialog.setTitle(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_title);dialog.setMessage(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_description);dialog.setEmptyListMessage(NewWizardMessages.NewTypeWizardPage_ChoosePackageDialog_empty);dialog.setElements(packages);//设置模型dialog.setHelpAvailable(false);IPackageFragment pack= getPackageFragment();if (pack != null) {dialog.setInitialSelections(new Object[] { pack });//设置初始选中的包节点}if (dialog.open() == Window.OK) {return (IPackageFragment) dialog.getFirstResult();}return null;}