統合開発環境Eclipseプラグイン開発QA
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGEclipseの使い方や、プラグインの使い方は、
このスレでは扱いませんので、↓のほうへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1076074293
0153デフォルトの名無しさん
NGNGあと、
>eclipse.buildId=M200409161125
>java.version=1.3.1_01
ソフトをインストールするときには動作環境を確認してから
インストールすること。つーかさ、
>JRE1.1.7&1.2.2&1.4.1,JDK1.2.2&1.4.1,
自分で複数の環境をインストールしているのに、どれが使われているか
チェックしないってのは間抜けすぎ。
0154152
NGNGスレ違い失礼しました。
ただ、実装済みのJDK及びJREと、ログで示されているjava.versionが、
異なっている原因がイマイチよく分からないのですが・・・。
0155デフォルトの名無しさん
NGNG0156152
NGNG何にしろ立ち去ります。どうも。
0157デフォルトの名無しさん
NGNG○○から誘導されてきました、と一言添えればOKじゃない?
0158デフォルトの名無しさん
NGNG買った。超わかりやすい。
サンプルも3.0系に直したものが訳者のHPからDLできる。
0159デフォルトの名無しさん
NGNGThe Eclipse Seriesと呼ばれる人気シリーズがあり、その中に
Contributing to Eclipse: Principles, Patterns, and Plug-Insがあります。
The Eclipse Series
http://www.awprofessional.com/series/series.asp?st=44100
Contributing to Eclipse: Principles, Patterns, and Plug-Ins
http://www.amazon.co.jp/exec/obidos/ASIN/0321205758/
http://www.awprofessional.com/titles/0321205758
Download the archive (ZIP, 170K) (Eclipse2.1用)
http://www.awprofessional.com/content/images/0321205758/sourcecode/cte-source.zip
これを翻訳したのがEclipseプラグイン開発です。
Eclipseプラグイン開発
http://www.amazon.co.jp/exec/obidos/ASIN/4797324899/
http://store.sbpnet.jp/bm_detail.asp?sku=4797324899
訳者サポートページ
http://www.asahi-net.or.jp/~yf8k-kbys/eclipse.html
サンプルコード (Eclipse3.0用)
http://www.asahi-net.or.jp/~yf8k-kbys/eclipseh.lzh
http://www.asahi-net.or.jp/~yf8k-kbys/eclipse7.lzh
http://www.asahi-net.or.jp/~yf8k-kbys/eclipse11.lzh
http://www.asahi-net.or.jp/~yf8k-kbys/eclipsefs.lzh
http://www.asahi-net.or.jp/~yf8k-kbys/eclipse28.lzh
0160デフォルトの名無しさん
NGNGhttp://www.awprofessional.com/series/series.asp?st=44100
1: Eclipse Modeling Framework: A Developer's Guide
http://www.amazon.co.jp/exec/obidos/ASIN/0131425420/
2: Contributing to Eclipse: Principles, Patterns, and Plug-Ins
http://www.amazon.co.jp/exec/obidos/ASIN/0321205758/
2: Eclipseプラグイン開発 (和訳)
http://www.amazon.co.jp/exec/obidos/ASIN/4797324899/
3: Eclipse: Building Commercial Quality Plug-ins
http://www.amazon.co.jp/exec/obidos/ASIN/0321228472/
3: SEclipse: Building Commercial Quality Plug-ins (Web)
http://www.qualityeclipse.com/
4: Swt: The Standard Widget Toolkit
http://www.amazon.co.jp/exec/obidos/ASIN/0321256638/
5: Official Eclipse 3.0 Faq
http://www.amazon.co.jp/exec/obidos/ASIN/0321268385/
5: Official Eclipse 3.0 Faq (Web)
http://www.eclipsefaq.org/chris/faq/
6: Eclipse AspectJ: AOP with AspectJ and the Eclipse AJDT
http://www.amazon.co.jp/exec/obidos/ASIN/0321245873/
●その他
7: The Java Developer's Guide to Eclipse
http://www.amazon.co.jp/exec/obidos/ASIN/0321159640/
7: Java開発者のためのEclipseエキスパートガイド (和訳)
http://www.amazon.co.jp/exec/obidos/ASIN/4875662912/
8: Eclipse Development using Graphical Editing Framework and Eclipse Modeling Framework
http://www.redbooks.ibm.com/abstracts/sg246302.html
8: Eclipse Development using Graphical Editing Framework and Eclipse Modeling Framework (Web)
http://www.redbooks.ibm.com/redbooks/SG246302/wwhelp/wwhimpl/java/html/wwhelp.htm
8: Eclipse Development using Graphical Editing Framework and Eclipse Modeling Framework (PDF)
http://www.redbooks.ibm.com/redbooks/pdfs/sg246302.pdf
0161589
NGNGどうすればよいでしょうか?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG改行した時の自動インデントをTabではなく空白にする方法はありますか?
0164デフォルトの名無しさん
05/01/19 16:47:300165デフォルトの名無しさん
05/01/22 21:15:34が新装開店してた。元々Official Eclipse 3.0 FAQsのサンプルの
ひとつで、plugin.xmlとJavaコードをごちゃまぜにしたようなスクリプトを
元にプラグインを生成するやつ。ちょっと前の話だとOSGiの機能を生かして
ワークベンチの再起動なしでスクリプトの登録・実行ができるようにしたい
とかいってたけど、そこまで実装すすんだんだろうか。
0166161
05/01/24 15:40:15遅くなりましたが、レスありがとうございます。
マニュアル見直したら、確かにありました。
それを見て、何とか、コンパイルはできるようになりましたが、
あるプロジェクトが、存在するかどうかを調べたいんですが、
どうすれば出来ますか?
0167デフォルトの名無しさん
05/01/24 20:32:57重要なのはワークスペースの中のものはプロジェクトでもファイルでも
全て仮想的な空間に存在し、それへのアクセスはリソースAPIによってのみ
行わなければならないこと。例えばfooProjectという名前のプロジェクト
の存在を確認するのに、パスがeclipse/workspace/fooProjectであるだろう
と勝手に仮定してjava.io.File#exists()を使って調べるようなことは
してはいけない。必ずしも全てのプロジェクトがファイルシステム上で
workspaceの下にあるわけじゃないから。
0169デフォルトの名無しさん
05/01/31 14:41:110170169
05/02/03 16:19:010171デフォルトの名無しさん
05/02/03 18:42:48自己解決したのはいいけど、よかったら書いておいてもらえると
他の人のためになるのではないかと。
0172デフォルトの名無しさん
05/02/03 19:59:56オンラインマニュアル読めばわかるレベルの話だから別にいい
んじゃない?
ちなみにわからなければ>>151でリンク貼ってる本読むと実例
挙がってる。
0173172
05/02/03 20:03:52共著のEclipseプラグイン開発とかいう本。あとOfficial eclipse 3.0 FAQs
って本にものってる。こっちのほうは上のほうに誰かがWeb版にリンク貼ってるから
そっちみてもいい。でもこの二冊は買っておいたほうがいいね。
0174デフォルトの名無しさん
05/02/05 19:46:480175デフォルトの名無しさん
05/02/05 19:49:450176デフォルトの名無しさん
05/02/10 19:00:020177デフォルトの名無しさん
05/02/10 19:00:590178デフォルトの名無しさん
05/02/10 20:12:01そこからさらにTreeViewerを取得。あとは煮るなり焼くなり。
0179デフォルトの名無しさん
05/02/10 20:16:21ありがとうございます。
findView()、showView()とはどこのメソッドなんですか?
0180デフォルトの名無しさん
05/02/10 20:34:24スイマセン、自己レスです。
どこのメソッドだかは分かりました。
0181デフォルトの名無しさん
05/02/11 07:50:53するためのプラグインを追加しました。
しかし、Widgetを張り付けると白くなります。
実行時は間題なく表示されます。何が悪いのでしょうか?
実装した拡張ポイントは2つです
org.eclipse.jem.beaninfo.registrations
org.eclipse.ve.java.core.contributors
0182デフォルトの名無しさん
05/02/12 20:33:49それ、パレットに登録するしないの問題以前に、そもそも
パレットの「Beanの選択」を使って設計ビューに貼り付け
たときにはウィジットの描画は行われるの?
0183181
05/02/13 00:15:38再描画するにはどうすればよいのでしょうか?
0184デフォルトの名無しさん
05/02/13 00:22:13つーかSWTかSwingかも書いてないし。
0185181
05/02/13 00:28:35どの辺のソースを貼ればいいんでしょうか?
とりあえずplugin.xmlを貼ります。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin
id="org.xxx.ve.swtex"
name="プラグイン"
version="1.0.0"
provider-name=""
class="org.xxx.ve.internal.swt.SwtPlugin">
<runtime>
<library name="ve_swtex.jar">
<export name="*"/>
<packages prefixes="org.xxx.ve.internal.swt,org.xxx.jem.internal"/>
</library>
</runtime>
<requires>
省略
</requires>
0186181
05/02/13 00:30:37<extension point="org.eclipse.jem.proxy.contributors">
<contributor
container="SWT_CONTAINER"
class="org.xxx.ve.internal.swt.SWTConfigurationContributor"
plugin="org.xxx.swtex">
</contributor>
</extension>
<extension point="org.eclipse.jem.beaninfo.registrations">
<registration container="SWT_CONTAINER" plugin="org.xxx.swtex">
<beaninfo path="vm/swtexbeaninfo.jar">
<searchpath package="org.xxx.swtex.widgets.beaninfo">
</searchpath>
</beaninfo>
<override package="org.xxx.swtex.widgets" path="overrides/org/xxx/swtex/widgets">
</override>
</registration>
</extension>
<extension point="org.eclipse.ve.java.core.contributors">
<palette container="SWT_CONTAINER" categories="swtpalette.xmi" plugin="org.xxx.swtex">
</palette>
</extension>
</plugin>
0187デフォルトの名無しさん
05/02/13 00:33:10意味ないでしょう? そうじゃなくて問題を確認する最小限
の機能を持つウィジットのソースをよろしく。
0188181
05/02/13 00:33:33public ButtonEx(Composite parent, int style) {
super(parent, style);
// TODO Auto-generated constructor stub
button = new Button(parent, style);
}
private Button button;
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Control#addControlListener(org.eclipse.swt.events.ControlListener)
*/
public void addControlListener(ControlListener listener) {
button.addControlListener(listener);
}
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Widget#addDisposeListener(org.eclipse.swt.events.DisposeListener)
*/
public void addDisposeListener(DisposeListener listener) {
button.addDisposeListener(listener);
}
省略
0189デフォルトの名無しさん
05/02/13 00:35:330190181
05/02/13 00:36:490191デフォルトの名無しさん
05/02/13 00:45:20とりあえず、そのソース刈り込んでいって現象(再描画されないこと)を
確認するのに必要最小限なものだけにしていったら?
#普通はこの作業だけで自己解決するもんだけどね。
ちなみにうちだと、適当にVEが生成した
public class TestComposite extends Composite {
private Button button = null;
public TestComposite(Composite parent, int style) {
super(parent, style);
initialize();
}
private void initialize() {
button = new Button(this, SWT.NONE);
button.setBounds(new org.eclipse.swt.graphics.Rectangle(51,40,71,22));
button.setText("Test");
setSize(new org.eclipse.swt.graphics.Point(300,200));
}
}
みたいなやつを貼り付けてもちゃんと再描画する。
0192181
05/02/13 00:53:380193デフォルトの名無しさん
05/02/13 01:02:44VEは触ったことないが,styleをsuperとButtonの両方に丸投げしてるのは
SWT的に明らかにおかしい.
0194デフォルトの名無しさん
05/02/14 20:26:42と聞いた者です。
>>178さんが教えてくれた方法でTreeViewerは取得できたのですが、そこから先の調査をしてて止まってしまいました・・
そもそもナビゲータではできないんでしょうか?
0195デフォルトの名無しさん
05/02/15 11:53:40TreeViewerからsetSelectionするなり
やりようはいくつもあるのになんで
できないなんて話になるんだろ。
APIリファレンス読んでる?
0196デフォルトの名無しさん
05/02/16 01:13:230197デフォルトの名無しさん
05/02/20 15:01:13かなり前は、jarを解凍して.propertiesからフォント定義を探し出して
日本語フォントに書き直してから再jarしてた。
今でもこの方法が通用するかはワカランが。
0198デフォルトの名無しさん
05/02/23 01:12:24http://www.javaspider.org/
0199デフォルトの名無しさん
05/02/23 01:42:290200デフォルトの名無しさん
05/02/23 02:09:38ありがとう。
Erich Gamma著のEclipseプラグイン開発には、
Spiderはhttp://www.javaspider.org/ からダウンロードできる・・・
って書いてあったんだが。
0201デフォルトの名無しさん
05/02/23 22:36:58質問です。
ボタンを押すなどのアクションによってパースペクティブのレイアウト
を変えたり、ビューを閉じたり、開いたりすることは可能でしょうか?
ビューを開く際はタブを増やすのではなく、開いてるタブを閉じてから
開くようにしたいのですが。
0202デフォルトの名無しさん
05/02/27 19:01:29Eclipse RCP によるリッチクライアント開発入門
http://www.mamezou.com/tec/equip016.htm
0203デフォルトの名無しさん
05/02/28 21:01:53あれって、Eclipse 3.0.1だと、「チーム」から「Target Site」ってでてこないんだけど 3.0.1はサポート使えんの?
0204デフォルトの名無しさん
05/02/28 21:07:300205デフォルトの名無しさん
05/03/02 18:15:34プラグインのパスを取得して、その中にあるjarファイルをビルド・パスに追加したいんですけど、どうすればよいですか?
0206デフォルトの名無しさん
05/03/02 20:18:32話は違ってくるね。
0207デフォルトの名無しさん
05/03/02 20:19:30違ってくる。
0208205
05/03/02 21:02:09自分のパスを取得して、同梱したjarをビルド・パスに追加したいんです。
0209デフォルトの名無しさん
05/03/02 21:21:19それでそのjarを登録する。あとはユーザにそのコンテナを
自分のプロジェクトに追加させるか、「新規作成」のウィザード
であらかじめコンテナを登録済みのプロジェクトを生成するか
させればよい。
とおもったが、質問が二通りに解釈できる気がするので一応確認すると、
ビルドパスを追加する対象のプロジェクトは、プラグインをインストールした
ユーザのワークスペース内の任意のプロジェクトだよね?
0210205
05/03/02 22:02:190211デフォルトの名無しさん
05/03/02 22:12:48クラスパス変数を定義する手もあるけど、後々の拡張のことを考えたら
コンテナ作っておいたほうがいいね。
ただ新規作成するボタンを押させるのはEclipseの標準的なインター
フェースとはなじまないから、ウィザードを拡張したほうがいいかと。
どっちにしろJDTとPlatformのマニュアルを参照のこと。
0213205
05/03/03 06:33:050214デフォルトの名無しさん
05/03/03 07:51:20ttp://help.eclipse.org/help30/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IPluginDescriptor.html#getInstallURL()
3.xならbundleから。↑に書いてある。
0215205
05/03/03 07:52:450216デフォルトの名無しさん
05/03/04 21:32:23ツリービューのノードのアイコンのラベル装飾をやっています。
ノードが IProject など IResouce 管理下のものの場合のラベル装飾は、ヘルプやサイト等の情報で比較的に簡単にできました。
(拡張 org.eclipse.ui.decorators にて必要事項を記述する)
しかし、自作のクラスのオブジェクトをノードにした場合、同様の手立てでは装飾されません。
非宣言型ライト・ウェイト・デコレータの方法で実装を試みています
上記の拡張にて、adaptable を falseに、objectClass を自作のクラスの完全修飾名にすればいけそうに思えたのですが、ダメでした。
どなたか同じような経験をお持ちの方がいましたら、よろしくお願いしますm(_ _)m
0217デフォルトの名無しさん
05/03/04 21:42:17メーリングリストで、もう少し詳細教えてよ
0218デフォルトの名無しさん
05/03/04 22:48:44メーリングリストとは、eclipseの?
利用してないからよく知らないのですが・・
0219デフォルトの名無しさん
05/03/09 22:40:24入念な調査のうえ解決しました。
装飾対象のツリービューのラベルプロバイダが、DecoratingLabelProviderなど、
IViewerLabelProviderを実装したクラスでないと、ライトウェイトデコレータの機構は利用できないようです。
0220デフォルトの名無しさん
05/03/10 22:48:01どこで破棄すればいいの?
プラグインの作成時にcreatePartControlが呼ばれるのは理解できるんだが、
破棄のとき呼ばれるメソッドがないから、さっぱりわからん・・・
0221デフォルトの名無しさん
05/03/10 23:12:14その最後でdispose()すればいい。ViewPartの生存中、ずっと保持する必要が
あるんだったら、WorkbenchPart#createPartControlやEditorPart#init()で生成して、
WorkbenchPart#dispose()で破棄でもいい。ただcreatePartControl()
が一度も呼ばれていない状態でもdispose()が呼ばれることがあるのには注意。
最後はsleakっていうSWTリソースのリークをモニタするツールで抜けがないかチェック。
0222デフォルトの名無しさん
05/03/20 14:43:56他にImageRegistoryとかDisposeListenerとか、いろいろやりかたがあるみたい。
0223デフォルトの名無しさん
05/03/20 14:52:23呼び出したらよいのでしょう・・・
たとえば一つのビューで画像を編集したら、もう一方のビューで
編集が反映されるといったことをやりたい。
0224デフォルトの名無しさん
05/03/20 22:01:13お好きなように。ContentProviderみたいな仕組み使ってもいいし、
addHogehoge/fireHogehogeみたいな仕組みを自分で作ってもいいし。
0225デフォルトの名無しさん
2005/03/24(木) 02:38:34どのオブジェクトで定義してて、どのオブジェクトで管理してるんか
理解できひん。
自分はドットエディタみたいなのを作りたいです。
View1で全体の画面を表示して、View2でその一部を拡大、
編集します。編集するとView1に反映します。
でも、View2からView1の画像を取得したり、再描画のために
Viewそのものを取得したりする方法がわかりません。
もしかしたら、複数のビューを統括する親オブジェクト(ワークスペース?)
が、あるのでしょうか。
なにか調べるきっかけのようなものでもあれば、教えて
0226デフォルトの名無しさん
2005/03/24(木) 09:28:55+ getActiveWorkbenchWindow() 現在のワークベンチウインドウ
+ getActivePage() -> ウインドウのページ (ページ != パースペクティブ? この概念がいまいち不明・・・)
+ getActiveEditor()
+ getActivePart() (ビューなど)
+ etc...
ヘルプ見ればもっと詳しく書いてあったはず
0227デフォルトの名無しさん
2005/03/24(木) 09:34:27とりあえずView2にsetParentView()みたいなメソッドを定義して、
ワークベンチからshowViewやfindViewでview2を開いた後view1へ
の参照を渡しておけばいいんじゃないの? 本当はオブザーバーパターン
使ったほうが後々楽だと思うけどね。
あとPlatformUIのAPIリファレンスからいろいろメソッド
たどって概要をつかむことをすすめるよ。
0228デフォルトの名無しさん
2005/03/29(火) 09:07:08統括してんのね。ちょっとわかりかけたかも。
みんなありがとなー
0229デフォルトの名無しさん
2005/04/06(水) 11:16:20http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial26.pdf
3.1系対応という事で、3.0系より少し拡張されてるようだけど
基本的な概念は同じなので参考にしてみては
0230デフォルトの名無しさん
2005/04/06(水) 14:40:18をつくるサブプロジェクトがあるけど、和訳されていないせいか
ほとんど話題にならないな。
0231デフォルトの名無しさん
2005/04/09(土) 18:57:430232デフォルトの名無しさん
2005/04/09(土) 18:59:030233デフォルトの名無しさん
2005/04/09(土) 22:07:080234デフォルトの名無しさん
2005/04/10(日) 02:12:58ttp://www.eclipsewiki.net/eclipse/?%A5%B3%A5%E1%A5%F3%A5%C8%2FLomboz
の途中にそのネタはあるな。
俺は「ロンボス」に一票。「ロンボズ」かも知れんが、語源があるかどうかもわからん。
0235デフォルトの名無しさん
2005/04/17(日) 07:06:180236ero 61-26-185-190.rev.home.ne.jp/
2005/04/17(日) 07:16:35っしと ハ う w
け は w w っ
ぇ る ァ う wお ぇ w
え の ハ ァ w ぇ
0237デフォルトの名無しさん
2005/04/18(月) 09:16:54誤爆か?
CG板で聞いたほうがいいぞ。
0238デフォルトの名無しさん
2005/04/19(火) 22:56:54どうやんの?
土台があって、あとはプラグインをぽんぽんってかんじぃ。
0239デフォルトの名無しさん
2005/04/19(火) 23:54:00話になるが、スレ的にはIPlatformRunnableを実装しろって話になるな。
後々のことまで考えると後者をすすめる。
でも個人的にはOscarとか使ってみたい気もする。
0240デフォルトの名無しさん
2005/04/20(水) 16:21:56ブレイクし、ステップインしていくと
「ソースファイルが見つかりません。
JARファイルjunit.jarにソース添付がありません。
・・・・」
と表示されるのですが、回避方法を教えていただけませんか?」
すれ違いでしたら、申し訳ございません
0241デフォルトの名無しさん
2005/04/20(水) 16:50:56jarに対応するバージョンのjunitのソースをattach.
0242デフォルトの名無しさん
2005/04/25(月) 18:18:28こいつらで頭を悩ませてます。
get/savePluginPreferences()
get/saveDialogSettings()
get/savePreferenceStore()
PreferencePageではIPreferenceStoreを使うようになっているのに、savePreferenceStore()は3.0からdeprecatedなのですが
これはPluginPreferencesに格納しなおして保存しろという事なんでしょうか?
また、DialogSettingsもAPIで保存可能ですが、PluginPreferencesとの使い分けがよくわかりません。
「これ読め」 でもいいので、何かヒントありませんか?
0243デフォルトの名無しさん
2005/04/25(月) 21:23:53手取り足取り書いてあると思う。
0244242
2005/04/26(火) 09:38:53どうもです。 javadoc読んでみました。
この辺は3.0から現在進行形でリファクタリング中っぽいですね。
PreferenceStoreはJFaceのためにあるもので、coreRuntime的には
PluginPreferencesを使え、って感じでしょうか。
DialogSettingsとの使い分けはちょっとまだ理解できません。
news://news.eclipse.org/eclipse.platform と news://news.eclipse.org/eclipse.platform.rcp も読んでるんですが
未だ決定的な回答が出てませんね。 (読めてないだけですか orz)
ヘタに両方使うと管理が面倒なんでやめようかな。
PreferencePageとの使用の違いを、現実的にどう解決するかは書いてないので
とりあえずPlatformをデバッガで追ってみます。
0245デフォルトの名無しさん
2005/04/26(火) 10:55:56Pluginが持っている「設定」ページの情報はgetPluginPreferencesStoreで
取得できる場所に保管してあるってだけだよね.そうすれば
自分でいろいろ管理しなくてもFieldEditorとか使う限りは
何もしなくてもいいし,自分でウィジットつかってUI作ったときは
上述のメソッドで取得したインスタンスにデータを放り込めってことでしょ.
で,汎用的なダイアログとかウィザードとかの設定は
DialogSetting使えと.
あとOfficialEclipseFAQs 3.0とか定番FAQは読んだ?
Webでもお試し版が読めるけど,書籍のCDROMにプラグイン版
が入ってるから買っちゃったほうがいいね.
0246242
2005/04/26(火) 12:34:07自分のとこだと、PreferenceStoreに入れたはずの設定が保管されないので
プラグインのstop()でsavePreferenceStore()してみたら、内部的にsavePluginPreferencesを呼んでたので
PluginPreferencesに入れなおさないとダメなんか〜 と思ってました。
で、ふと思い出して確認すると、実行時にワークスペースをクリアしてました・・・ orz
ダイアログやウィザードの設定、って今のところ保存したいような物は作ってないので
現段階では俺にDialogSettingsは必要無い、ってことですね。 これですっきりしました。
OfficialEclipseFAQのWeb版は読んだんですが、やっぱ書籍が欲しいですね。 買ってみます。
ありがとうございました。
0247デフォルトの名無しさん
2005/05/15(日) 16:37:15composite.getParent()
composite.getParent().getParent()
composite.getParent().getParent().getParent()
上の三つに対してあらゆるListenerをaddしてみたのですが
拾えませんでした
メインのエディタ部分の上部タブを切り替えるって言うことは
他のプラグインの動作にもかかわるので、出来ないようになっているのでしょうか?
0248デフォルトの名無しさん
2005/05/15(日) 20:50:06SWT層で解決するのは間違っているけど、とりあえず質問に答えるならば
あのタブの部分はSWT層ではCTabFolderで実装されているので
editor内のcompositeの直系の祖先だけ調べても駄目。それぞれの祖先の
兄弟にCTabFolderがいるか調べないと。
public void printControlNameTree(Control control) {
if (control == null)
return;
System.err.println(control);
if (control instanceof Composite) {
Composite composite = (Composite) control;
Control[] controls = composite.getChildren();
for (int i = 0; i < controls.length; i++) {
Control control2 = controls[i];
System.err.println("\t" + control2);
if (control2 instanceof CTabFolder) {
CTabFolder folder = (CTabFolder) control2;
CTabItem[] items = folder.getItems();
for (int j = 0; j < items.length; j++) {
CTabItem item = items[j];
System.err.println("\t\t" + item);
}
}
}
}
printControlNameTree(control.getParent());
}
こんな感じのメソッドにcompositeを渡して調べてごらん。
あとはCTabFolderのAPIリファレンス見れ。
0249デフォルトの名無しさん
2005/05/16(月) 12:09:11ならIWorkbenchPage#addPartListenerで各Partに関する
イベントが取得できる。ただし,WorkbenchPageはワークベンチ
ウィンドウを新しく生成したりするとこちらも動的に生成される.
いちどリスナを登録した後でWindow->New Window...したら
新しいウィンドウのほうでイベントがとれないとかそういう
ことがないよう気を付けること。
0250デフォルトの名無しさん
2005/05/17(火) 20:18:46[意]ひろく。
[例]あまねく天下に名が通っている。
0251デフォルトの名無しさん
2005/05/18(水) 00:26:060252デフォルトの名無しさん
2005/05/20(金) 23:36:44おれ・・作っちゃうよほんとにつーかできているんだが
出し方を考えている
儲かるならそのほうがいいし
■ このスレッドは過去ログ倉庫に格納されています