カテゴリ:プラグイン開発日誌
1.自動コミットモードの切り替え機能 2.SQL実行時間の表示(SQL実行・ビューで発行するSQLのみ) です。 DBViewerPluginのSQL実行・ビューで発行されるSQL文は デフォルトで、手動コミットモードで発行されますが、 自動コミットにしたい場合もあるということから モードを切り替えできるようにしています。 開発TIPSを紹介しておきます。 1.ステータスバーへのアクセス方法(Viewの場合) protected IStatusLineManager getIStatusLineManager() { IViewSite vieweSite = super.getViewSite(); IActionBars actionBars = vieweSite.getActionBars(); return actionBars.getStatusLineManager(); } 2.IStatusLineManagerへのオブジェクト登録方法 上記メソッドからIStatusLineManagerを取得し、addメソッドを使えば IActionやIContributionItemを登録することができる。 今回のような場合は、ControlContributionを継承したクラスを実装する ことになるが、ここで注意することがある。 Label commitMode; Label responseTime; manager.add(new ControlContribution("ID1") { protected Control createControl(Composite parent) { Label sep = new Label(parent, SWT.SEPARATOR); // セパレータを入れる commitMode = new Label(parent, SWT.NONE); commitMode.setText("コミットモード"); return parent; } }); manager.add(new ControlContribution("ID2") { protected Control createControl(Composite parent) { Label sep = new Label(parent, SWT.SEPARATOR); // セパレータを入れる responseTime = new Label(parent, SWT.NONE); responseTime.setText("処理時間"); return parent; } }); という実装により、ステータスバーにItemを配置することができるが この実装は「完全ではない」。 Eclipseのワークベンチを起動し、ウィンドウサイズを変更(最大化、縮小化)する とステータスバーの高さが2倍になるという現象が発生する。(私の環境だけ?) 「セパレータ用のIDを個別にaddする」、とか 「1つのIDで、コミットモードと処理時間を配置する」とか、 試してみたが、どれもうまくいかなかった。 ネットで調べてみたところ、なかなか良い情報は見つからず 結局は、Eclipseのソースを調査し、どういう実装をしているか調べ、 org.eclipse.ui.internal.util.StatusLineContributionItemを見つけた。 internalパッケージのため、ソースを流用して実装することにした。 public void fill(Composite parent) メソッド内で コンポーネントの幅、高さを設定することがポイントのようである。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2005.12.28 08:29:45
コメント(0) | コメントを書く
[プラグイン開発日誌] カテゴリの最新記事
|
|