2009-03-26 16 views
5

Eclipse RCPと全体的なパースペクティブ/ビュー/エディタデザインに関する質問 - 複数のモニタに複数のウィンドウを表示するアプリケーションを作成する最良の方法は何ですか?チュートリアルと本私は、RCP/SWTデザインを常に単一のアプリケーションウィンドウ内のパースペクティブビューにパックすることを見てきました。Eclipse RCPアプリケーション - マルチモニタ用のマルチウィンドウデザイン

1つのウィンドウで他のルールがすべて成立するか、すべてが等しくなるべきですか(最後の1つを閉じるとアプリケーションが終了します)?どのように視点や意見を扱う?私たちが知るべきことはほかにありますか?

環境:Eclipse Ganymede、Windows XP。

答えて

7

単一のEclipseワークベンチで複数のウィンドウを作成できます。それぞれのウィンドウは、パースペクティブを使用してレイアウトされているため、異なるウィンドウを異なるパースペクティブまたは同じパースペクティブに設定することができ、他のウィンドウとは独立して各ウィンドウでパースペクティブを切り替えることができます。

各ウィンドウの入力を設定することもできます。これは、各ウィンドウが異なるデータで作業している場合(たとえば、各ウィンドウが別のサーバーに接続されている場合や、同じスキーマであるがデータが異なる異なるデータベースのデータを表示している場合など)に便利です。

異なるモニタで同じデータの異なる視点を見ることができるように、ウィンドウのみを使用している可能性があります。その場合、ウィンドウをプログラムで作成する必要はなく、ワークベンチから提供されたアクションを追加するだけで済みます。これはあなたのActionBarAdvisorクラスを変更することによって行うことができます。

は、フィールド宣言に追加します。

private IWorkbenchAction newWindowAction; 

は、あなたがアクションを作るコード(makeActionsと呼ばれ、通常の方法)に追加:

newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window); 
    register(newWindowAction); 
メニューはtypicaある

menu.add(newWindowAction); 

あなたがメニューを作成コードに追加しますウィンドウメニューから選択します。すでにアプリケーション内の[ウィンドウ]メニューを持っていないと1を作成したい場合は、次の行は動作します:

MenuManager menu = new MenuManager(
     "&Window", 
     IWorkbenchActionConstants.M_WINDOW); 

これは、あなたと同じように、新しいウィンドウを作成するメニュー項目を与えますEclipse IDEの「ウィンドウ」 - >「新規ウィンドウ」メニュー項目です。

一方、各ウィンドウに異なるデータを表示する場合は、新しいウィンドウをプログラムで開く必要があります。これにより、各ウィンドウに異なる入力を設定することができます。

IWorkbenchPage newPage = window.openPage(inputObject); 

ここで、inputObjectには、ウィンドウに表示されるデータを識別する情報が含まれています。最初のパースペクティブを設定する場合は、ページ上でsetPerspectiveを呼び出すことでこれを行うことができます。

あなたは、各ウィンドウにタイトルを設定することになるでしょう:

newPage.getWorkbenchWindow().getShell().setText(windowTitle); 

WINDOWTITLEが窓に入力を説明する文字列です。

次のように、ウィンドウの入力を取得することができます

window.getActivePage().getInput() 

あなたは、あなたはあなたの窓の入力として使用しているものは何でもクラスにこれをキャストすることができます。

+0

great start to stackoverflow、thanks! – tomash

+0

これはRCP3です、そうですか? – Weltraumschaf

関連する問題