UiBinder で宣言されたウィジェットがあります。このウィジェットのインスタンスは、さまざまなビューを構築するためのアプリケーションで広く使用されています。私の仕事は、いくつかのパネルを並べ替える必要がある新しいビューを実装することです。
<g:FlowPanel ui:field="text" styleName="...">
...
<g:FlowPanel>
<g:FlowPanel ui:field="images" styleName="...">
...
</g:FlowPanel>
特定のサンプル構造では、新しいカスタム ビューのテキストの上に画像を配置する必要があります。ウィジェットのコードを複製したくありません。スタイルは既にここにあり、この構造に依存する他のコードがあるため、パネルをダミーコンテナーに置き換えてから、コードでそのコンテナーに追加したくありません。
問題を解決するために私が今行っていることは、これら 2 つのパネルをコンテナー FlowPanel で UiBinder にラップし (これは今のところ無害です)、コンテキストに応じて、コードで次のようなことを行います。
if (isSwapRequired) {
images.removeFromParent();
container.insert(images, 0);
}
問題は、並べ替えを行うためのよりエレガントな方法があるか、それとも与えられたアプローチで十分かということです。
ありがとう。