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

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

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

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



00021NGNG
いきなりスレタイトルをミスりました。
s/QA/Q&A/
でよろしくです。

●プラグイン開発の基本情報
Eclipse上で「Help」→「Help Contents」→「Platform プラグイン・デベロッパー・ガイド」
00031NGNG
●プラグイン開発入門編
Eclipseプラグインの開発
http://www-6.ibm.com/jp/developerworks/opensource/030214/j_os-ecplug.html
自作プラグインの作り方
http://eclipsewiki.net/eclipse/index.php?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%A4%CE%BA%EE%A4%EA%CA%FD
Eclipseプラグイン開発自分FAQ
http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletnote/eclipse_plugin_dev_faq.html
1から始めるプラグイン開発
http://hp.vector.co.jp/authors/VA000137/eclipse/eclipse-plugin.html
Eclipse プラグインの開発
http://muimi.com/j/eclipse/dev_plugin/
Baykit Eclipse プラグイン作成に関するメモ
http://www.baykit.jp/modules/bwiki/index.php?Baykit%20Eclipse%20%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%BA%EE%C0%AE%A5%E1%A5%E2
Eclipse Plugin 一口メモ
http://www.limy.org/program/eclipse/plugin_memo.html
eclipseのプラグインシステムの仕組み
http://kumiki.c.u-tokyo.ac.jp/~ichiyama/projects/reports/eclipseplugin/eclipseplugin.html
00041NGNG
●プラグイン開発中級編
Eclipseプラグイン開発
http://hpcgi3.nifty.com/error404/cocohore/cocohore.cgi?m=1&s=1&t=yoichiro.cocolog-nifty.com/eclipse/

●参考になるかも知れないプラグインいろいろ
monalipse
http://monalipse.sourceforge.jp/
RubyEclipse
http://sourceforge.net/projects/rubyeclipse
GroovyEclipse
http://www.wikiroom.com/Groovy/?GroovyEclipse
http://cvs.groovy.codehaus.org/viewcvs.cgi/groovy/ide/groovy-eclipse/GroovyEclipse/
0005デフォルトの名無しさんNGNG
Eclipse3.0ではプラグイン開発のチュートリアルがついてくるらしいね。
かなりデザインが派手になって差
0006デフォルトの名無しさんNGNG
>>1乙。
よくやった!
0007デフォルトの名無しさんNGNG
developerWorksにプラグイン開発の情報があるのでリンクします。
日本語によるプラグイン開発関連情報が増えるといいですね。
本家サイトの技術情報は英語でしか読めませんが、
Eclipse User Interface Guidelinesはぜひ日本語版が欲しいです。

●プラグイン開発入門編
Eclipseプラグインの国際化対応
http://www-6.ibm.com/jp/developerworks/opensource/020823/j_os-i18n.html
グラフィカル・エディティング・フレームワークを使用したEclipseベースのアプリケーション開発
http://www-6.ibm.com/jp/developerworks/opensource/031031/j_os-gef.html
EclipseでのJava Development Toolsの拡張
http://www-6.ibm.com/jp/developerworks/opensource/031212/j_os-ecjdt.html
Eclipseのヘルプ・システムを使ってプロジェクトを文書化する
http://www-6.ibm.com/jp/developerworks/opensource/040326/j_os-echelp.html

●プラグイン開発中級編
Eclipse technical articles (E)
http://www.eclipse.org/articles/
Eclipse User Interface Guidelines Version 2.1 (E)
http://www.eclipse.org/articles/Article-UI-Guidelines/Contents.html
0008デフォルトの名無しさんNGNG
で、結局 >>1 はどんなプラグインが欲しいんだ?
0009シェアウェア? 何ソレ?NGNG
とりあえず欲しいのは、JDBC経由であらゆるデータベースに
SQL文を発行できるプラグイン。
 _  _  _____
/tab1/tab2/selectHoge|
---------------------
select
  FOO, BAR, HOGE
from
  EXAMPLE_TABLE
where
     HOGE = ? -- ほげ
  and FOO = ? -- ふぉぉ
---------------------
パラメタを指定してください
[%HOGE%       ] [v] like
[A           ] [ .] like

「?」部分の数だけ入力フィールドが有効になり、
条件を埋めることでSQL文発行可能。
likeがチェックされてると HOGE = ? は HOGE like ? に書き換えられる。

データベースからメタを情報を取ってきて型チェックと変換を行うので、
ユーザはテーブルのカラムの型とか気にせずにSQL文の発行に集中できる。

保存はテキスト形式とXML形式で可能。
ちなみに「SQL to Javaスタティック変数」みたいな便利機能付き。

データベースのスキーマを取得する機能があれば、完璧。
00109NGNG
あ、ごめん。変なタイミングでレスしてしまった。。。

オレは>>1じゃないよん。
0011デフォルトの名無しさんNGNG
ここもくれくれ君のスレになるのか?
それとも >>9 が頑張って作るのか?
00129NGNG
SWTの使用経験はあるんだけど、プラグインの作り方はあんまりよくわからんのだよ。
でもJDBCとJakarta-OROは得意だから、ロジックだけは作れないこともない。

- SQLをコメントと文字列とそれ以外にパースして、
  テーブルの別名と「?」の数を取得。(パラメタ入力フィールド有効化)
- 別名から正式なテーブル名取ってきて、メタ情報をSELECT。
  型名をもとに(パラメタ入力フィールドから取得した)文字列を
  チェック&型変換。
- あとは prepareStatement & パラメタ設定 & execute & 結果取得
  (テーブルコンポーネントに結果を追加する)

GUIと無関係のロジック部分だけうpって、GUIとの連携を何処かの誰かに頼みたいけど、、、

やっぱGUIも自分で作らなきゃだめですかそうですか。
00139NGNG
ロジック書き終えたら質問しにきます。

それでは質問スレに戻ってください。おながいします。
00141NGNG
>>8
別にいらない。自分で作ってみたいだけです。

では、質問です。
Win2000&Eclipse2.1.3&Java SDK1.4.2で、プラグインを作っています。
自作プラグイン上で、Runメニュー→「Run As」から、外部プログラムを起動したいと
思って以下のとおりにしました。が、うまく起動できずに、エラーログに
org/eclipse/debug/ui/ILaunchShortcut
Unhandled exception caught in event loop.
の2行が表示されます。なにかやるべきことをしていないのだと
思いますが、それがなにかがわかりません。
それとも何か根本的に間違ってるのでしょうか? 教えてください。

1.Wizardを使って"Plug-in with an editor"のテンプレートを使用。
2.外部Jarファイルとして、org.eclipse.debug.ui_2.1.3/dtui.jar &
org.eclipse.debug.core_2.1.2/dtcore.jarをプロジェクトに追加。
3.plugin.xmlに、org.eclipse.debug.ui.launchShortcutsの拡張ポイントを拡張。
4.拡張ポイント用クラスを用意。
5.「Run」→「Run As」→「Run-time workbench」
6.新たに起動されたEclipseで「Run」→「Run As」→「run Hello」としました。

plugin.xml と (拡張ポイント用クラス)HelloApplicationShortcutは↓
00151NGNG
plugin.xmlに以下を追加しました。

<extension point = "org.eclipse.debug.ui.launchShortcuts">
<shortcut
id="launching.HelloApplicationShortcut"
class="launching.HelloApplicationShortcut"
label="run Hello"
icon="icons/sample.gif"
helpContextId="run.Hello.runHello.shortcut_hello_application"
modes="run, debug">
<perspective id="org.eclipse.jdt.ui.JavaPerspective"/>
<perspective id="org.eclipse.jdt.ui.JavaHierarchyPerspective"/>
<perspective id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
<perspective id="org.eclipse.debug.ui.DebugPerspective"/>
</shortcut>
</extension>
00161NGNG
package launching;

import java.io.IOException;

import org.eclipse.debug.ui.ILaunchShortcut;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IEditorPart;

public class HelloApplicationShortcut implements ILaunchShortcut {

public void launch(ISelection selection, String mode){
try{
Runtime.getRuntime().exec("hello"); // hello.exeは単に"Hello,world"を表示するCで作ったプログラム。
}catch(IOException e){
System.out.println("error in launching");
}
}

public void launch(IEditorPart editor, String mode){
try{
Runtime.getRuntime().exec("hello");
}catch(IOException e){
System.out.println("error in launching");
}
}
}
0017デフォルトの名無しさんNGNG
>>14
Unhandled exception caught in event loop.
なら,スタックトレースもログにあるでしょ?
同一エントリじゃなくて隣のエントリになってるかもだけど.
0018デフォルトの名無しさんNGNG
>>1の反応がIDEの将来性の無さを語ってる気がするな。

何を作りたいかはっきりしないうちから
なんで作りたいとか思うのか、さっぱり分からん。

結局は、何を作っても大して便利じゃないんだよ。早く気づけ。
0019デフォルトの名無しさんNGNG
>>9
database接続&クエリ発行プラグインならあるのでは?
それにSQL発行するアプリケーションは優れものが色々在るので、
わざわざ重いeclipse上で行うのは抵抗ありませんか?
と思って、勉強がてらJDTエディタ上で
・SQLの構文チェック(oracleのみ・・・)
・SQLとStringリテラル文字列の相互変換
ができるプラグインを作っています(なかなか進みません・・・)
0020デフォルトの名無しさんNGNG
IPMessengerみたいな感じで
開発者同士がチャット出来るようなプラグインないですか?
0021デフォルトの名無しさんNGNG
>>20 ペアプロのためのプラグインあるよ


しかし、口頭でコミュニケーションするか別のメッセアプリ使えよ。
なんでプラグインにする必要あるんだ
0022デフォルトの名無しさんNGNG
確かにペアプロとチャットでのコミュニケーションは別物だわな…
002314NGNG
>>17
エラーログをダブルクリックすることで、スタックトレースを
見ることができました。
どこから手をつけたらいいのかわからなかったので助かります。

ILaunchShortcutが見つからないと言ってるようにみえるのですが、
ちょっと、Eclipseのソースを読んでみます。
うまくいったら報告にきます。
ありがとうございました。
002414NGNG
>>18
>何を作りたいかはっきりしないうちから
なぜこう言うのかわからなかったのですが、もしや、>>8
>どんなプラグインが欲しいんだ?
という発言を、「どんなプラグインを作るんだ?」の意味にとってるんでしょうか。
8の発言は「くれくれ君」なのか? という意味に聞こえたので(失礼)、
14の返答になったわけです。
で、何を作るかは決まっています。ただ、入り口でつまずいているわけですが。。。
0025デフォルトの名無しさんNGNG
>>14
plugin.xmlに必要なプラグインを記述してないから,プラグインクラス
ローダがクラスファイルを見つけられない。つーか、そもそも
dtcore.jarとかdtui.jarとか必要なライブラリを自分でプロジェクトの
プロパティで外部jarとして指定したのが間違いの始まり。plugin.xmlをプラグイン
マニフェストエディタで編集し、「依存性」タブで依存するプラグイン
であるorg.eclipse.debug.ui/coreを指定するとPDEが勝手にコンパイル時
のクラスパスを設定してくれる。
やりたいことがあるのはわかるが一番基本的なことだからサンプルやチュートリアル
を一通りこなしてから出直すことをおすすめする。
0026デフォルトの名無しさんNGNG
そうねぇ.
オンラインのドキュメントもいいけど,
英語が苦でないならこれがおすすめ.
Contributing to Eclipse: Principles, Patterns, and Plug-Ins
http://www.amazon.co.jp/exec/obidos/ASIN/0321205758
英語がダメなら,立ち読みしかしたことないけど
これが結構詳しいっぽい.
Java開発者のためのEclipseエキスパートガイド
http://www.amazon.co.jp/exec/obidos/ASIN/4875662912
0027デフォルトの名無しさんNGNG
>>24 何を作るのかは企業秘密か
002814NGNG
>>25
なるほど。基本的な間違いだったんですね。
一度、外部Jarの指定を削除して、plugin.xmlに
依存性を追加したら、うまく出来ました。
ありがとうございました!

>>26
英語はいまいちなんですが、1番目の本買ってみます。
Amazonに在庫があるようなのですぐ届きそうですし。
2番目のほうは、レビューに訳がいまいちでお薦めじゃない
って書いてるのがなぁ。。。どっか本屋で見かけたら立ち読みして
買うかどうか決めます。

>>27
いえ、単に趣味で作ってるだけなので秘密でもなんでもないです。
とある言語用の開発環境を作ってみようかと。RubyEclipse
みないなもんです。Ruby用ではないですが。

というわけで、もっと勉強して出直してきます。
#ところで、チュートリアルはどこにあるんだろう?
#探したけど見つからなかった。
#Eclipse3.0につくとかいうやつなんだろうか。。。
0029デフォルトの名無しさんNGNG
>>28

D言語用のなら漏れも欲しい。
Rubyのも誰かもっとマシなの作ってほしい。
0030デフォルトの名無しさんNGNG
>>29
D言語用は一応あるみたい。
http://andy.tadan.us/d/
のeclipseDってやつです。
使ったことないので、どんなんだかわかりませんが。
0031デフォルトの名無しさんNGNG
>>30

それなんだけど、単にsyntax highrightしただけのサンプル書き換えればできるだけの
クソプラグインなのよね。
0032 NGNG
http://www.amazon.com/exec/obidos/tg/detail/-/0321205758/ref=cm_cr_dp_2_1/103-4550242-8979862?v=glance&s=books&vi=customer-reviews

Contributing to Eclipseの評価、すげー極端だな。
アンチがカルトだとかの言葉を使うのは2CHのスレを見てるようだ。
0033デフォルトの名無しさんNGNG
>>31
ハイライトだけだったら、30分ぐらいで出来るかも。
あと欲しい機能は、コンパイルとアウトラインとかでしょうか。
それぐらいなら、サンプルのJavaEditorを改造すれば、1〜2週間ぐらいで
出来るのではと妄想してみる。
D言語って、Javaに似てるんですよね。なら、ちょっとの改造で済みそうな。。。
0034デフォルトの名無しさんNGNG
>>18
ていうかね、プラグインを作る前に、そのツールを先にAnt タスクとして実装してくれって感じ。
プラグインがあればつかえるけれどもAntでできることをAntでやらないというのはおかしい。
まずはAntでもできることはAntでもできるように汁。
プラグイン開発はそれからだ。

いくらGUIが便利で簡単そうに見えても
くだらんことのためにコマンド一発の替わりにマウスを何十回も単調に動かし手首を痛めるのはごめんだ。
0035デフォルトの名無しさんNGNG
@ITのEclipse徹底活用でもプラグイン作成解説が始まりました。

第8回 Eclipseプラグインを作る(1)
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_08/eclipse08_1.html
0036デフォルトの名無しさんNGNG
>>33
Eclipseの肝は一貫したUIとリソース管理とそれとうまく結びついてる
IncrementalBuilderとProjectNatureあたりで、
見方によっては、Eclipseって実はD言語のために作られたのか、
と思えるほど、親和性があるのだけど、それをたんなるハイライトで
終らせてるって、もうそのプラグイン作者は完全にやる気ないとしか思えないんだよ。

>>34
それもそうだが、eclipseの肝は上記のものにあるので、Antとは違う領域と思われ
0037 NGNG
Eclipseの新バージョンはプラグインの作り方の細部がかなり変わるの?
>>26の本買おうかと思ったけど、古くならないかな?
0038デフォルトの名無しさんNGNG
>37
2.xでのプラグイン作成の手法は大体3.0でも通用するよ。
ある程度互換が取れるように配慮されている。なにが
どう変わったかのガイドも用意されているし。
ただ3.0ではOSGiとかランタイム環境ががらっと変わって
いるからそのあたりを使うなら全然違うとも言える。
0039デフォルトの名無しさんNGNG
>>37

微妙に違うけど、そんなに激しくは変わらない
3.0になっても別に新しいトピックは無い
004037NGNG
>>38 >>39
どうもありがとう。安心しました。
0041デフォルトの名無しさんNGNG
pascal用がさらに強化されることを祈る。
0042デフォルトの名無しさんNGNG
ツールバーの位置に、コンボボックスを配置できずに困っています。
Cool Barというものを利用すればいろんなコントロールを貼り付けられるという情報を聞いたのですが、イマイチ情報が少なくて。
どなたかご経験がおありなら、ぜひともご教授お願いします。
0043デフォルトの名無しさんNGNG
>>42

スタンドアロンアプリならわからんが、WorkbenchWindowにはムリだろうなぁ
0044デフォルトの名無しさんNGNG
>>42
スタンドアロンアプリで試しましたが確かにComboは
ToolBarには乗らずCoolBarに乗りました。
追試したいなら、CoolBarサンプルソースの
shell.setSize(200, 80);の直前にComboのコードを追加してください。
SWTのサンプルは「SWTサンプル集」と「SWT Tips and Samples」に大量にあります。

CoolBarサンプルソース
http://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サンプル集 (移転しています)
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt
SWT Tips and Samples
http://cjasmin.fc2web.com/

>>43
Eclipseツールバーは裸のToolBaでなくCoolBarにToolBarをぶらさげているので
ComboをToolBarをはさまずCoolBarに直接ぶらさげれば良いのですが、
そんなextension pointがあるかどうかが問題ですね。
extension pointに詳しい方どうぞー。
0045デフォルトの名無しさんNGNG
>>44
extension pointって
リファレンス見れ。そんなもんあるわけないだろ
004644NGNG
>>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検索をかけて調べました。
0047デフォルトの名無しさんNGNG
>>43-46
情報ありがとうございます。
連休あけたら試してみます。
0048デフォルトの名無しさんNGNG
>>46
>>CoolBar coolBar = Workbench.getInstance().getActiveWorkbenchWindow().getCoolBarManager().getControl();

getControl()というメソッドがなく、getItems()というメソッドならありました。
これだとIContributionItemの配列が返ってくるのですが、IContributionItemはCompositeをextendsした型では
ないので、
Comboのコンストラクタで指定できませんでした・・・


004944NGNG
>>48
今までEclipse3.0M8のCoolBarManager.javaを見ていたのですが、
Eclipse2.1.3の方を確認するとgetControl()がデフォルトメソッドですね。
従ってEclipse2.1.3ではパッケージorg.eclipse.ui.internalに属さないクラスから
CoolBarManager#getControl()を直接呼び出せません。

Eclipse3.0M8の場合
public CoolBar getControl() {
  return coolBar;
}
// Eclipse2.1.3の場合
/* package */ CoolBar getControl() {
  return coolBar;
}

むりやりな方法ですがパッケージorg.eclipse.ui.internalに属し
CoolBarManager#getControl()の返り値を返すpubliceメソッドを持つクラスを作れば
Eclipse3.0M8とEclipse2.1.3とで同じコードでCoolBarを取得できます。
0050デフォルトの名無しさんNGNG
>>49
UIガイドラインを無視しなきゃinternal叩くほどのことはないと思う
0051デフォルトの名無しさんNGNG
>>49
>>むりやりな方法ですがパッケージorg.eclipse.ui.internalに属し
>>CoolBarManager#getControl()の返り値を返すpubliceメソッドを持つクラスを作れば
>>Eclipse3.0M8とEclipse2.1.3とで同じコードでCoolBarを取得できます。

報告遅れました。
その方法で、確かに無理やりですができました。
例外が発生していて、描画も少しおかしいですが、いたしかたないです。
あとはワークベンチの生成とのタイミングの問題のような気がします。
ありがとうございました。
0052デフォルトの名無しさんNGNG
プラグインで、

右クリックのコンテキストメニューは動的に生成可能みたいだけど、
画面一番上のメニュー項目の動的生成はできないのかなぁ?
いろいろ調べたんだが、どうしてもだめだった。

IActionFilterインターフェイスを実装するのが近いのかな?
0053デフォルトの名無しさんNGNG
プラグインで、

右クリックのコンテキストメニューは動的に生成可能みたいだけど、
画面一番上のメニュー項目の動的生成はできないのかなぁ?
いろいろ調べたんだが、どうしてもだめだった。

IActionFilterインターフェイスを実装するのが近いのかな?
0054デフォルトの名無しさんNGNG
>>53
IMenuManager.add(IAction action)
005554NGNG
目的によってはRetargetActionをつかうほうが
よい場合もあり。
005653NGNG
>>54-55
Thx. ためしてみますです。
005753NGNG
MenuManagerを利用することで、最上段に動的に
メニューを追加したり削除することができました。どうもです。

でも、Plugin-XMLで最初に追加するメニュー項目について、そこにアイテムを動的に追加したり
削除することはできないです。これはどうでしょう?

あと、RetargetActionの使い方がちょっと現在理解不能。
ちなみにこれは、例えば最初にアクションとして登録した
クラスを別のクラスのアクションに登録しなおすみたいなイメージですかねー。
0058デフォルトの名無しさんNGNG
>>57
正しいmenubar pathを指定していないから。

RetargetActionはまあそんな感じ。
たとえばEdit->Copyなんかは各種プラグインで共有するから
この手の仕組みがないと整合が取れない。
005953NGNG
>>58
いえいえ、正しいmenubarPathからIMenuManager が取得できないんですよ。実際。
本国サイトにもおんなじことで悩んでる人がいました。。。
なんとかならないもんですかねぇ。

----------
[news.eclipse.platform] Re: How to use findMenuUsingPath(argument)?again

thanks.
I use findUsingPath("org.eclipse.examples.view.menu"),the return value is
IContributionItem.But I want to get the menu item of
"org.eclipse.examples.view.menu".With the IContributionItem I found
nothing.
If I use findMenuUsingPath("org.eclipse.examples.view.menu") which I want
to return IMenuManager.But its value is null.
When I use findMenuUsingPath(IWorkbenchActionConstants.M_EDIT),its return
value is IMenuManager which I can use it to add submenu dynamically.
I think if Eclipse allow us to use findMenuUsingPath to find the inherent
IMenuManager such as M_EDIT,M_FILE,M_WINDOW etc.The menu which is added
from the plugin.xml cannot be find.
I don't know if I am right?
can you give me some suggestions.
My goal is to dynamically add menu to the menu declared in plugin.xml.
thanks

> Daniel wrote:
> > How can I get the MenuManager of the menu?
> I'm not sure, but have you tried debugging a bit to see what happens?
> I'd recommend trying something like
> 'menuManager.findUsingPath("org.eclipse.examples.view.menu")' -- and seeing
> what value is returned. Also, is your menu visible when you make this call
> (i.e., is the action set enabled)?
006053NGNG
>>58
いえいえ、正しいmenubarPathからIMenuManager が取得できないんですよ。実際。
本国サイトにもおんなじことで悩んでる人がいました。。。
なんとかならないもんですかねぇ。

----------
[news.eclipse.platform] Re: How to use findMenuUsingPath(argument)?again

thanks.
I use findUsingPath("org.eclipse.examples.view.menu"),the return value is
IContributionItem.But I want to get the menu item of
"org.eclipse.examples.view.menu".With the IContributionItem I found
nothing.
If I use findMenuUsingPath("org.eclipse.examples.view.menu") which I want
to return IMenuManager.But its value is null.
When I use findMenuUsingPath(IWorkbenchActionConstants.M_EDIT),its return
value is IMenuManager which I can use it to add submenu dynamically.
I think if Eclipse allow us to use findMenuUsingPath to find the inherent
IMenuManager such as M_EDIT,M_FILE,M_WINDOW etc.The menu which is added
from the plugin.xml cannot be find.
I don't know if I am right?
can you give me some suggestions.
My goal is to dynamically add menu to the menu declared in plugin.xml.
thanks

> Daniel wrote:
> > How can I get the MenuManager of the menu?
> I'm not sure, but have you tried debugging a bit to see what happens?
> I'd recommend trying something like
> 'menuManager.findUsingPath("org.eclipse.examples.view.menu")' -- and seeing
> what value is returned. Also, is your menu visible when you make this call
> (i.e., is the action set enabled)?
006153NGNG
調子が悪いみたいです。連投になっててゴメンね
0062デフォルトの名無しさんNGNG
リストにいれた要素の各背景色を変える手段ってないですか?
全体として1色にしかできないのかなぁ・・・orz
0063デフォルトの名無しさんNGNG
>>62

ListのかわりにTableではどうか
006462NGNG
>>63
そか。Tableがあったんだ。 
はげしくさんくすです。(*´д`*)

こうなったらListViewerでも使ってILabelProviderのgetTextみたいな感じでなんとか
ならんかとか考えてたよ。。。orz
0065デフォルトの名無しさんNGNG
ああ、なんか作りたくなってきたよ
多分今夜あたり質問することになるけど
そんときはヨロピクメカゴジラ
さてどんなプラグインつくりましょうかぇ〜。。。com

0066デフォルトの名無しさんNGNG
>>65
そう易々と作れるもんじゃない
あの大量のAPIを使うことを考えて冷静に見積もってみれ 個人じゃ不可能
0067デフォルトの名無しさんNGNG
>65
D言語用プラグイン
キボンヌ
006867NGNG
ただハイライトつけるだけのやつじゃダメね
JDTみたく必要なものだけコンパイルしてくれるやつ
0069デフォルトの名無しさんNGNG
>>66
あ、そうなんですか?
僕、趣味感覚で出来るのかなとも思ってました・・・
Javaプログラミング経験も5年あるのでスキル的には問題ないのかなと買いかぶっていました

んじゃあとりあえずSWTのみのスタンドアロンから初めて
その後移植するって言うのが普通の覚え方なんすかねぇ
とりあえず午前中はEclipseヘルプ見ていますが・・・
0070デフォルトの名無しさんNGNG
てか、プラグイン作るっていうのは
みんなが欲しい機能を作るってことだから
そういうのって自分がひらめく前に
誰かがもう作っちゃってるのかなぁ・・・
0071デフォルトの名無しさんNGNG
いや、オレしか要らない機能を作るのだよ。
ラーメン・おふろタイマーでプリセットの時間しか測れないようなものとか。
プリセット増やすには、ソース書き換えてコンパイルで。
0072デフォルトの名無しさんNGNG
いまさらそんんなのつくるんですか?
新しい言語覚えるときでも
そんなの飛ばしますよマジで・・・
0073デフォルトの名無しさんNGNG
>>64
何かビューの中で選択可能なものなら、(ISelectionProviderやIAdapterあたりの関係で)
TableViewerで作ったほうがいいと思うけどね。
0074デフォルトの名無しさんNGNG
>>72
べつに、勉強のために作るわけじゃないからな。
あれば便利なものを作るだけだ。
0075デフォルトの名無しさんNGNG
>>66
確かに易々と作れないが、だからといってツールを作る場合に、
eclipseのリソース管理機能とか土台を再発明することはさらに非現実的。
0076デフォルトの名無しさんNGNG
そういうのは再発明っていわない。
再実装だ。
0077デフォルトの名無しさんNGNG
まあ、どっちにしてもあるもんを使えよって話だな。
0078デフォルトの名無しさんNGNG
再実装は、すでにある実装が用件をみたしているとは限らないし、勉強になるから、>>65のようになんかつくりたくなった、という場合には、問題ない。
むしろ、すでに実装があるものの自分にあわせたサブセットを実装するのは、趣味のプログラムとしてはいいかもしれない。
行き詰まったらすでにある実装みればいいし。

すでに実装があることをしらずに、「こいつで世の中をあっといわせてやるぜ」とかやるのはバカだけど。
0079デフォルトの名無しさんNGNG
VC++で作成したWin32DLLにeclipseプラグインからアクセスするために、
JNI(これもVC++で作ったスタブDLL)を利用してるんですけど、
このスタブDLLをソースレベルでデバッグする方法を模索中です。

通常のSWTアプリとかJavaアプリなら、VC++のデバッグ対象を
java.exeにして、コマンドラインに アプリケーションの.jarファイルを
指定すれば、ソースレベルデバッグ可能ですが、プラグインではどうにも
なりません。ランタイムワークベンチをVC++のデバッガから「プロセスに
アタッチ」すると、TRACEマクロとかは利用できますが、アセンブラコードの
デバッグになってしまします。

なにかいい方法をしっている人いませんか?
0080デフォルトの名無しさんNGNG
eclipse.exeは実はjava.exe読んでるだけなので、
java.exe -cp startup.jar org.eclipse.core.launcher.Main -os win32 -ws win32 -arch x86 -install file:c:/eclipse/
で起動してデバッガにかければいいんじゃないの?
008179NGNG
>>80
どうもです。試してみました。起動はするのですが、やはりデバッグ不可でした。
接続先が通常のワークベンチではなく、ランタイム
ワークベンチの方と接続できないとだめなんですかねー。
0082デフォルトの名無しさんNGNG
>>81
じゃ、起動オプションを全てruntimeworkbenchにあわせましょう。
起動オプションはオンラインマニュアルのどっかに書いてあります。
ランタイムワークベンチでdetail configurationでも出てきたかな?
0083デフォルトの名無しさんNGNG
よくあるUIプラグインのアイコンフォルダ

icons/full/obj16/nn.gif

とか、このfullっていうのは、どういう意味あるんだ?
0084デフォルトの名無しさんNGNG
Mac版のeclipse3ってどうやって日本語化するんですか?
0085デフォルトの名無しさんNGNG
>>84
翻訳して、xx_ja.properties ファイルを作って、unicodeエスケープして
もとのxx.properties ファイルと同じディレクトリに置く。
0086デフォルトの名無しさんNGNG
>>84
http://pcweb.mycom.co.jp/column/osx/099/
0087デフォルトの名無しさんNGNG
誰か助けてくれ。
マーカを自作したんだが、自作アイコンがつかない。
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
markertype="org.mymarker"
icon="icons/myicon.gif"
id="org.mymarker.icon">
</imageprovider>
</extension>
とやったんだが、何がいけないんだか、わかんない。
iconsフォルダは開発しているプラグインのフォルダ内に作った。
gifは動いているプラグインのを実験用にパクって来た。

だ、誰か。教えてくだされ。
0088デフォルトの名無しさんNGNG
↑ Eclipse3.0RC+日本語パッチです。
0089デフォルトの名無しさんNGNG
>>87 それ気づいたときにかなり脱力するだろうな...
009087NGNG
>>89
え?わかるんですか?
教えてください。もう、悩みぬいて、倒れそうです。
0091デフォルトの名無しさんNGNG
よく知らんけど extention じゃないの?
0092デフォルトの名無しさんNGNG
>>91
いくらなんでも違うだろ。
0093デフォルトの名無しさんNGNG
"extensions point" じゃないの?
0094デフォルトの名無しさんNGNG
いや、 Conquerors expanssionだろ
0095デフォルトの名無しさんNGNG
exception
expection
0096デフォルトの名無しさんNGNG
Eclipse3.0からはプラグインの開発スタイルも変わってしまったのだろうか?
0097デフォルトの名無しさんNGNG
プラグインを作っていますが、エキスポートして配布するところでつまづいています。
配布zipのエキスポートがうまくいかないので、jarを作ってplugin.xmlと一緒に手動で
インストールしていますが、起動時にクラスをロードできませんといって怒られます。
試しにウィザードで生成したHelloWorldを同じ手順でインストールしてみても同じでした。
何か心当たりがあるかた、教えてくださいませ。

バージョンは2.1.2です。
0098デフォルトの名無しさんNGNG
多国語パック入れてたら、known bugに引っ掛かっている可能性大。要確認。
009997NGNG
ご指摘どもです。
LangPack当てずにやってみましたが、状況変わらずです。
作成したウィザードを開こうとすると「Plugin hoge was unable to load class hoge.wizard」と出るので、hogePlugin.classがロードされていないような感じです。
jarにhogePlugin.classが含まれているか、plugin.xmlの指定は正しいか、など気をつけてはいるのですが…。
0100デフォルトの名無しさんNGNG
Error Log viewみた?
010197NGNG
似た感じのメッセージが出ているようです。
Message:
Plug-in hoge was unable to load class hoge.Wizard
Exception:
org.eclipse.core.internal.boot.Delegating.URLClassLoader$DelegatingLoaderException:
Attempt to load class "hoge.LoadWizard" from deactivated plug-in "hoge"

hogePlugin.classがeclipse起動時に読まれると思うのですが、これができていないのはなぜなんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています