「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)
' 方法。
您可以透過許多方式來撰寫表單型的多頁編輯器。其多半與您要編輯的內容類型以及使用者的熟練程度相關。您可以透過兩種方式來達成:
如果一般使用者不常使用編輯器、原始程式碼很難手動編輯或是很複雜、 使用者的技術不是很強等等,您應該製作不需要切換至原始程式碼,即可完整編輯內容各個方面的「完整」頁面。透過這種做法, 程式碼頁面只是偶爾用來驗證,而不是用於一般工作。從這個角度來看,您可以使用基本的文字編輯器來達成。PDE 延伸點綱目編輯器則屬於這一類。
如果使用者的技術比較好,能夠手動編輯檔案, 但有時希望能夠獲得一些協助,請考慮提供混合的做法 - 製作含有所有附加程式(像是漸進式外框、環境定義輔助、語法強調顯示等等)的良好程式碼編輯器。 接著,在表單頁面中增加難以從程式碼達成之複雜的加值功能。 我們已從經驗瞭解到如果加值的功能並不重要或是有爭議,便很難說服已經習慣的使用者改變編輯程式碼的習慣。 不過,只可從 GUI 頁面取得且品質非常好的功能,則會立即被採用。
建立具有混合 GUI 和程式碼頁面的高品質多頁編輯器, 有挑戰之處。相信要讓使用者經常切換頁面, 需要基礎內容有良好的模型。該模型應該與基礎文件直接關聯, 使得當使用者直接輸入文字以及透過 GUI 頁面有結構地變更文字時,兩者可以同步。 (不要忘記當編輯器仍然開啟時,由其他工作台動作所導致的間接變更)。