2008年6月1日日曜日

EclipseLaunchでDebugUITools.launchを使う

今日はAIR GEARのAIR実行Launch部分を修正しましたー。
今まで、実行する際、ファイル未保存だったら、保存して実行するんですが...buildの終了をまたずにAIR起動していたみたい。なので、修正して実行しても...修正箇所が反映されてない事がある状況でした。スンマセン。。

しっかり見てみたら...おやまぁ、buildの完了なんぞは待たずにAIRアプリ起動を開始してますがな。
つーことで、修正をしました。
org.eclipse.debug.ui.ILaunchShortcut の実装のクラスの中で、ILaunchConfigurationで起動構成を作成し、

ILaunchConfiguration config =....
config.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor());

ってしていたんですが、

config.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor(), true);

と第三引数の boolean build にtrueを与えてあげると、buildが終わってから実行するようになりました。

ただ、これだと、buildに時間かかっていると進捗状況も見えないしフリーズしたかと思ってしまう状況。
ということで、楽にイイProgressMonitorの実装方法ないもんかーとGoogle先生にお聞きした所、まったく別の方法を発見。
ILaunchConfiguration#launchを使わずに、org.eclipse.debug.ui.DebugUIToolsを使えばいけるみたいです。

ILaunchConfiguration config =....
DebugUITools.launch(config, ILaunchManager.RUN_MODE);

ってすると、Progressにでてくる。スバラシイ!

デフォルトはBackgroundでProgressが動作するんですが、作成するILaunchConfigurationのプロパティに
config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false);
ってプロパティを設定しておくと、ProgressDialogが表示されるようになります。ぶらぼぉ
Blogged with the Flock Browser
• • •