ワークベンチ・ウィンドウの表示・消去時の処理
「最初のリッチクライアント(1)(2)(3)(4)」シリーズで紹介したリッチクライアント・アプリケーションは,ホントに簡素なものだった。ウィンドウの大きさも不定だし,タイトルバーにも何も表示されていない。
リッチクライアントの場合,WorkbenchAdvisorクラス(のサブクラス)にてワークベンチ・ウィンドウへの設定を行う。「最初のリッチクライアント(2)」で作成したSmileWorkbenchAdvisorクラスを例として取り上げよう。
public class SmileWorkbenchAdvisor extends WorkbenchAdvisor {
...
public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
super.preWindowOpen(configurer);
configurer.setTitle("Smile application");
configurer.setInitialSize(new Point(400, 300));
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
}
}
「最初のリッチクライアント(2)」の時のコードに加えて,preWindowOpenメソッドをオーバーライドしている。preWindowOpenメソッドは,ワークベンチ・ウィンドウが開かれる直前にEclipseランタイムから呼び出されるコールバックメソッドである。preWindowOpenメソッドに引数として渡されるIWorkbenchWindowConfigurerオブジェクトの各メソッドを呼び出すことによって,ワークベンチ・ウィンドウに対して設定を行うことができる。
上記のコードでは,setTitleメソッドによりワークベンチ・ウィンドウのタイトルバーに文字列をセットしている。また,setInitialSizeメソッドにPointオブジェクトを渡すことで,ワークベンチ・ウィンドウの大きさを指定している。残りのsetShowCoolBarメソッドおよびsetShowStatusLineメソッドにfalseを渡すことで,名前の通りクールバー領域およびステータス表示領域をワークベンチ・ウィンドウから消去している。
これにより,アプリケーションを起動すると,以下のようなワークベンチ・ウィンドウが表示される。
「最初のリッチクライアント(3)」の場合のワークベンチ・ウィンドウと比べると,クライアント領域内の上下の余白がなくなっているのがわかるだろう。
WorkbenchAdvisorクラスでは,ワークベンチ・ウィンドウが閉じられるときの処理もちゃんと考慮されている。ワークベンチ・ウィンドウ(正確にはワークベンチ・ウィンドウのShellオブジェクト)が閉じられるときには,preWindowShellCloseメソッドがコールバックされる。
public boolean preWindowShellClose(IWorkbenchWindowConfigurer configurer) {
Shell shell = configurer.getWindow().getShell();
return MessageDialog.openConfirm(shell, "Confirm", "Are you sure?");
}
preWindowShellCloseメソッドの戻り値にfalseを渡すことによって,ワークベンチ・ウィンドウのクローズを拒否することができる。上記のコードでは,ワークベンチ・ウィンドウが閉じられようとした際に確認ダイアログを表示し,[Cancel]ボタンが押下された場合はワークベンチ・ウィンドウを閉じないようにしている。
ワークベンチ・ウィンドウが開かれた直後にはpostWindowOpenメソッドが呼び出されるので,この中でコンポーネントにフォーカスを当てるなどの処理を行うことができる。
| 固定リンク
この記事へのコメントは終了しました。
コメント