2011年4月6日水曜日

GWT UiBinder でイベントを定義する - UiHandler -

UiBinder で定義した Widget Object に ui:field="name" で
名前を付けると、Java 側で @UiField アノテーションつけることで同じ名前の変数をインスタンスとして利用することができます。

さらに、この ui:field="name" で設定した名前を使ってイベントの処理も定義することができます。
この時指定するアノテーションが @UiHandler です。

@UiHandler("name")

のようなアノテーションを Handler のメソッドに付けます。

  1. <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'  
  2.     xmlns:g='urn:import:com.google.gwt.user.client.ui'>  
  3.   
  4.   <g:HTMLPanel>  
  5.     <g:Button ui:field="name">Click Me!</g:Button>  
  6.   </g:HTMLPanel>  
  7. </ui:UiBinder>  


  1. public class MyFoo extends Composite {  
  2.   @UiField Button button;  
  3.   
  4.   public MyFoo() {  
  5.     initWidget(button);  
  6.   }  
  7.   
  8.   @UiHandler("button")  
  9.   void handleClick(ClickEvent e) {  
  10.     Window.alert("Hello, AJAX");  
  11.   }  
  12. }  


ただし、 <g:Button> のような Widget オブジェクトには使用できますが、<button> のような DOM オブジェクトには使用できません。



 

0 件のコメント:

コメントを投稿