0

GWTBootstrap3 からモーダル ウィジェットをサブクラス化 (拡張) して、アプリ内で再利用できるカスタム モーダル ウィジェットを作成したいと考えています。UiBinder を使用する場合、これを行う方法がわかりません。ModalHeader、ModalBody、ModalFooter を作成し、add(Widget) メソッドを使用して追加することで、Java コードでのみ実行できます。

しかし、サブクラスに UiBinder を使用して同じことを行うにはどうすればよいでしょうか?

4

1 に答える 1

0

UiBinder コードでカスタム ウィジェットを使用できます。それはあなたがしていることですか?カスタム ウィジェットがあるパッケージを別の名前空間にインポートするだけです。ウィジェットWeatherReportがパッケージcom.my.app.widgetsにあり、使用する名前空間がmyであるとします。インポートは次のようになります。

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui"
    xmlns:my="urn:import:com.my.app.widgets">

次のように、UiBinder コードにWeatherReportオブジェクトを追加できるようになりました。

<g:HTMLPanel>
    <my:WeatherReport ui:field="weather" />
</g:HTMLPanel>

詳細については、GWT の公式ドキュメントを参照してください。

UiBinder でModalHeaderModalBodyなどを使用すると、同じように機能します。それぞれのパッケージをインポートしてコンポーネントを使用します。簡単な例を次に示します。

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
        xmlns:g="urn:import:com.google.gwt.user.client.ui"
        xmlns:b="urn:import:org.gwtbootstrap3.client.ui">
        <b:ModalBody>
                <b:Row>
                        <b:Column size="MD_12">
                                <b:Input ui:field="passwordInput" type="PASSWORD" />
                        </b:Column>
                </b:Row>
                <b:ModalFooter">
                        <b:Button ui:field="saveButton" text="Save" type="PRIMARY" />
                        <b:Button ui:field="cancelButton" text="Cancel" />
                </b:ModalFooter>
        </b:ModalBody>
</ui:UiBinder>
于 2015-02-17T13:22:53.870 に答える