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

在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;
}


你可能感兴趣的:(choosePackage(选择package的功能)(ElementListSelectionDialog对话框))