本文和Eclipse源码阅读:Choose Super Class类似,
废话不说,直接看代码吧:
protected void chooseSuperInterfaces() {
IJavaProject project= getJavaProject();
if (project == null) {
return;
}
SuperInterfaceSelectionDialog dialog= new SuperInterfaceSelectionDialog(getShell(), getWizard().getContainer(), this, project);
dialog.setTitle(getInterfaceDialogTitle());
dialog.setMessage(NewWizardMessages.NewTypeWizardPage_InterfacesDialog_message);
dialog.open();
}
private String getInterfaceDialogTitle() {
if (fTypeKind == INTERFACE_TYPE)
return NewWizardMessages.NewTypeWizardPage_InterfacesDialog_interface_title;
return NewWizardMessages.NewTypeWizardPage_InterfacesDialog_class_title;
}
有必要看看SuperInterfaceSelectionDialog的实现,只看其构造方法.
public class SuperInterfaceSelectionDialog extends OpenTypeSelectionDialog {
/**
* Creates new instance of SuperInterfaceSelectionDialog
*
* @param parent
* shell to parent the dialog on
* @param context
* context used to execute long-running operations associated
* with this dialog
* @param page
* page that opened this dialog
* @param p
* the java project which will be considered when searching for
* interfaces
*/
//IJavaSearchConstants.INTERFACE表示只显示接口
public SuperInterfaceSelectionDialog(Shell parent, IRunnableContext context, NewTypeWizardPage page, IJavaProject p) {
super(parent, true, context, createSearchScope(p), IJavaSearchConstants.INTERFACE);
fTypeWizardPage= page;
// to restore the content of the dialog field if the dialog is canceled
fOldContent= fTypeWizardPage.getSuperInterfaces();
setStatusLineAboveButtons(true);
}
//其它代码略
}
关于OpenTypeSelectionDialog的介绍与使用,可以参考IBM Developerment中的如下一篇文章(理解 Eclipse 打开类型 (Open Type) 插件功能,实现自定义打开类型插件)