Eclipse RCP-エディター領域でビューを開く(3.8 / e4ハイブリッド)


106

(私たちはルナの依存関係を持っている。すなわち、私たちは、私は、3.8-E4ハイブリッドに取り組んでいません使用Application.e4xmi、まだありません)。つまり、基本的にコンパクトレイヤーを実行しています。

そうは言っても、これらの厄介なビューをエディターフォルダーにスタックするe4プログラムによる方法を見つけるとよいでしょう。


1.)問題

実行時に開かれる各ビューがそこで開かれるように、エディター領域に汎用ビューフォルダーを配置したいと思います。

エディターフォルダーで表示

この質問から盗まれた写真)


2.1)可能な修正no.1:plugin.xmlの使用

パースペクティブ拡張を作成し、関連するorg.eclipse.ui.editorss上の関係スタックを使用して、可能な各ビューをその拡張に追加します。これは、開くのにあまりにも多くのビューがある場合や、プロジェクトが急速にスケーリングする場合は、少し不便です。ワイルドカードビューIDがここでは機能しないことにも気付きました。

パースペクティブ拡張を含むplugin.xmlのSS

考えられる各ビューをパースペクティブ拡張に追加する時間を見つけたら、それでうまくいきます。ただし、ここに追加されていないビューを開くと(つまり、別のフォルダーで開く)、その後に開かれる各ビューは、エディター領域ではなく、前のフォルダーで開かれます(そうでない場合は、詳細な説明を参照してください)それを得る)。


2.2)可能な修正番号2:パースペクティブファクトリでのコードの使用

では、たまたま(e4のもの)にIPerspectiveFactoryアクセスできます。IPageLayoutorg.eclipse.ui.internal.e4.compatibility.ModeledPageLayout

現在、このModeledPageLayout実装は合理的ですが、ドキュメントや奇妙なパブリックAPIもありません。これは他の親類の上にビューを積み重ねる可能性を与えます

modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);

これは2.1のプログラムバージョンになります。また、同じ問題がここに表示されます。ビューがどこかで開かれると、上記のコードは役に立たなくなります。

興味深いことに、stackViewAPIはワイルドカードをサポートしていません(一方で、他のものはサポートしてaddViewいます)。


2.3)考えられる修正その3:回避策

私は多くの視点を持ち、それぞれに多くの異なるフォルダーがあります。すべてが正確に配置されます。

EclipseはシステムのあちこちからすべてのビューIDを取得するためのAPIを提供しているので、パースペクティブごとに以下を実行したいと思います。特定のフォルダーに追加されなかった各ビューIDは、エディター領域(つまり、エディターフォルダー)に追加されます、エディタスタック)

これは、誰かがより便利で時間を節約するソリューションを提供しない限り、私の最後の手段です。

覚えておいてください、e4プログラムによる代替はより柔軟です!


3.)関連する質問

これらは、e4リリースでは非推奨になります。


4.)EclipseのBugzillaに関連するバグ:

最近開いたこのバグには、小さなSSCCEが添付されています。これを再現する手順はこのコメントに記載されているため、ここにコピーして貼り付けることはしません。


3.x互換性コードが含まれている場合、これが可能であるとは非常に考えられません。e4 APIを使用してエディター領域にビューを配置できるかもしれませんが、互換性コードを混同すると思います。
greg-449 2014年

1
エディターを使用しない場合は、共有領域を最小化し、必要に応じてレイアウトを設計します。
bebbo

これがそのまま機能する最新バージョンに進みます。
bebbo

@bebbo私はエディタを使用していますが、すべてを一度にe4に移動することはできません。エンタープライズソフトウェア。:-)
GGrec

回答:


1

私はこれを行うより速い方法はないと思うので、可能な修正3を使用することをお勧めします。


pripr回答の提案は、新しい回答ではなくコメントとして書き込めます。
Mahalakshmi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.