1 名前:デフォルトの名無しさん [04/04/09 22:24] 統合開発環境Eclipse用プラグイン開発に関する質問と回答です。 Eclipseの使い方や、プラグインの使い方は、 このスレでは扱いませんので、↓のほうへどうぞ。 pc5.2ch.net/test/read.cgi/tech/1076074293
43 名前:デフォルトの名無しさん mailto:sage [04/05/02 00:49] >>42 スタンドアロンアプリならわからんが、WorkbenchWindowにはムリだろうなぁ
44 名前:デフォルトの名無しさん mailto:sage [04/05/02 01:51] >>42 スタンドアロンアプリで試しましたが確かにComboは ToolBarには乗らずCoolBarに乗りました。 追試したいなら、CoolBarサンプルソースの shell.setSize(200, 80);の直前にComboのコードを追加してください。 SWTのサンプルは「SWTサンプル集」と「SWT Tips and Samples」に大量にあります。 CoolBarサンプルソース amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt?page=CoolBar 追加コード Combo combo3 = new Combo(coolbar,SWT.READ_ONLY); combo3.add("Item1"); combo3.add("Item2"); combo3.select(0); CoolItem item3 = new CoolItem(coolbar,SWT.PUSH); item3.setControl(combo3); Point pt3 = combo3.computeSize(SWT.DEFAULT,SWT.DEFAULT); pt3 = item3.computeSize(pt3.x,pt3.y); item3.setSize(pt3); SWTサンプル集 (移転しています) amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt SWT Tips and Samples cjasmin.fc2web.com/ >>43 Eclipseツールバーは裸のToolBaでなくCoolBarにToolBarをぶらさげているので ComboをToolBarをはさまずCoolBarに直接ぶらさげれば良いのですが、 そんなextension pointがあるかどうかが問題ですね。 extension pointに詳しい方どうぞー。
45 名前:デフォルトの名無しさん mailto:sage [04/05/02 02:23] >>44 extension pointって リファレンス見れ。そんなもんあるわけないだろ
46 名前:44 mailto:sage [04/05/02 18:29] >>42 そんな特殊なextension pointはないという事で CoolBarインスタンスに直接アクセスするしかなさそうです。 WorkbenchインスタンスからたどればCoolBarのインスタンスを取得できます。 Workbenchのメソッド public static final Workbench getInstance() //クラスメソッド public IWorkbenchWindow[] getWorkbenchWindows() // WorkbenchWindowはWorkbench内に複数 public IWorkbenchWindow getActiveWorkbenchWindow() // ActiveWorkbenchWindowはWorkbench内に一つ WorkbenchWindowのメソッド public CoolBarManager getCoolBarManager() // 親クラスのApplicationWindowで定義 public boolean isApplicationMenu(String menuID) // 指定したメニューが含まれているか判定 CoolBarManagerのメソッド public CoolBar getControl() 複数WorkbenchWindowから目的のWorkbenchWindowを見つけるには isApplicationMenu()で特定のメニューが含まれているか調べるのが簡単かと思います。 ActiveWorkbenchWindowのCoolBarなら1行で取得できます。 CoolBar coolBar = Workbench.getInstance().getActiveWorkbenchWindow().getCoolBarManager().getControl(); このレスはソースを調べただけで書いており、動作検証はしていません。 バイナリと同じページから落とせるSource BuildにExplorer検索をかけて調べました。