[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 09/10 09:50 / Filesize : 164 KB / Number-of Response : 558
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [04/04/09 22:24]
統合開発環境Eclipse用プラグイン開発に関する質問と回答です。

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





175 名前:デフォルトの名無しさん mailto:sage [05/02/05 19:49:45 ]
最小化ボタン押す。

176 名前:デフォルトの名無しさん mailto:age [05/02/10 19:00:02 ]
自分のPG内でディレクトリを指定してNavigetorを開くのは、どうやったらできますか?

177 名前:デフォルトの名無しさん mailto:sage [05/02/10 19:00:59 ]
↑ Navigatorの間違い

178 名前:デフォルトの名無しさん mailto:sage [05/02/10 20:12:01 ]
>>176 findView()かshowView()でナビゲータを取得したら、
そこからさらにTreeViewerを取得。あとは煮るなり焼くなり。

179 名前:デフォルトの名無しさん mailto:age [05/02/10 20:16:21 ]
>>178
ありがとうございます。
findView()、showView()とはどこのメソッドなんですか?

180 名前:デフォルトの名無しさん mailto:sage [05/02/10 20:34:24 ]
>>179
スイマセン、自己レスです。
どこのメソッドだかは分かりました。

181 名前:デフォルトの名無しさん mailto:age [05/02/11 07:50:53 ]
Visual Editorにて独自のカスタムWidgetを編集可能に
するためのプラグインを追加しました。
しかし、Widgetを張り付けると白くなります。
実行時は間題なく表示されます。何が悪いのでしょうか?
実装した拡張ポイントは2つです
org.eclipse.jem.beaninfo.registrations
org.eclipse.ve.java.core.contributors

182 名前:デフォルトの名無しさん mailto:sage [05/02/12 20:33:49 ]
>>181
それ、パレットに登録するしないの問題以前に、そもそも
パレットの「Beanの選択」を使って設計ビューに貼り付け
たときにはウィジットの描画は行われるの?

183 名前:181 mailto:sage [05/02/13 00:15:38 ]
再描画されません。
再描画するにはどうすればよいのでしょうか?




184 名前:デフォルトの名無しさん mailto:sage [05/02/13 00:22:13 ]
逆に再描画されないほうが不思議なんだけど。ソース貼っちゃったら?
つーかSWTかSwingかも書いてないし。

185 名前:181 mailto:sage [05/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>


186 名前:181 mailto:sage [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>

187 名前:デフォルトの名無しさん mailto:sage [05/02/13 00:33:10 ]
んー、プラグインの問題じゃないのにplugin.xml貼っても
意味ないでしょう? そうじゃなくて問題を確認する最小限
の機能を持つウィジットのソースをよろしく。

188 名前:181 mailto:sage [05/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);
}
省略

189 名前:デフォルトの名無しさん mailto:sage [05/02/13 00:35:33 ]
それなにを継承した?

190 名前:181 mailto:sage [05/02/13 00:36:49 ]
Compositeです。

191 名前:デフォルトの名無しさん mailto:sage [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));
 }
}
みたいなやつを貼り付けてもちゃんと再描画する。

192 名前:181 mailto:sage [05/02/13 00:53:38 ]
ありがとう。いろいろ試してみます。

193 名前:デフォルトの名無しさん mailto:sage [05/02/13 01:02:44 ]
>>188
VEは触ったことないが,styleをsuperとButtonの両方に丸投げしてるのは
SWT的に明らかにおかしい.



194 名前:デフォルトの名無しさん mailto:age [05/02/14 20:26:42 ]
>>176で「自分のPG内でディレクトリを指定してNavigatorを開くのは、どうやったらできますか? 」
と聞いた者です。
>>178さんが教えてくれた方法でTreeViewerは取得できたのですが、そこから先の調査をしてて止まってしまいました・・

そもそもナビゲータではできないんでしょうか?

195 名前:デフォルトの名無しさん mailto:sage [05/02/15 11:53:40 ]
ナビゲータからselectRevealするなり
TreeViewerからsetSelectionするなり
やりようはいくつもあるのになんで
できないなんて話になるんだろ。
APIリファレンス読んでる?

196 名前:デフォルトの名無しさん mailto:sage [05/02/16 01:13:23 ]
Omondoでgif出力したら文字化けしたんだけど、これの解決策はある?

197 名前:デフォルトの名無しさん mailto:sage [05/02/20 15:01:13 ]
Omondoは前から2byte文字をあんまり考慮してないな。
かなり前は、jarを解凍して.propertiesからフォント定義を探し出して
日本語フォントに書き直してから再jarしてた。
今でもこの方法が通用するかはワカランが。

198 名前:デフォルトの名無しさん mailto:sage [05/02/23 01:12:24 ]
Java Spiderプラグインをダウンロードしたいんだが、公式サイトのどこから落とせるのか知ってる?
www.javaspider.org/

199 名前:デフォルトの名無しさん mailto:sage [05/02/23 01:42:29 ]
へ? Java SpiderってSourceForgeのプロジェクトだけど?

200 名前:デフォルトの名無しさん mailto:sage [05/02/23 02:09:38 ]
確かにSourceForgeのプロジェクトにあった・・・ sourceforge.net/projects/javaspider/
ありがとう。

Erich Gamma著のEclipseプラグイン開発には、
Spiderはwww.javaspider.org/ からダウンロードできる・・・
って書いてあったんだが。


201 名前:デフォルトの名無しさん mailto:sage [05/02/23 22:36:58 ]
EclipseRCPで開発してます。
質問です。

ボタンを押すなどのアクションによってパースペクティブのレイアウト
を変えたり、ビューを閉じたり、開いたりすることは可能でしょうか?
ビューを開く際はタブを増やすのではなく、開いてるタブを閉じてから
開くようにしたいのですが。

202 名前:デフォルトの名無しさん mailto:sage [05/02/27 19:01:29 ]
WEB+DB PRESS Vol.24の記事が公開されていました。

Eclipse RCP によるリッチクライアント開発入門
www.mamezou.com/tec/equip016.htm

203 名前:デフォルトの名無しさん [05/02/28 21:01:53 ]
FTP & Web サポートってあるじゃないですか?
あれって、Eclipse 3.0.1だと、「チーム」から「Target Site」ってでてこないんだけど 3.0.1はサポート使えんの?



204 名前:デフォルトの名無しさん mailto:sage [05/02/28 21:07:30 ]
>>203 使える。あとスレ違い。

205 名前:デフォルトの名無しさん mailto:sage [05/03/02 18:15:34 ]
質問です。

プラグインのパスを取得して、その中にあるjarファイルをビルド・パスに追加したいんですけど、どうすればよいですか?

206 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:18:32 ]
>>205 パスを取得したいプラグインが自分で作ったものかどうかで
話は違ってくるね。

207 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:19:30 ]
あ、あと新たにさらにプラグインを自分で作るつもりかどうかでも
違ってくる。

208 名前:205 mailto:sage [05/03/02 21:02:09 ]
自作のプラグインです。というか、今作っているプラグインです。
自分のパスを取得して、同梱したjarをビルド・パスに追加したいんです。

209 名前:デフォルトの名無しさん mailto:sage [05/03/02 21:21:19 ]
>>208 コンテナを登録する拡張ポイントがあるから、
それでそのjarを登録する。あとはユーザにそのコンテナを
自分のプロジェクトに追加させるか、「新規作成」のウィザード
であらかじめコンテナを登録済みのプロジェクトを生成するか
させればよい。

とおもったが、質問が二通りに解釈できる気がするので一応確認すると、
ビルドパスを追加する対象のプロジェクトは、プラグインをインストールした
ユーザのワークスペース内の任意のプロジェクトだよね?

210 名前:205 mailto:sage [05/03/02 22:02:19 ]
というか、プラグインでボタンを追加して、それを押すと、ビルド・パスを追加した状態のプロジェクトを生成するってことをやりたいんです。

211 名前:デフォルトの名無しさん mailto:sage [05/03/02 22:12:48 ]
>>210 じゃ209で書いた感じでおーけー。
クラスパス変数を定義する手もあるけど、後々の拡張のことを考えたら
コンテナ作っておいたほうがいいね。
ただ新規作成するボタンを押させるのはEclipseの標準的なインター
フェースとはなじまないから、ウィザードを拡張したほうがいいかと。
どっちにしろJDTとPlatformのマニュアルを参照のこと。

212 名前:205 mailto:sage [05/03/02 22:21:18 ]
>>211
ありがとうございました。頑張ってみます。

213 名前:205 mailto:sage [05/03/03 06:33:05 ]
すみません。あの後、頑張ってみたのですがプラグインのパスの取得がわかりません。どうすれば出来るでしょうか?



214 名前:デフォルトの名無しさん mailto:sage [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から。↑に書いてある。

215 名前:205 mailto:sage [05/03/03 07:52:45 ]
ありがとうございます。

216 名前:デフォルトの名無しさん mailto:age [05/03/04 21:32:23 ]
お世話さまです。
ツリービューのノードのアイコンのラベル装飾をやっています。
ノードが IProject など IResouce 管理下のものの場合のラベル装飾は、ヘルプやサイト等の情報で比較的に簡単にできました。
(拡張 org.eclipse.ui.decorators にて必要事項を記述する)
しかし、自作のクラスのオブジェクトをノードにした場合、同様の手立てでは装飾されません。

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

217 名前:デフォルトの名無しさん [05/03/04 21:42:17 ]
>>216

メーリングリストで、もう少し詳細教えてよ

218 名前:デフォルトの名無しさん mailto:sage [05/03/04 22:48:44 ]
>>217
メーリングリストとは、eclipseの?
利用してないからよく知らないのですが・・

219 名前:デフォルトの名無しさん mailto:sage [05/03/09 22:40:24 ]
>>216です。
入念な調査のうえ解決しました。

装飾対象のツリービューのラベルプロバイダが、DecoratingLabelProviderなど、
IViewerLabelProviderを実装したクラスでないと、ライトウェイトデコレータの機構は利用できないようです。

220 名前:デフォルトの名無しさん mailto:sage [05/03/10 22:48:01 ]
プラグイン中でImageやColorを新規作成したら、
どこで破棄すればいいの?

プラグインの作成時にcreatePartControlが呼ばれるのは理解できるんだが、
破棄のとき呼ばれるメソッドがないから、さっぱりわからん・・・

221 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:12:14 ]
>>220 使い終わったら破棄すればいいよ。見通しのいい短いスコープだったら
その最後でdispose()すればいい。ViewPartの生存中、ずっと保持する必要が
あるんだったら、WorkbenchPart#createPartControlやEditorPart#init()で生成して、
WorkbenchPart#dispose()で破棄でもいい。ただcreatePartControl()
が一度も呼ばれていない状態でもdispose()が呼ばれることがあるのには注意。

最後はsleakっていうSWTリソースのリークをモニタするツールで抜けがないかチェック。

222 名前:デフォルトの名無しさん [05/03/20 14:43:56 ]
>>221 dispose()メソッドなんてあるのね。さんくす。
他にImageRegistoryとかDisposeListenerとか、いろいろやりかたがあるみたい。


223 名前:デフォルトの名無しさん mailto:sage [05/03/20 14:52:23 ]
複数のビューで同じImageを使いたい場合、いったいどこでImageを
呼び出したらよいのでしょう・・・

たとえば一つのビューで画像を編集したら、もう一方のビューで
編集が反映されるといったことをやりたい。



224 名前:デフォルトの名無しさん mailto:sage [05/03/20 22:01:13 ]
>>223
お好きなように。ContentProviderみたいな仕組み使ってもいいし、
addHogehoge/fireHogehogeみたいな仕組みを自分で作ってもいいし。

225 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 02:38:34 ]
あかん、ContentProviderでいくつか調べたけど、
どのオブジェクトで定義してて、どのオブジェクトで管理してるんか
理解できひん。

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

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

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

なにか調べるきっかけのようなものでもあれば、教えて

226 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 09:28:55 ]
PlatformUI.getWorkbench()
 + getActiveWorkbenchWindow() 現在のワークベンチウインドウ
  + getActivePage() -> ウインドウのページ (ページ != パースペクティブ? この概念がいまいち不明・・・)
   + getActiveEditor()
   + getActivePart() (ビューなど)
   + etc...

ヘルプ見ればもっと詳しく書いてあったはず

227 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 09:34:27 ]
>>225
とりあえずView2にsetParentView()みたいなメソッドを定義して、
ワークベンチからshowViewやfindViewでview2を開いた後view1へ
の参照を渡しておけばいいんじゃないの? 本当はオブザーバーパターン
使ったほうが後々楽だと思うけどね。
あとPlatformUIのAPIリファレンスからいろいろメソッド
たどって概要をつかむことをすすめるよ。

228 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 09:07:08 ]
ワークベンチとかワークベンチウィンドウとかいうのが
統括してんのね。ちょっとわかりかけたかも。
みんなありがとなー

229 名前:デフォルトの名無しさん [2005/04/06(水) 11:16:20 ]
なかなか良いツートリアルがありましたよ
www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial26.pdf

3.1系対応という事で、3.0系より少し拡張されてるようだけど
基本的な概念は同じなので参考にしてみては

230 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 14:40:18 ]
チュートリアルといえば、eclipse.orgにはその手の教育用リソース
をつくるサブプロジェクトがあるけど、和訳されていないせいか
ほとんど話題にならないな。

231 名前:デフォルトの名無しさん [2005/04/09(土) 18:57:43 ]
lombozってなんて読むの?

232 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 18:59:03 ]
ろむぼっつかな?

233 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 22:07:08 ]
漏れの脳内では「ろんばづ」



234 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 02:12:58 ]
>>231
ttp://www.eclipsewiki.net/eclipse/?%A5%B3%A5%E1%A5%F3%A5%C8%2FLomboz
の途中にそのネタはあるな。

俺は「ロンボス」に一票。「ロンボズ」かも知れんが、語源があるかどうかもわからん。

235 名前:デフォルトの名無しさん [2005/04/17(日) 07:06:18 ]
png等の透明色指定する方法誰かわかりませんか?

236 名前:ero 61-26-185-190.rev.home.ne.jp/ mailto:hage [2005/04/17(日) 07:16:35 ]
         ぉ         k w  う       w                
   っしと      ハ             う    w                 
  け            は    w w     っ                    
 ぇ    る    ァ  う  wお      ぇ    w                  
え       の ハ  ァ  w          ぇ                     
     

237 名前:デフォルトの名無しさん [2005/04/18(月) 09:16:54 ]
>>235
誤爆か?
CG板で聞いたほうがいいぞ。

238 名前:デフォルトの名無しさん [2005/04/19(火) 22:56:54 ]
eclipseみたいなプラグイン機構を持つアプリ作りたいんだけど
どうやんの?
土台があって、あとはプラグインをぽんぽんってかんじぃ。

239 名前:デフォルトの名無しさん mailto:sage [2005/04/19(火) 23:54:00 ]
>>238 マジレスだとURLClassLoaderを使ったクラスのロードを覚えろって
話になるが、スレ的にはIPlatformRunnableを実装しろって話になるな。
後々のことまで考えると後者をすすめる。

でも個人的にはOscarとか使ってみたい気もする。

240 名前:デフォルトの名無しさん mailto:sage [2005/04/20(水) 16:21:56 ]
すいません、Junitでprivateのテストを行おうとしているのですが、
ブレイクし、ステップインしていくと
「ソースファイルが見つかりません。
JARファイルjunit.jarにソース添付がありません。
・・・・」
と表示されるのですが、回避方法を教えていただけませんか?」
すれ違いでしたら、申し訳ございません

241 名前:デフォルトの名無しさん mailto:sage [2005/04/20(水) 16:50:56 ]
確かにスレ違いだ。
jarに対応するバージョンのjunitのソースをattach.

242 名前:デフォルトの名無しさん [2005/04/25(月) 18:18:28 ]
RCPでいろいろ試してるんですが、知ってる人がいたら教えてください。
こいつらで頭を悩ませてます。
get/savePluginPreferences()
get/saveDialogSettings()
get/savePreferenceStore()

PreferencePageではIPreferenceStoreを使うようになっているのに、savePreferenceStore()は3.0からdeprecatedなのですが
これはPluginPreferencesに格納しなおして保存しろという事なんでしょうか?
また、DialogSettingsもAPIで保存可能ですが、PluginPreferencesとの使い分けがよくわかりません。
「これ読め」 でもいいので、何かヒントありませんか?

243 名前:デフォルトの名無しさん mailto:sage [2005/04/25(月) 21:23:53 ]
>>242 AbstractUIPluginのリファレンスの冒頭部分が一番親切で
手取り足取り書いてあると思う。



244 名前:242 mailto:sage [2005/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をデバッガで追ってみます。

245 名前:デフォルトの名無しさん mailto:sage [2005/04/26(火) 10:55:56 ]
なんでそんな難しく考えるのかなあ.
Pluginが持っている「設定」ページの情報はgetPluginPreferencesStoreで
取得できる場所に保管してあるってだけだよね.そうすれば
自分でいろいろ管理しなくてもFieldEditorとか使う限りは
何もしなくてもいいし,自分でウィジットつかってUI作ったときは
上述のメソッドで取得したインスタンスにデータを放り込めってことでしょ.

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

あとOfficialEclipseFAQs 3.0とか定番FAQは読んだ?
Webでもお試し版が読めるけど,書籍のCDROMにプラグイン版
が入ってるから買っちゃったほうがいいね.

246 名前:242 mailto:sage [2005/04/26(火) 12:34:07 ]
すんません。 大ボケをかましておりました。 逝ってきます。 orz

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

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

OfficialEclipseFAQのWeb版は読んだんですが、やっぱ書籍が欲しいですね。 買ってみます。
ありがとうございました。

247 名前:デフォルトの名無しさん [2005/05/15(日) 16:37:15 ]
メインのエディタ部分の上部タブを切り替えたときのイベントってどのように拾えばいいのでしょうか?
composite.getParent()
composite.getParent().getParent()
composite.getParent().getParent().getParent()
上の三つに対してあらゆるListenerをaddしてみたのですが
拾えませんでした

メインのエディタ部分の上部タブを切り替えるって言うことは
他のプラグインの動作にもかかわるので、出来ないようになっているのでしょうか?

248 名前:デフォルトの名無しさん mailto:sage [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リファレンス見れ。

249 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 12:09:11 ]
ああ,べつにSWTにこだわってるわけでもないのね,ごめん.
ならIWorkbenchPage#addPartListenerで各Partに関する
イベントが取得できる。ただし,WorkbenchPageはワークベンチ
ウィンドウを新しく生成したりするとこちらも動的に生成される.
いちどリスナを登録した後でWindow->New Window...したら
新しいウィンドウのほうでイベントがとれないとかそういう
ことがないよう気を付けること。

250 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 20:18:46 ]
あまねく【遍く・普く】
[意]ひろく。
[例]あまねく天下に名が通っている。

251 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 00:26:06 ]
見事な誤爆

252 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:36:44 ]
JSFプラグインの開発止まっているのかなぁ・・・
おれ・・作っちゃうよほんとにつーかできているんだが
出し方を考えている
儲かるならそのほうがいいし 

253 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:33:42 ]
ファイルの読み書きをしないエディタってどうやるんでしょうか?



254 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:38:34 ]
それはエディタじゃない

255 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 00:12:09 ]
>>253 基本的な作り方はファイルに対するエディタと同じ。ただ、
編集したい何かを読むためのIEditorInputを実装したクラス
と、そのクラスを使って何かを読み込むIEditorPartを実装した
エディタクラスを実装する必要がある。

ファイルの場合は、FileEditorInputがあらかじめ用意されていて、
それを扱えるエディタクラスがいくつも用意されているから自分で
用意する必要がないだけで、基本的な構造は同じ。

256 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 09:44:51 ]
>>253-254
ヒント:チラシの裏

257 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 21:57:04 ]
>>253
俺もオブジェクトにIEditorInputを実装して
エディタで編集してDBを読み書きさせてるが、正直かなり面倒。
そのエディタを作るのもかなり面倒。

IResourceとか、もっと抽象化してファイルの概念から離れればいいのにねー。


258 名前:デフォルトの名無しさん [2005/05/26(木) 11:34:28 ]
とりあえず、ちらしの裏にでも書いてろ。な?

ttp://yuukiremix.s33.xrea.com/chirashi/


259 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 14:03:04 ]
これはjavaで動いているのですか?

260 名前:253 mailto:sage [2005/05/26(木) 22:50:45 ]
>>255
>>257

ありがとうございます。
やりたいのはDBの読み書きなのですが
ファイルを読み書きしないので、どのようにして
エディタを立ち上げてよいかわからないのです。

261 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:56:44 ]
>>260
それはエディタプラグインではなくビュープラグインとかにすれば?

262 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 23:27:52 ]
>>260 まあビューでいい気もするけど、エディタでやるなら
IWorkbenchPage#openEditorするアクションでも作ったら?

263 名前:257 mailto:sage [2005/05/26(木) 23:38:31 ]
>>260
エディタだと拡張子での関連付けになるからねー。
一旦ローカルにファイルとして保存して、
最後にDBに書き出す方法も考えたけども
ロックとか競合の処理が面倒なんでやめた。

今のところ、openEditorするアクション作って開いてる。

始めはビューにしてたんだけど、isDirtyとか保存の処理を考えると
エディタの方が使いやすい気がする。 しかし作るのは面倒な罠。



264 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 23:42:16 ]
ただのエディタ作るのそんな面倒かなあ。単にエディタの構成を
しらないだけで下調べとかで時間とってるだけなんじゃないの?

265 名前: mailto:sage [2005/05/26(木) 23:47:41 ]
262のいうとおり適当なIEditorInputを実装したクラスを作ってそれとエディタのIDを指定してIWorkbenchPage#openEditorを呼び出せばいいのでは。


266 名前:257 mailto:sage [2005/05/27(金) 01:10:36 ]
>>264
テキストエディタじゃなくて、フォームエディタなんです。
で、複数のページにGUI部品を配置してエンヤコラ、と。
PDEのplugin.xmlエディタみたいな感じですね。
やってみると結構手間ですよ。

267 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 08:36:53 ]
>>266
それはエディタだからとかビューだからって観点とは
外れているよね。同じことをビューでやったら楽になる
わけではないし。ちなみにフォーム自体のコードは
「俺は」見通しよくて好き。

268 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 00:30:24 ]
>>257
>PDEのplugin.xmlエディタみたいな感じですね。
それってマルチページエディタとかいうやつか?

269 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 00:45:32 ]
>>268
だね。
つーかマルチページでないフォームエディタが欲しい。
1ページしか使わないのに、下にタブがあると邪魔なので。

270 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 15:40:46 ]
internalAPI使うと警告出るようになったね。

271 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 20:35:20 ]
eclipseのソースみながらFormEditor実装しようとしてるがワカンネ

272 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 02:02:22 ]
すごい基本的な質問かもしれないけど、GEFの画像データをGIFやBMPに出力する方法ってある?

273 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 23:19:00 ]
>>272
ImageからGCを生成して、paint(GC gc)でImageに書き込み、
ImageLoaderでファイル出力じゃ駄目かな。



274 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 22:25:11 ]
>>273
サンキュ、試してみます

275 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 00:57:55 ]
>>273
ImageLoader GCあたりでググッタラ、それっぽいソースを見つけたのでコピペで解決しました。

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はちゃんと動いているので問題なし。
感謝!!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<164KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef