1

次のクラスがある場合com.mywebapp.client.ui.MyWidget

public class MyWidget extends Composite {
    interface MyWidgetUiBinder extends UiBinder<Widget, MyWidget>{}
    private static MyWidgetUiBinder uiBinder = GWT.create(MyWidgetUiBinder.class);

    ...
}

そしてそれは対応するUiBinderです:

<!-- MyWidgetUiBinder.ui.xml -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
    <!-- ... -->
</ui:UiBinder>

それで:

  1. どこに(どのパッケージまたはフォルダ)MyWidgetUiBinder.ui.xml行きますか?GWTではこれを構成可能にすることができますか、それとも特定の場所に配置する必要がありますか?
  2. UiBinderスニペットはどの程度細かくする必要がありますか?すべてのウィジェットについて?すべての表示領域に対して?「ページ」/画面ごとに1つ?

前もって感謝します!

4

2 に答える 2

0
  1. MyWidgetUiBinder.ui.xmlはどこ(どのパッケージまたはフォルダー)に移動しますか?GWTではこれを構成可能にすることができますか、それとも特定の場所に配置する必要がありますか?

GWTでは、ui.xmlファイルが.javaファイルと同じフォルダー(ソースフォルダー)にある必要があります。EclipseにGWTプラグインを使用する場合、ファイルが存在しない場合は警告が表示されます。本当に必要な場合は@UiTemplate、インターフェイス()の注釈を使用して別の場所を指定することもできます。MyWidgetUiBinder

  1. UiBinderスニペットはどの程度細かくする必要がありますか?すべてのウィジェットについて?すべての表示領域に対して?「ページ」/画面ごとに1つ?

それは本当に異なります。私は、ページごとに1つのUiBinderから始めて、それから再利用可能な部分を分割するのが好きです。

于 2012-11-07T01:44:51.270 に答える
0

UiBinderは、そのクラスと同じパッケージ内で、インターフェイスの囲んでいるクラス(存在する場合はインターフェイス名)にちなんで名付けられたファイルを検索します。

あなたの場合、それはを探しますcom/mywebapp/client/ui/MyWidget.ui.xml

これはデフォルトであり、を使用してオーバーライドできます@UiTemplatehttps://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Apply_different_xmlを参照してください

粒度に関しては、UiBinderテンプレートはウィジェットの実装の詳細を保持する必要があります。

于 2012-11-07T01:46:29.290 に答える