多頁表單編輯器

「UI 表單」提供了您可建置之多頁編輯器的基本支援。

您應該延伸 FormEditor,來開始建置「UI 表單」多頁編輯器:

public class SimpleFormEditor extends FormEditor {

	public SimpleFormEditor() {
	}

	protected FormToolkit createToolkit(Display display) {
		// 建立工具箱,在編輯器之間共用顏色。
		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
				display));
	}

	protected void addPages() {
		try {
		addPage(new FreeFormPage(this));
		addPage(new SecondPage(this));
		addPage(new ThirdPage(this));
		addPage(new MasterDetailsPage(this));
		addPage(new PageWithSubPages(this));
		}
		catch (PartInitException e) {
			//
		}
	}

	public void doSave(IProgressMonitor monitor) {
	}

	public void doSaveAs() {
	}

	public boolean isSaveAsAllowed() {
		return false;
	}

有一個非常簡單的開始方式是,建立頁面,再依上述新增這些頁面。 每一個頁面都需要實作 FormPage,並置換 createFormContent(IManagedForm managedForm) 方法。很明顯地,頁面中已建立了一個受管理的表單, 且您應該在括住的表單中建立內容,也應該登錄需要成為受管理生命週期的一部分的任何表單組件。

除了表單頁面之外,您還可以新增一或多個文字編輯器,作為 GUI 頁面的原始來源選擇方案。針對這個部分,您應該呼叫 Super 類別中的 'addPage(IEditorPart, IEditorInput input)' 方法。

「Eclipse 表單」多頁編輯器的建議實務

您可以透過許多方式來撰寫表單型的多頁編輯器。其多半與您要編輯的內容類型以及使用者的熟練程度相關。您可以透過兩種方式來達成:

  1. 如果一般使用者不常使用編輯器、原始程式碼很難手動編輯或是很複雜、 使用者的技術不是很強等等,您應該製作不需要切換至原始程式碼,即可完整編輯內容各個方面的「完整」頁面。透過這種做法, 程式碼頁面只是偶爾用來驗證,而不是用於一般工作。從這個角度來看,您可以使用基本的文字編輯器來達成。PDE 延伸點綱目編輯器則屬於這一類。

  2. 如果使用者的技術比較好,能夠手動編輯檔案, 但有時希望能夠獲得一些協助,請考慮提供混合的做法 - 製作含有所有附加程式(像是漸進式外框、環境定義輔助、語法強調顯示等等)的良好程式碼編輯器。 接著,在表單頁面中增加難以從程式碼達成之複雜的加值功能。 我們已從經驗瞭解到如果加值的功能並不重要或是有爭議,便很難說服已經習慣的使用者改變編輯程式碼的習慣。 不過,只可從 GUI 頁面取得且品質非常好的功能,則會立即被採用。

建立具有混合 GUI 和程式碼頁面的高品質多頁編輯器, 有挑戰之處。相信要讓使用者經常切換頁面, 需要基礎內容有良好的模型。該模型應該與基礎文件直接關聯, 使得當使用者直接輸入文字以及透過 GUI 頁面有結構地變更文字時,兩者可以同步。 (不要忘記當編輯器仍然開啟時,由其他工作台動作所導致的間接變更)。