ビューがタブのように見えてネストされているように見えるRCPでレイアウトを実装する方法について誰かがアイデアを持っていますか?
タブには、ビューのすべての利点が必要です。デスクトップにドラッグして、切り離されたビューにしたり、互いに近くに並べて表示したり、再配置したりできます。
写真では、ビュー:View4とView5がView1にネストされています。
ビューがタブのように見えてネストされているように見えるRCPでレイアウトを実装する方法について誰かがアイデアを持っていますか?
タブには、ビューのすべての利点が必要です。デスクトップにドラッグして、切り離されたビューにしたり、互いに近くに並べて表示したり、再配置したりできます。
写真では、ビュー:View4とView5がView1にネストされています。
私の経験では、このようなことは簡単ではありません。将来、多くのカスタムコーディングが行われる可能性があります。要件と長所に固有の詳細を把握する必要があるため、アーキテクチャの高レベルの観点からこれについて詳しく説明します。
私が思うに、これについては2つの方法があります。
1.そのビューのコンテンツが他のビューであるビュー拡張を記述します。
これは前もっての作業は少なくなりますが、ビューの再配置を機能させるのは難しいかもしれません。モックアップに基づいて、これはView1がこのビューのインスタンスであり、View4 / View5のタブコントロールをレンダリングし、それらのビューにコンテンツをレンダリングするように指示することを意味します。MultiPageEditorPart
タブをもう少し見栄えよくしたいと思うかもしれませんが、おそらくいくつかのインスピレーションを 探すことができます。
この場合、サブビューは特に親ビューにプラグインされる可能性があります。ビュー内でのドラッグアンドドロップのサポートはそれほど悪くはありませんが、ビューからそれらを引き出すには少し手間がかかります。 この記事では、ドラッグアンドドロップの基本的な概要を説明します。グーグルは残りを提供することができます。
2.この方法でビューをレンダリングするカスタムプレゼンテーションを作成します。
これは、プレゼンテーション層がどのように機能するかを学ぶために少し前もって作業する必要があるかもしれませんが、それが完了すると、探しているすべての機能を取得するのがおそらく簡単になります。プレゼンテーションレイヤーの概要については、 この記事を参照してください。
この場合、すべてのビューはプラグインシステムによってトップレベルのビューとして扱われます。プレゼンテーション層は、ビューコンテンツの領域をレンダリングする場所を決定します。私はこれに似たものにプレゼンテーション層を使用しましたが、私の場合、ビューはすべて静的に配置されていました。とはいえ、すべてが通常のビューであるため、既存のドラッグアンドドロップ機能を再利用して、他のオプションよりもはるかに少ない労力でビューを再配置できるはずです。