統合開発環境Eclipseプラグイン開発QA
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGEclipseの使い方や、プラグインの使い方は、
このスレでは扱いませんので、↓のほうへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1076074293
0232デフォルトの名無しさん
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おれ・・作っちゃうよほんとにつーかできているんだが
出し方を考えている
儲かるならそのほうがいいし
0253デフォルトの名無しさん
2005/05/24(火) 23:33:420254デフォルトの名無しさん
2005/05/24(火) 23:38:340255デフォルトの名無しさん
2005/05/25(水) 00:12:09編集したい何かを読むためのIEditorInputを実装したクラス
と、そのクラスを使って何かを読み込むIEditorPartを実装した
エディタクラスを実装する必要がある。
ファイルの場合は、FileEditorInputがあらかじめ用意されていて、
それを扱えるエディタクラスがいくつも用意されているから自分で
用意する必要がないだけで、基本的な構造は同じ。
0256デフォルトの名無しさん
2005/05/25(水) 09:44:51ヒント:チラシの裏
0257デフォルトの名無しさん
2005/05/25(水) 21:57:04俺もオブジェクトにIEditorInputを実装して
エディタで編集してDBを読み書きさせてるが、正直かなり面倒。
そのエディタを作るのもかなり面倒。
IResourceとか、もっと抽象化してファイルの概念から離れればいいのにねー。
0258デフォルトの名無しさん
2005/05/26(木) 11:34:28ttp://yuukiremix.s33.xrea.com/chirashi/
0259デフォルトの名無しさん
2005/05/26(木) 14:03:040260253
2005/05/26(木) 22:50:45>>257
ありがとうございます。
やりたいのはDBの読み書きなのですが
ファイルを読み書きしないので、どのようにして
エディタを立ち上げてよいかわからないのです。
0261デフォルトの名無しさん
2005/05/26(木) 22:56:44それはエディタプラグインではなくビュープラグインとかにすれば?
0262デフォルトの名無しさん
2005/05/26(木) 23:27:52IWorkbenchPage#openEditorするアクションでも作ったら?
0263257
2005/05/26(木) 23:38:31エディタだと拡張子での関連付けになるからねー。
一旦ローカルにファイルとして保存して、
最後にDBに書き出す方法も考えたけども
ロックとか競合の処理が面倒なんでやめた。
今のところ、openEditorするアクション作って開いてる。
始めはビューにしてたんだけど、isDirtyとか保存の処理を考えると
エディタの方が使いやすい気がする。 しかし作るのは面倒な罠。
0264デフォルトの名無しさん
2005/05/26(木) 23:42:16しらないだけで下調べとかで時間とってるだけなんじゃないの?
0266257
2005/05/27(金) 01:10:36テキストエディタじゃなくて、フォームエディタなんです。
で、複数のページにGUI部品を配置してエンヤコラ、と。
PDEのplugin.xmlエディタみたいな感じですね。
やってみると結構手間ですよ。
0267デフォルトの名無しさん
2005/05/27(金) 08:36:53それはエディタだからとかビューだからって観点とは
外れているよね。同じことをビューでやったら楽になる
わけではないし。ちなみにフォーム自体のコードは
「俺は」見通しよくて好き。
0268デフォルトの名無しさん
2005/05/28(土) 00:30:24>PDEのplugin.xmlエディタみたいな感じですね。
それってマルチページエディタとかいうやつか?
0269デフォルトの名無しさん
2005/05/28(土) 00:45:32だね。
つーかマルチページでないフォームエディタが欲しい。
1ページしか使わないのに、下にタブがあると邪魔なので。
0270デフォルトの名無しさん
2005/05/30(月) 15:40:460271デフォルトの名無しさん
2005/05/30(月) 20:35:200272デフォルトの名無しさん
2005/05/31(火) 02:02:220273デフォルトの名無しさん
2005/05/31(火) 23:19:00ImageからGCを生成して、paint(GC gc)でImageに書き込み、
ImageLoaderでファイル出力じゃ駄目かな。
0274デフォルトの名無しさん
2005/06/01(水) 22:25:11サンキュ、試してみます
0275デフォルトの名無しさん
2005/06/02(木) 00:57:55ImageLoader GCあたりでググッタラ、それっぽいソースを見つけたのでコピペで解決しました。
http://springide.org/project/browser/trunk/org.springframework.ide.eclipse.web.flow.ui.editor/src/org/springframework/ide/eclipse/web/flow/ui/editor/actions/ExportAction.java?rev=401
なぜかGIFやPNGだとエラーがでるけど、BMPやJPGはちゃんと動いているので問題なし。
感謝!!
0276デフォルトの名無しさん
2005/06/09(木) 22:47:50org.eclipse.core.runtime.products を拡張して、
preferenceCustomizationで設定ファイルを指定、
workspace\.metadata\.plugins\org.eclipse.pde.core\xxxx\config.iniに
eclipse.productの設定を追加した。
が、まったく反映されない。
どうもconfig.iniが実行するたびに更新されて、
eclipse.productが消されるのだが、どうすればいいんでしょうか?
0277デフォルトの名無しさん
2005/06/09(木) 23:18:50実行設定の中にオプションがあるのでそれを切る。
ただし、Eclipseのbrandingをやるのだったら、プロジェクト中に
.productファイルを作りその中でconfig.iniも含めてPDEを使って管理すべきだと思う。
workspace\.metadata\.plugins\org.eclipse.pde.core\ はPDEを通さずに
自分で触っていい場所ではないから、このままだと同様のトラブルは続くよ。
0279デフォルトの名無しさん
2005/06/11(土) 16:54:46IProjectをcreateしてからどうしたらいいんだ。
ネイチャとかそのへん?
0280デフォルトの名無しさん
2005/06/11(土) 17:16:10Official eclipse 3.0 FAQsのFAQ351
0281デフォルトの名無しさん
2005/06/11(土) 18:00:440282デフォルトの名無しさん
2005/06/11(土) 18:33:23Javaプロジェクト作るだけならnature ID設定しとけって話だけど、
そのほかにも設定項目あるし。
http://help.eclipse.org/help30/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/JavaCore.html#NATURE_ID
0283デフォルトの名無しさん
2005/06/25(土) 15:44:40右上?のアイコンとテキストのパースペクティブ一覧が表示されません。
どうすれば表示できるのでしょうか?
バージョンはEclipse 3.0です。
0284デフォルトの名無しさん
2005/06/25(土) 16:07:33setShowPerspectiveBar(true)
0285デフォルトの名無しさん
2005/06/25(土) 16:23:34位置指定ってできないの?
addしていくと右から詰まっていくのだが
左端からテキストを表示したい。
どうやって指定するんでしょうか?
0286デフォルトの名無しさん
2005/06/25(土) 17:15:16addじゃなくてinsertBefore
0287デフォルトの名無しさん
2005/06/25(土) 23:15:39結構喰らってるのね。 俺のアプリだと10〜11MBぐらい炒ってる。
このメモリ使用量はEMFのせいか?
まあ、こまめにGCされてるようで、派手に増えたりする事はないし
数千件のListをぐるぐる回してても結構軽い。
0289デフォルトの名無しさん
2005/06/27(月) 23:05:28また、必ず表示していたいビューの一部があるのですが、これ以上小さく
リサイズできないようにするといった設定は可能でしょうか?
バージョンは3.0です。
0290285
2005/06/28(火) 23:23:44確かに左から詰まっていった。
でも左端の1/3程が依然余白がある。
StatusLineContributionItem作る時に幅を大きくとっても埋まらない。
なんか気持ち悪い。
0291デフォルトの名無しさん
2005/06/29(水) 01:09:450292デフォルトの名無しさん
2005/06/29(水) 06:40:220295285
2005/06/29(水) 21:15:54書き込みミスった。
FastViewを表示してみたけど、FastViewの領域とinsertBeforeした
ステータスの間があいている。
WorkbenchAdvisorを継承したクラスで
IStatusLineManager statusLine = configurer.getStatusLineManager();
で取得したstatusLineにステータスをaddしてんだけど
何か根本的に間違ってるのかな?
0296デフォルトの名無しさん
2005/06/30(木) 05:22:13ないから、素直にstatusLine.setMessage()でいいだろ。
0297デフォルトの名無しさん
2005/07/21(木) 23:33:12イベントを発火させる方法がわかりません。
スタティックメソッドかなんかで提供されてないでしょうか?
0298デフォルトの名無しさん
2005/07/24(日) 20:22:13それをキャンセルすることはできるのでしょうか?
0299デフォルトの名無しさん
2005/07/25(月) 00:08:21目的のWidgetをpublicでさらさないとJUnitでテストできなくなるんじゃないかな。
それでもいいなら、Widget#notifyListenersでいいかと。
0300デフォルトの名無しさん
2005/07/25(月) 21:39:25Eclipse のヘルプに、
「リソース変更リスナは、スレッドセーフである必要があります」
とか書いてあるのだけど、
標準に用意されているEclipseのプラグインに含まれるクラスで、
どのメソッドがスレッドセーフに呼べるかが分からない。
勘だと、リソース関係のプラグインはスレッドセーフに呼べそうな気が
するのだけど、なかなかソースが複雑でよく分からない。
お手本にしていた「Eclipseプラグイン開発」という本では、後半で、
作成したイベントの仕組みが、実は複数のスレッドからトリガーされる、
みたいなことが書いてあるが、
リスナーを蓄えるために作成したコレクションの
同期の必要性については指摘していないし、
やっぱり、この程度のいい加減さでいいんでしょうか?
0301デフォルトの名無しさん
2005/07/26(火) 00:00:08>どのメソッドがスレッドセーフに呼べるかが分からない。
UI周りのAPIに関しては、「リソース変更リスナは、スレッドセーフである必要があります
(Some resource change events are triggered during processing that occurs in a
background thread. Resource change listeners `should be' thread-safe.)」
のもうちょっと先に
>See Threading issues for a discussion about thread safety with
>the UI.
って書いてあって、このリンク先に大体書いてある。
>勘だと、リソース関係のプラグインはスレッドセーフに呼べそうな気が
>するのだけど、なかなかソースが複雑でよく分からない。
元々複数のスレッドからリソース触るやつがいるからリスナは
どのスレッドから呼ばれてもいいように作っておけって話だからね。
ただリソースデルタが絡む処理の非同期実行は内容がワークスペースの
状態といつでも対応取れている保証がされないからやらないこと。
あとリソース変更のときはちゃんとRule使って排他制御しておけば
深刻な事態にはならないような気がする。狭義のスレッドセーフ
とは外れるけど。
0302デフォルトの名無しさん
2005/08/07(日) 02:48:360303デフォルトの名無しさん
2005/08/07(日) 03:16:500304デフォルトの名無しさん
2005/08/16(火) 14:51:01テンプレートのMailerとか適当なのからプラグインプロジェクトを作って、.productファイルを作って
Launch Productで動作、Export Eclipse Productで単体起動し正常動作を確認しました。
このプロジェクトでcommonsのライブラリを使用したかったので、./libを作りjarを置いて
MANIFEST.MFのRuntimeでクラスパスに追加し、BuildでBinaryBuildに./libを追加しました。
この状態で、Launch Productすると正常動作します。
ですが、Exportしたexeを起動すると、エラーログを吐いて終了します。
ログにはMANIFEST.MFのOverviewで指定したプラグインクラスがClassNotFoundExceptionになってます。
何か根本的に見落としてたり、間違ってたりしてるんでしょうか?
0305デフォルトの名無しさん
2005/08/16(火) 16:24:00一応自分でも手を動かして確認したけど、jarが入っているプラグインが
アプリケーションプラグインではなく、かつjar'd pluginではなく、
かつライブラリ指定がMANIFEST.MFではなく2.x世代のようにplugin.xml中で
宣言されていることを守れば自分で作ったプラグインでも外部jarの同梱が出来た。
でもまあeclipse同梱のapache commonsのプラグインをつかうのがてっとり早いね。
0306デフォルトの名無しさん
2005/08/16(火) 22:03:13検証してもらってどうもすみません。 ありがとうございます。
jar'dはダメぽでしたか。JWSで配布しようと思ってたんですが、
ちょっと手間隙かけないといけない感じですね。 将来のバージョンアップに期待。
apache commonsプラグインの存在は知りませんでした。チェックしてみます。
0307デフォルトの名無しさん
2005/08/27(土) 22:54:59EclipseRCPで開発してます。
質問です。
ボタンを押すなどのアクションによってビューを閉じたり、
最小化したりすることは可能でしょうか?
0308デフォルトの名無しさん
2005/08/29(月) 09:46:33org.eclipse.ui.internal.WorkbenchPage.toggleZoom で定義されてる。
そういう操作はユーザーにまかせる方針らしい。
代わりに hide show は使えるので、そっちを使えということかな。
0310デフォルトの名無しさん
2005/09/02(金) 23:19:210311デフォルトの名無しさん
2005/09/06(火) 17:10:26今、Struts×eclipsで開発やってるけど
立ち上げたらコンソールにこんなメッセージが・・・
2005/09/06 16:54:29 org.apache.struts.tiles.TilesRequestProcessor initDefinitionsMapping
情報: Tiles definition factory found for request processor ''.
どなたかご教授おながいしまつ!
ああ〜、マッピングうまくいかねーよ畜生!orz
0312デフォルトの名無しさん
2005/09/06(火) 17:20:050313デフォルトの名無しさん
2005/09/06(火) 17:33:00すまん、間違えてしまったよ・・・
回線切ってつ(ry
0314奈々氏
2005/09/12(月) 15:21:23アイコンだけでなく文字列も表示するにはどうすればいいのでしょうか。
0315デフォルトの名無しさん
2005/09/12(月) 15:54:16ラベルが表示されないと思ってたんだけど違った?
0316315
2005/09/12(月) 16:00:54表示はできるね。拡張ポイントで定義したアクションの
ラベルを表示するやり方は知らないけど。
0317奈々氏
2005/09/12(月) 17:16:51IEなどのようにアイコンとそのアイコンが示す文字名を表示する
コードが知りたいです。
アイコンもいいけど初心者や年配者には文字のがわかりすい
そのほうが親切じゃないでしょうか。
そういうことがEclpseで表現するのが難しい。
0318デフォルトの名無しさん
2005/09/12(月) 17:25:10ソース追ってないから詳しい動作はわからんけど。
どっちか片方・両方と使い分けたいよねぇ。
0319奈々氏
2005/09/12(月) 18:43:51まあ、妥協して文字だけは表示したいのでその方法で検討してみます。
でも両方表示する方法はなものか?
0320デフォルトの名無しさん
2005/09/13(火) 09:55:230321奈々氏
2005/09/13(火) 11:33:33そこをもう少し詳しく
0322318
2005/09/13(火) 13:19:51org.eclipse.jface.action.ActionContributionItem の680行あたりだな。
コメントに書いてあった。
「テキストが表示されるのは、imageを持っていないか、MODE_FORCE_TEXT が指定された時」
たぶんビューなんかだと
getViewSite().getActionBars().getMenuManager().getItems()[]
をActionContributionItemにキャストして
setMode(ActionContributionItem.MODE_FORCE_TEXT)
すればいいらしい。 はーめんどくせ。
0323318
2005/09/13(火) 13:41:37パラメータはIMenuManagerとかIToolbarManagerとかブチ込んで。
setMode()内部でupdate()かけてたけど、表示がかわらんようなら自力update(true)してくれ。
private void showText(IContributionManager manager) {
IContributionItem[] items = manager.getItems();
for (int i = 0; i < items.length; i++) {
if (items[i] instanceof ActionContributionItem) {
ActionContributionItem ac = (ActionContributionItem) items[i];
ac.setMode(ActionContributionItem.MODE_FORCE_TEXT);
}
}
}
0324奈々氏
2005/09/13(火) 18:47:42アイコンを指定しないと文字が表示されました。
その式だとアイコンも文字も両方表示されるのですか。
0325デフォルトの名無しさん
2005/09/13(火) 20:14:250326奈々氏
2005/09/13(火) 20:32:52実は今、Eclipse RCPで開発しています。
なかなか日本語の資料がなくこまっています。
プラグインは奥が深いです。
0327デフォルトの名無しさん
2005/09/13(火) 23:14:58ばれそうになって慌ててどっかのおばはんをナナに仕立てたみたいな
0328デフォルトの名無しさん
2005/09/18(日) 02:09:360329デフォルトの名無しさん
2005/09/18(日) 09:33:320330デフォルトの名無しさん
2005/09/18(日) 14:30:31したいのですが、どうすればいいのでしょうか
IDE.openEditor(page, file);
0331デフォルトの名無しさん
2005/09/18(日) 14:35:00リファレンスマニュアルくらいまともに読め。
■ このスレッドは過去ログ倉庫に格納されています