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)
メソッドをオーバーライドする必要
があります。明らかに、ページにはすでに作成された
管理対象の書式があり、囲まれた書式で
コンテンツを作成し、また、管理対象のライフ・サイクル
の一部として必要な書式パーツを登録する必要
があります。
書式のページだけでなく、1 つ以上のテキスト
・エディターを、代替の未加工のソースとして GUI ページに
追加することができます。このためには
、「addPage(IEditorPart,
IEditorInput input)
」メソッドをスーパー
クラスで呼び出す必要があります。
書式ベースのマルチページ・ エディターを記述するには、多くの方法があります。 基本的に、編集しているコンテンツのタイプ、および ユーザーの習熟度によって異なります。 2 つの方法を利用して、対処することができます。
典型的なユーザーがエディターを あまり使用しない、未加工のソースを手動で編集するのが 大変または複雑である、ユーザーが技術的に熟練して いないなどの場合、未加工のソースを参照しなくてもよい ように、コンテンツのあらゆる面を完全に編集できる、 完全なページを作成する必要がある。この 方法では、ソース・ページは定期的には参照せず 、時折検証するだけです。 この点では、基本的なテキスト・エディター だけで済ませることができます。PDE 拡張 ポイント・スキーマ・エディターは、このグループに当て はまります。
ユーザーが技術的に熟練 しており、手動でファイルを編集するのに問題がない が、支援を必要とすることがある場合は インクリメンタル・アウトライン 、コンテキスト支援、構文の強調表示などのアドオンを すべて組み合わせた、優れたソース・エディターを作成することを考慮する。次に、 ソースからでは達成するのが難しい複雑な書式のページには、付加価値機能を 追加します。付加価値がわずかな ものであったり、議論の余地があるものであった場合、 熟練したユーザーをソース編集から切り替えさせることは 難しいことが経験からはっきりしています。ただし、GUI ページでのみ使用可能で、非常に高品質な機能は、すぐに使用 されます。
GUI とソース・ページが混合した、 高品質なマルチページ・エディターの作成には、困難があります。 ユーザーがページを頻繁に切り替えることを受け入れる 場合、基本コンテンツの優れたモデルが必要です。 モデルは、基本文書と直接結合され、ユーザーが テキストに直接入力した場合、および GUI ページを使用 して構造的に変更した場合の両方で、同期する必要があり ます (エディターが依然として作動中の場合は、他のワークベンチ・ アクションによって発生する間接的な変更も忘れないで ください)。