Eclipse源碼閱讀:Choose Super Class

下午睡了一覺,起來後閱讀了New Java Class的部分的代碼,對應的嚮導爲org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard,從New Java Class的功能實現中,我們可以學習到諸如JDT,AST的很多巧妙實現,在後面的博文中,會將自己的閱讀心得與大家進行分享,本文只關注於Choose Super Class,如下圖用紅色標出的功能實現.

功能代碼位於org.eclipse.jdt.ui.wizards.NewTypeWizardPage類中,如下:

	protected IType chooseSuperClass() {
		IJavaProject project= getJavaProject();
		if (project == null) {
			return null;
		}

		IJavaElement[] elements= new IJavaElement[] { project };
		//搜索範圍
		IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements);
        //一如既往的使用了FilteredTypesSelectionDialog
		FilteredTypesSelectionDialog dialog= new FilteredTypesSelectionDialog(getShell(), false,
			getWizard().getContainer(), scope, IJavaSearchConstants.CLASS);
		dialog.setTitle(NewWizardMessages.NewTypeWizardPage_SuperClassDialog_title);
		dialog.setMessage(NewWizardMessages.NewTypeWizardPage_SuperClassDialog_message);
		dialog.setInitialPattern(getSuperClass());

		if (dialog.open() == Window.OK) {
			return (IType) dialog.getFirstResult();
		}
		return null;
	}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章