トップページtech
982コメント371KB

統合開発環境Eclipseプラグイン開発QA

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
統合開発環境Eclipse用プラグイン開発に関する質問と回答です。

Eclipseの使い方や、プラグインの使い方は、
このスレでは扱いませんので、↓のほうへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1076074293



0153デフォルトの名無しさんNGNG
>>152 スレ違い。どういうスレか確認してから書き込むこと。
あと、
>eclipse.buildId=M200409161125
>java.version=1.3.1_01
ソフトをインストールするときには動作環境を確認してから
インストールすること。つーかさ、
>JRE1.1.7&1.2.2&1.4.1,JDK1.2.2&1.4.1,
自分で複数の環境をインストールしているのに、どれが使われているか
チェックしないってのは間抜けすぎ。
0154152NGNG
>>153
スレ違い失礼しました。
ただ、実装済みのJDK及びJREと、ログで示されているjava.versionが、
異なっている原因がイマイチよく分からないのですが・・・。
0155デフォルトの名無しさんNGNG
スレ違いって言われてるんだから場所かえるくらいの知性は働かせようぜ。
0156152NGNG
スレを変えて質問すると、マルチだなんだと言われますから。
何にしろ立ち去ります。どうも。
0157デフォルトの名無しさんNGNG
>>156
○○から誘導されてきました、と一言添えればOKじゃない?
0158デフォルトの名無しさんNGNG
>>151
買った。超わかりやすい。
サンプルも3.0系に直したものが訳者のHPからDLできる。
0159デフォルトの名無しさんNGNG
>>151
The 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デフォルトの名無しさんNGNG
●The Eclipse Series
http://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
0161589NGNG
今、作っているプラグインから、コンパイルを行ないたいのですが、
どうすればよいでしょうか?
0162デフォルトの名無しさんNGNG
>>161 JDTのマニュアルに書いてある。
0163デフォルトの名無しさんNGNG
cdtを使っているんですが,
改行した時の自動インデントをTabではなく空白にする方法はありますか?
0164デフォルトの名無しさん05/01/19 16:47:30
age
0165デフォルトの名無しさん05/01/22 21:15:34
http://eclipsefaq.org/escript
が新装開店してた。元々Official Eclipse 3.0 FAQsのサンプルの
ひとつで、plugin.xmlとJavaコードをごちゃまぜにしたようなスクリプトを
元にプラグインを生成するやつ。ちょっと前の話だとOSGiの機能を生かして
ワークベンチの再起動なしでスクリプトの登録・実行ができるようにしたい
とかいってたけど、そこまで実装すすんだんだろうか。
016616105/01/24 15:40:15
>>162さん
遅くなりましたが、レスありがとうございます。
マニュアル見直したら、確かにありました。

それを見て、何とか、コンパイルはできるようになりましたが、
あるプロジェクトが、存在するかどうかを調べたいんですが、
どうすれば出来ますか?
0167デフォルトの名無しさん05/01/24 20:32:57
>>166 オンラインマニュアルのリソースのとこに書いてある。
重要なのはワークスペースの中のものはプロジェクトでもファイルでも
全て仮想的な空間に存在し、それへのアクセスはリソースAPIによってのみ
行わなければならないこと。例えばfooProjectという名前のプロジェクト
の存在を確認するのに、パスがeclipse/workspace/fooProjectであるだろう
と勝手に仮定してjava.io.File#exists()を使って調べるようなことは
してはいけない。必ずしも全てのプロジェクトがファイルシステム上で
workspaceの下にあるわけじゃないから。
016816105/01/25 12:24:28
>>167レスありがとうございます。参考にさせていただきます
0169デフォルトの名無しさん05/01/31 14:41:11
Javaリソースの生成について解説しているサイトとかあります?
017016905/02/03 16:19:01
自己解決しました。板汚しすみませんでした。
0171デフォルトの名無しさん05/02/03 18:42:48
>>170
自己解決したのはいいけど、よかったら書いておいてもらえると
他の人のためになるのではないかと。
0172デフォルトの名無しさん05/02/03 19:59:56
>>171
オンラインマニュアル読めばわかるレベルの話だから別にいい
んじゃない?
ちなみにわからなければ>>151でリンク貼ってる本読むと実例
挙がってる。
017317205/02/03 20:03:52
すまん、dat落ちしてるのか。えと、エリック ガンマとケント ベックが
共著のEclipseプラグイン開発とかいう本。あとOfficial eclipse 3.0 FAQs
って本にものってる。こっちのほうは上のほうに誰かがWeb版にリンク貼ってるから
そっちみてもいい。でもこの二冊は買っておいたほうがいいね。
0174デフォルトの名無しさん05/02/05 19:46:48
ビューのウィンドウを最小化する方法について、誰か知りませんか?
0175デフォルトの名無しさん05/02/05 19:49:45
最小化ボタン押す。
0176デフォルトの名無しさん05/02/10 19:00:02
自分のPG内でディレクトリを指定してNavigetorを開くのは、どうやったらできますか?
0177デフォルトの名無しさん05/02/10 19:00:59
↑ Navigatorの間違い
0178デフォルトの名無しさん05/02/10 20:12:01
>>176 findView()かshowView()でナビゲータを取得したら、
そこからさらにTreeViewerを取得。あとは煮るなり焼くなり。
0179デフォルトの名無しさん05/02/10 20:16:21
>>178
ありがとうございます。
findView()、showView()とはどこのメソッドなんですか?
0180デフォルトの名無しさん05/02/10 20:34:24
>>179
スイマセン、自己レスです。
どこのメソッドだかは分かりました。
0181デフォルトの名無しさん05/02/11 07:50:53
Visual Editorにて独自のカスタムWidgetを編集可能に
するためのプラグインを追加しました。
しかし、Widgetを張り付けると白くなります。
実行時は間題なく表示されます。何が悪いのでしょうか?
実装した拡張ポイントは2つです
org.eclipse.jem.beaninfo.registrations
org.eclipse.ve.java.core.contributors
0182デフォルトの名無しさん05/02/12 20:33:49
>>181
それ、パレットに登録するしないの問題以前に、そもそも
パレットの「Beanの選択」を使って設計ビューに貼り付け
たときにはウィジットの描画は行われるの?
018318105/02/13 00:15:38
再描画されません。
再描画するにはどうすればよいのでしょうか?
0184デフォルトの名無しさん05/02/13 00:22:13
逆に再描画されないほうが不思議なんだけど。ソース貼っちゃったら?
つーかSWTかSwingかも書いてないし。
018518105/02/13 00:28:35
SWTです。
どの辺のソースを貼ればいいんでしょうか?
とりあえず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>
018618105/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
んー、プラグインの問題じゃないのにplugin.xml貼っても
意味ないでしょう? そうじゃなくて問題を確認する最小限
の機能を持つウィジットのソースをよろしく。
018818105/02/13 00:33:33
自作のwidgetsはひたすらDelegateしただけです。
public 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:33
それなにを継承した?
019018105/02/13 00:36:49
Compositeです。
0191デフォルトの名無しさん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));
 }
}
みたいなやつを貼り付けてもちゃんと再描画する。
019218105/02/13 00:53:38
ありがとう。いろいろ試してみます。
0193デフォルトの名無しさん05/02/13 01:02:44
>>188
VEは触ったことないが,styleをsuperとButtonの両方に丸投げしてるのは
SWT的に明らかにおかしい.
0194デフォルトの名無しさん05/02/14 20:26:42
>>176で「自分のPG内でディレクトリを指定してNavigatorを開くのは、どうやったらできますか? 」
と聞いた者です。
>>178さんが教えてくれた方法でTreeViewerは取得できたのですが、そこから先の調査をしてて止まってしまいました・・

そもそもナビゲータではできないんでしょうか?
0195デフォルトの名無しさん05/02/15 11:53:40
ナビゲータからselectRevealするなり
TreeViewerからsetSelectionするなり
やりようはいくつもあるのになんで
できないなんて話になるんだろ。
APIリファレンス読んでる?
0196デフォルトの名無しさん05/02/16 01:13:23
Omondoでgif出力したら文字化けしたんだけど、これの解決策はある?
0197デフォルトの名無しさん05/02/20 15:01:13
Omondoは前から2byte文字をあんまり考慮してないな。
かなり前は、jarを解凍して.propertiesからフォント定義を探し出して
日本語フォントに書き直してから再jarしてた。
今でもこの方法が通用するかはワカランが。
0198デフォルトの名無しさん05/02/23 01:12:24
Java Spiderプラグインをダウンロードしたいんだが、公式サイトのどこから落とせるのか知ってる?
http://www.javaspider.org/
0199デフォルトの名無しさん05/02/23 01:42:29
へ? Java SpiderってSourceForgeのプロジェクトだけど?
0200デフォルトの名無しさん05/02/23 02:09:38
確かにSourceForgeのプロジェクトにあった・・・ http://sourceforge.net/projects/javaspider/
ありがとう。

Erich Gamma著のEclipseプラグイン開発には、
Spiderはhttp://www.javaspider.org/ からダウンロードできる・・・
って書いてあったんだが。
0201デフォルトの名無しさん05/02/23 22:36:58
EclipseRCPで開発してます。
質問です。

ボタンを押すなどのアクションによってパースペクティブのレイアウト
を変えたり、ビューを閉じたり、開いたりすることは可能でしょうか?
ビューを開く際はタブを増やすのではなく、開いてるタブを閉じてから
開くようにしたいのですが。
0202デフォルトの名無しさん05/02/27 19:01:29
WEB+DB PRESS Vol.24の記事が公開されていました。

Eclipse RCP によるリッチクライアント開発入門
http://www.mamezou.com/tec/equip016.htm
0203デフォルトの名無しさん05/02/28 21:01:53
FTP & Web サポートってあるじゃないですか?
あれって、Eclipse 3.0.1だと、「チーム」から「Target Site」ってでてこないんだけど 3.0.1はサポート使えんの?
0204デフォルトの名無しさん05/02/28 21:07:30
>>203 使える。あとスレ違い。
0205デフォルトの名無しさん05/03/02 18:15:34
質問です。

プラグインのパスを取得して、その中にあるjarファイルをビルド・パスに追加したいんですけど、どうすればよいですか?
0206デフォルトの名無しさん05/03/02 20:18:32
>>205 パスを取得したいプラグインが自分で作ったものかどうかで
話は違ってくるね。
0207デフォルトの名無しさん05/03/02 20:19:30
あ、あと新たにさらにプラグインを自分で作るつもりかどうかでも
違ってくる。
020820505/03/02 21:02:09
自作のプラグインです。というか、今作っているプラグインです。
自分のパスを取得して、同梱したjarをビルド・パスに追加したいんです。
0209デフォルトの名無しさん05/03/02 21:21:19
>>208 コンテナを登録する拡張ポイントがあるから、
それでそのjarを登録する。あとはユーザにそのコンテナを
自分のプロジェクトに追加させるか、「新規作成」のウィザード
であらかじめコンテナを登録済みのプロジェクトを生成するか
させればよい。

とおもったが、質問が二通りに解釈できる気がするので一応確認すると、
ビルドパスを追加する対象のプロジェクトは、プラグインをインストールした
ユーザのワークスペース内の任意のプロジェクトだよね?
021020505/03/02 22:02:19
というか、プラグインでボタンを追加して、それを押すと、ビルド・パスを追加した状態のプロジェクトを生成するってことをやりたいんです。
0211デフォルトの名無しさん05/03/02 22:12:48
>>210 じゃ209で書いた感じでおーけー。
クラスパス変数を定義する手もあるけど、後々の拡張のことを考えたら
コンテナ作っておいたほうがいいね。
ただ新規作成するボタンを押させるのはEclipseの標準的なインター
フェースとはなじまないから、ウィザードを拡張したほうがいいかと。
どっちにしろJDTとPlatformのマニュアルを参照のこと。
021220505/03/02 22:21:18
>>211
ありがとうございました。頑張ってみます。
021320505/03/03 06:33:05
すみません。あの後、頑張ってみたのですがプラグインのパスの取得がわかりません。どうすれば出来るでしょうか?
0214デフォルトの名無しさん05/03/03 07:51:20
>>213 バージョンによって違う。2.xならIPluginDescriptorから。
ttp://help.eclipse.org/help30/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IPluginDescriptor.html#getInstallURL()
3.xならbundleから。↑に書いてある。
021520505/03/03 07:52:45
ありがとうございます。
0216デフォルトの名無しさん05/03/04 21:32:23
お世話さまです。
ツリービューのノードのアイコンのラベル装飾をやっています。
ノードが IProject など IResouce 管理下のものの場合のラベル装飾は、ヘルプやサイト等の情報で比較的に簡単にできました。
(拡張 org.eclipse.ui.decorators にて必要事項を記述する)
しかし、自作のクラスのオブジェクトをノードにした場合、同様の手立てでは装飾されません。

非宣言型ライト・ウェイト・デコレータの方法で実装を試みています
上記の拡張にて、adaptable を falseに、objectClass を自作のクラスの完全修飾名にすればいけそうに思えたのですが、ダメでした。
どなたか同じような経験をお持ちの方がいましたら、よろしくお願いしますm(_ _)m
0217デフォルトの名無しさん05/03/04 21:42:17
>>216

メーリングリストで、もう少し詳細教えてよ
0218デフォルトの名無しさん05/03/04 22:48:44
>>217
メーリングリストとは、eclipseの?
利用してないからよく知らないのですが・・
0219デフォルトの名無しさん05/03/09 22:40:24
>>216です。
入念な調査のうえ解決しました。

装飾対象のツリービューのラベルプロバイダが、DecoratingLabelProviderなど、
IViewerLabelProviderを実装したクラスでないと、ライトウェイトデコレータの機構は利用できないようです。
0220デフォルトの名無しさん05/03/10 22:48:01
プラグイン中でImageやColorを新規作成したら、
どこで破棄すればいいの?

プラグインの作成時にcreatePartControlが呼ばれるのは理解できるんだが、
破棄のとき呼ばれるメソッドがないから、さっぱりわからん・・・
0221デフォルトの名無しさん05/03/10 23:12:14
>>220 使い終わったら破棄すればいいよ。見通しのいい短いスコープだったら
その最後でdispose()すればいい。ViewPartの生存中、ずっと保持する必要が
あるんだったら、WorkbenchPart#createPartControlやEditorPart#init()で生成して、
WorkbenchPart#dispose()で破棄でもいい。ただcreatePartControl()
が一度も呼ばれていない状態でもdispose()が呼ばれることがあるのには注意。

最後はsleakっていうSWTリソースのリークをモニタするツールで抜けがないかチェック。
0222デフォルトの名無しさん05/03/20 14:43:56
>>221 dispose()メソッドなんてあるのね。さんくす。
他にImageRegistoryとかDisposeListenerとか、いろいろやりかたがあるみたい。
0223デフォルトの名無しさん05/03/20 14:52:23
複数のビューで同じImageを使いたい場合、いったいどこでImageを
呼び出したらよいのでしょう・・・

たとえば一つのビューで画像を編集したら、もう一方のビューで
編集が反映されるといったことをやりたい。
0224デフォルトの名無しさん05/03/20 22:01:13
>>223
お好きなように。ContentProviderみたいな仕組み使ってもいいし、
addHogehoge/fireHogehogeみたいな仕組みを自分で作ってもいいし。
0225デフォルトの名無しさん2005/03/24(木) 02:38:34
あかん、ContentProviderでいくつか調べたけど、
どのオブジェクトで定義してて、どのオブジェクトで管理してるんか
理解できひん。

自分はドットエディタみたいなのを作りたいです。
View1で全体の画面を表示して、View2でその一部を拡大、
編集します。編集するとView1に反映します。

でも、View2からView1の画像を取得したり、再描画のために
Viewそのものを取得したりする方法がわかりません。

もしかしたら、複数のビューを統括する親オブジェクト(ワークスペース?)
が、あるのでしょうか。

なにか調べるきっかけのようなものでもあれば、教えて
0226デフォルトの名無しさん2005/03/24(木) 09:28:55
PlatformUI.getWorkbench()
 + getActiveWorkbenchWindow() 現在のワークベンチウインドウ
  + getActivePage() -> ウインドウのページ (ページ != パースペクティブ? この概念がいまいち不明・・・)
   + getActiveEditor()
   + getActivePart() (ビューなど)
   + etc...

ヘルプ見ればもっと詳しく書いてあったはず
0227デフォルトの名無しさん2005/03/24(木) 09:34:27
>>225
とりあえずView2にsetParentView()みたいなメソッドを定義して、
ワークベンチからshowViewやfindViewでview2を開いた後view1へ
の参照を渡しておけばいいんじゃないの? 本当はオブザーバーパターン
使ったほうが後々楽だと思うけどね。
あとPlatformUIのAPIリファレンスからいろいろメソッド
たどって概要をつかむことをすすめるよ。
0228デフォルトの名無しさん2005/03/29(火) 09:07:08
ワークベンチとかワークベンチウィンドウとかいうのが
統括してんのね。ちょっとわかりかけたかも。
みんなありがとなー
0229デフォルトの名無しさん2005/04/06(水) 11:16:20
なかなか良いツートリアルがありましたよ
http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial26.pdf

3.1系対応という事で、3.0系より少し拡張されてるようだけど
基本的な概念は同じなので参考にしてみては
0230デフォルトの名無しさん2005/04/06(水) 14:40:18
チュートリアルといえば、eclipse.orgにはその手の教育用リソース
をつくるサブプロジェクトがあるけど、和訳されていないせいか
ほとんど話題にならないな。
0231デフォルトの名無しさん2005/04/09(土) 18:57:43
lombozってなんて読むの?
0232デフォルトの名無しさん2005/04/09(土) 18:59:03
ろむぼっつかな?
0233デフォルトの名無しさん2005/04/09(土) 22:07:08
漏れの脳内では「ろんばづ」
0234デフォルトの名無しさん2005/04/10(日) 02:12:58
>>231
ttp://www.eclipsewiki.net/eclipse/?%A5%B3%A5%E1%A5%F3%A5%C8%2FLomboz
の途中にそのネタはあるな。

俺は「ロンボス」に一票。「ロンボズ」かも知れんが、語源があるかどうかもわからん。
0235デフォルトの名無しさん2005/04/17(日) 07:06:18
png等の透明色指定する方法誰かわかりませんか?
0236ero 61-26-185-190.rev.home.ne.jp/2005/04/17(日) 07:16:35
         ぉ         k w  う       w                
   っしと      ハ             う    w                 
  け            は    w w     っ                    
 ぇ    る    ァ  う  wお      ぇ    w                  
え       の ハ  ァ  w          ぇ                     
     
0237デフォルトの名無しさん2005/04/18(月) 09:16:54
>>235
誤爆か?
CG板で聞いたほうがいいぞ。
0238デフォルトの名無しさん2005/04/19(火) 22:56:54
eclipseみたいなプラグイン機構を持つアプリ作りたいんだけど
どうやんの?
土台があって、あとはプラグインをぽんぽんってかんじぃ。
0239デフォルトの名無しさん2005/04/19(火) 23:54:00
>>238 マジレスだとURLClassLoaderを使ったクラスのロードを覚えろって
話になるが、スレ的にはIPlatformRunnableを実装しろって話になるな。
後々のことまで考えると後者をすすめる。

でも個人的にはOscarとか使ってみたい気もする。
0240デフォルトの名無しさん 2005/04/20(水) 16:21:56
すいません、Junitでprivateのテストを行おうとしているのですが、
ブレイクし、ステップインしていくと
「ソースファイルが見つかりません。
JARファイルjunit.jarにソース添付がありません。
・・・・」
と表示されるのですが、回避方法を教えていただけませんか?」
すれ違いでしたら、申し訳ございません
0241デフォルトの名無しさん2005/04/20(水) 16:50:56
確かにスレ違いだ。
jarに対応するバージョンのjunitのソースをattach.
0242デフォルトの名無しさん2005/04/25(月) 18:18:28
RCPでいろいろ試してるんですが、知ってる人がいたら教えてください。
こいつらで頭を悩ませてます。
get/savePluginPreferences()
get/saveDialogSettings()
get/savePreferenceStore()

PreferencePageではIPreferenceStoreを使うようになっているのに、savePreferenceStore()は3.0からdeprecatedなのですが
これはPluginPreferencesに格納しなおして保存しろという事なんでしょうか?
また、DialogSettingsもAPIで保存可能ですが、PluginPreferencesとの使い分けがよくわかりません。
「これ読め」 でもいいので、何かヒントありませんか?
0243デフォルトの名無しさん2005/04/25(月) 21:23:53
>>242 AbstractUIPluginのリファレンスの冒頭部分が一番親切で
手取り足取り書いてあると思う。
02442422005/04/26(火) 09:38:53
>>243
どうもです。 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:56
なんでそんな難しく考えるのかなあ.
Pluginが持っている「設定」ページの情報はgetPluginPreferencesStoreで
取得できる場所に保管してあるってだけだよね.そうすれば
自分でいろいろ管理しなくてもFieldEditorとか使う限りは
何もしなくてもいいし,自分でウィジットつかってUI作ったときは
上述のメソッドで取得したインスタンスにデータを放り込めってことでしょ.

で,汎用的なダイアログとかウィザードとかの設定は
DialogSetting使えと.

あとOfficialEclipseFAQs 3.0とか定番FAQは読んだ?
Webでもお試し版が読めるけど,書籍のCDROMにプラグイン版
が入ってるから買っちゃったほうがいいね.
02462422005/04/26(火) 12:34:07
すんません。 大ボケをかましておりました。 逝ってきます。 orz

自分のとこだと、PreferenceStoreに入れたはずの設定が保管されないので
プラグインのstop()でsavePreferenceStore()してみたら、内部的にsavePluginPreferencesを呼んでたので
PluginPreferencesに入れなおさないとダメなんか〜 と思ってました。
で、ふと思い出して確認すると、実行時にワークスペースをクリアしてました・・・ orz

ダイアログやウィザードの設定、って今のところ保存したいような物は作ってないので
現段階では俺にDialogSettingsは必要無い、ってことですね。 これですっきりしました。

OfficialEclipseFAQのWeb版は読んだんですが、やっぱ書籍が欲しいですね。 買ってみます。
ありがとうございました。
0247デフォルトの名無しさん2005/05/15(日) 16:37:15
メインのエディタ部分の上部タブを切り替えたときのイベントってどのように拾えばいいのでしょうか?
composite.getParent()
composite.getParent().getParent()
composite.getParent().getParent().getParent()
上の三つに対してあらゆるListenerをaddしてみたのですが
拾えませんでした

メインのエディタ部分の上部タブを切り替えるって言うことは
他のプラグインの動作にもかかわるので、出来ないようになっているのでしょうか?
0248デフォルトの名無しさん2005/05/15(日) 20:50:06
>>247 そうやってMVCでいうところのビューの一番下の層である
SWT層で解決するのは間違っているけど、とりあえず質問に答えるならば
あのタブの部分は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
ああ,べつにSWTにこだわってるわけでもないのね,ごめん.
ならIWorkbenchPage#addPartListenerで各Partに関する
イベントが取得できる。ただし,WorkbenchPageはワークベンチ
ウィンドウを新しく生成したりするとこちらも動的に生成される.
いちどリスナを登録した後でWindow->New Window...したら
新しいウィンドウのほうでイベントがとれないとかそういう
ことがないよう気を付けること。
0250デフォルトの名無しさん2005/05/17(火) 20:18:46
あまねく【遍く・普く】
[意]ひろく。
[例]あまねく天下に名が通っている。
0251デフォルトの名無しさん2005/05/18(水) 00:26:06
見事な誤爆
0252デフォルトの名無しさん2005/05/20(金) 23:36:44
JSFプラグインの開発止まっているのかなぁ・・・
おれ・・作っちゃうよほんとにつーかできているんだが
出し方を考えている
儲かるならそのほうがいいし 
■ このスレッドは過去ログ倉庫に格納されています