アプリケーション・ダイアログ

プラグインで標準のダイアログでは単純すぎる場合、 Dialog クラスを使用して、 独自のダイアログを構成することができます。 以前に、readme ツールが、アクション・セットの「Readme ブラウザーを開く」アクションを どのように提供するか説明しました。  このアクション・セットは、ワークベンチ・ツールバーと、 「ウィンドウ」->「Readme ファイル・エディター」メニューに表示されます。  

したがって、いつでも readme ツールの WindowActionDelegate で このアクションの実装を見ることができます。

   public void run(IAction action) {
      SectionsDialog dialog = new SectionsDialog(window.getShell(),
         ReadmeModelFactory.getInstance().getSections(selection));
      dialog.open();
   }

アクション・セットに対するウィンドウ・アクションの代行者は、 リソース・ナビゲーター・ビューの現在の選択 (.readme ファイル) を使用して、 readme ファイル内のセクションのリストを取得します。 このリストとワークベンチ・ウィンドウのシェルが、SectionsDialog に渡されます。 

ユーザーがこのアクションを選択すると、SectionsDialog が開きます。

SectionsDialog は、 org.eclipse.jface.dialogs パッケージ内の Dialog クラスをサブクラス化することにより、 readme ツール・プラグインに実装されています。

Dialog クラスは、 ダイアログのシェル・ウィンドウを作成するための基本サポートを提供しており、 共通のダイアログ・ボタンを作成し、ダイアログを起動します。 サブクラスは、ダイアログ自体の内容を処理します。

SectionsDialog は、okButtonPressed メソッドをインプリメントしていません。 「何もしない」という実装を Dialog から継承しています。 これは一般的ではありません。ダイアログでは、通常、押されたダイアログ・ボタンの 1 つに応答して、 何らかの処理が実行されます。

ダイアログは、必要に応じて、単純にすることも、複雑にすることもできます。 ダイアログを実装する場合は、そのダイアログのコードのほとんどは、 その内容領域を表す SWT コントロールの作成と、ダイアログが表示されている間に必要なイベントの処理に関連しています。 ユーザーがボタンを押すと、ダイアログを構成している各種コントロール (またはビューアー) の状態を照会して、ダイアログは、 何をすべきかを決定します。