要約すると、新しいコンポーネントをサポートするには、このコンポーネントの特別なサポートを GWT Designer に追加する必要があります。VerticalPanel のように動作させたいが、実際にはタイプが composite であるカスタム コンポーネントがあるとします。
public class CustomPanel extends Composite implements HasWidgets{
private VerticalPanel panel = new VerticalPanel();
public CustomPanel() {
initWidget(panel);
}
@Override
public void add(Widget w) {panel.add(w);}
@Override
public void clear() {panel.clear();}
@Override
public Iterator<Widget> iterator() {return panel.iterator();}
@Override
public boolean remove(Widget w) {return panel.remove(w);}
}
これは VerticalPanel として機能しますが、デザイナーの観点から見ると、これはまだコンポジットです。その結果、その中にウィジェットをドロップすることはできません。最も単純なケースでは、デザイナーが使いやすいようにするためにすべきことは、指定された名前の規則に従って、CustomPanel の同じパッケージに CustomPanel.wbp-component.xml を作成することです。ウィジェットの追加動作のようなフローを与える単純なものは、
<?xml version="1.0" encoding="UTF-8"?>
<component xmlns="http://www.eclipse.org/wb/WBPComponent">
<description>This is a simple Composite acting like VerticalPanel</description>
<!-- CREATION -->
<creation>
<source><![CDATA[new org.test.client.CustomPanel()]]></source>
</creation>
<parameters>
<parameter name="flowContainer">true</parameter>
<parameter name="flowContainer.horizontal">false</parameter>
<parameter name="flowContainer.association">%parent%.add(%child%)</parameter>
</parameters>
</component>
このステップを追加した後、コンポジットは gwt デザイナーによって垂直パネル (サポート内にウィジェットをドロップ) のように扱われる必要があります。この XML だけでは不十分な場合、つまり、より複雑な性質の動作が必要な場合は、コンポーネントのカスタム動作を Designer に定義する Java モデル クラスの記述を開始し、<model>
タグを使用してコンポーネント xml で参照する必要があります。この場合、モデルとポリシーをホストするプラグインを作成する必要があります。
この要約の参照先と役立つリンクは次のとおりです。