2016-08-05 7 views
0

私はGwtBootstrap3 0.9.3で作業していて、私の上にいくつかのウィジェットを配置してUiBinderを使用しました。 org.gwtbootstrap3.client.ui.CheckBoxクラスのチェックボックスとorg.gwtbootstrap3.client.ui.Buttonのボタンが正しく動作しています。 ClickEventsをクリックすると起動します。SelectとMultipleは、イベントを起動しません。

しかし、org.gwtbootstrap3.extras.select.client.ui.MultipleSelectおよびorg.gwtbootstrap3.extras.select.client.ui.Selectクラスをクリックすると、イベントが発生しません。選択を行ったり変更したりするときにcom.google.gwt.event.logical.shared.ValueChangeEventを発生させるべきではありませんか?

のEventHandlerはこのように見ている:私はこれらのwidgesをクリックしたとき

@UiHandler("simpleSelect") 
void onValueChangeSimple(ValueChangeEvent<String> event) { 
    do.somethingSimple(); 
} 

@UiHandler("multiSelect") 
void onValueChangeMultiple(ValueChangeEvent<List<String>> event) { 
    do.somethingMultiple(); 
} 

ValueChangeEventは、解雇されることはありません。

しかし、私が設定したときに、プログラム

simpleSelect.setValue("Item 1" , true); 

のような値がValueChangeEventは解雇とdo.somethinSimple()が呼び出されますされます。

何が問題になるのですか?これらの選択ウィジェットがUIを使用してValueChangeEventsを起動するようにするにはどうすればよいですか?

答えて

0

GwtBootstrap3Extras 0.9.3 + GWT 2.7 + SuperDevModeを使用して、次の実装をテストしました。名前空間xmlns:select="urn:import:org.gwtbootstrap3.extras.select.client.ui<inherits name="org.gwtbootstrap3.extras.select.Select"/>

* .ui.xml:* .gwt.xmlで

継承

<select:Select ui:field="simpleSelect"> 
    <select:Option>A</select:Option> 
    <select:Option>B</select:Option> 
    <select:Option>C</select:Option> 
</select:Select> 
<select:MultipleSelect ui:field="multiSelect"> 
    <select:Option>A</select:Option> 
    <select:Option>B</select:Option> 
    <select:Option>C</select:Option> 
</select:MultipleSelect> 

ViewImplementation:

@UiField 
Select simpleSelect; 

@UiField 
MultipleSelect multiSelect; 

@UiHandler("simpleSelect") 
void onValueChangeSimple(ValueChangeEvent<String> event) { 
    GWT.log("single changed"); 
} 

@UiHandler("multiSelect") 
void onValueChangeMultiple(ValueChangeEvent<List<String>> event) { 
    GWT.log("multi changed"); 
} 

これが正常に動作しています。 SelectまたはMultipleSelectからオプションを選択すると、メッセージはブラウザコンソールに記録されます。プロジェクトを同じように設定する場合は、同じ方法で作業する必要があります。それ以外の場合は別の問題があります(UiField定義、* ui.xml、...を投稿してください)

+0

ありがとうございます。私のコードはあなたのものとよく似ています。私が気づく唯一の違いは、選択項目が属性として宣言されていることです。 Aになります。選択項目はFlowPanels内にもあります。しかし、それでも動作しません。コンパイルされ、JDK 8とSpring Bootで実行されます。 –

+0

My * .ui.xmlは次のようになります。

+0

属性' 'を使用している場合、それも機能しています。問題ではありません。 Java 1.7と1.8は私によってテストされています。 – mxlse

関連する問題