choosePackage(packageを選択する機能)(E l e m e n t ListSelectionDialogダイアログボックス)

1324 ワード

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