EclipseのRCPアプリケーション - 複数のモニタ用マルチウィンドウのデザイン
-
22-08-2019 - |
質問
のEclipse RCPと全体の視点/ビュー/エディタのデザインについての質問 - 複数のモニター上で複数のウィンドウを表示するアプリケーションを作成するための最良の方法は何ですか?私はいつも見てきたチュートリアルや本は、単一のアプリケーションウィンドウ内の視点内部ビューにRCP / SWTの設計を詰めるます。
1つのウィンドウのルールが他のすべて万一またはそれらはすべて(クローズ最後のものは、アプリケーションを終了する)と等しくすべきですか?どのような視点やビューを扱いますか?私たちが知っておくべき他のものはありますか?
環境:Eclipseのガニメデ、WindowsのXP
。解決
単一のEclipseワークベンチは、複数のウィンドウを作成することができます。各ウィンドウには、視点を使用してレイアウトされているので、別のウィンドウが異なる視点、または同じ視点に設定することができ、あなたが独立して他のウィンドウの各ウィンドウで視点を切り替えることができます。
また、各ウィンドウの入力を設定することができます。各ウィンドウは、(例えば、各ウィンドウが異なるサーバに接続することができる、またはすべてが同じスキーマが、異なるデータを有する異なるデータベースからのデータを示すことができる)は、異なるデータで作業している場合、これは有用である。
あなたが別のモニターで同じデータを異なる視点を見ることができるように、それはあなただけのウィンドウを使用していることかもしれません。その場合、あなたはプログラム的にウィンドウを作成する必要があるだけワークベンチによって提供されるアクションを追加する必要はありません。これはあなたのActionBarAdvisorクラスを変更することによって行うことができます:
フィールド宣言に追加します:
private IWorkbenchAction newWindowAction;
あなたはアクション(makeActionsと呼ばれる一般的方法)を作るコードに追加
newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
register(newWindowAction);
あなたはメニューを作成するコードに追加します:
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()
あなたは、あなたはあなたの窓の入力として使用しているものは何でもクラスにこれをキャストすることができます。