2012-04-13 10 views
3

私はgwtの世界に数ヶ月前に暮らし、gwt-queryライブラリを使用しようとしています。 私はこのチュートリアルに従いました:http://code.google.com/p/gwtquery/wiki/GettingStarted 私はModle-View-Presenterで作業しているので、私のビュー(これは..View.ui.xmlにバインドされています)で上のチュートリアルを実装しようとしましたが、GwtクエリがMVPで機能しません。

私はlableを作成しようとしたし、その後のコードを実行します。

一覧allGwtLabels = $( "GWT-ラベルを。")ウィジェット();。

しかし、何も選択しません!

私は私が間違って何をやっている

私はqwtQueryは、ウィジェットを検索したい場所を何とか(私の特定ui.xmlファイルへのポイント)を指すように持っていると思いますか?

ありがとうございます。 ;リストallGwtLabels = $( "GWT-ラベル"、ウィジェット).widgets():

//================================Presenter=================================: 

public class QueryPresenter extends 
     Presenter<QueryPresenter.MyView, QueryPresenter.MyProxy> { 

    public interface MyView extends View { 
    } 

    @ProxyCodeSplit 
    @NameToken(NameTokens.query) 
    public interface MyProxy extends ProxyPlace<QueryPresenter> { 
    } 

    @Inject 
    public QueryPresenter(final EventBus eventBus, final MyView view, 
      final MyProxy proxy) { 
     super(eventBus, view, proxy); 
    } 

    @Override 
    protected void revealInParent() { 
     RevealRootContentEvent.fire(this, this); 
    } 

    @Override 
    protected void onBind() { 
     super.onBind(); 
    } 
} 

//====================================View============================================: 

public class QueryView extends ViewImpl implements QueryPresenter.MyView { 

    private final Widget widget; 

    public interface Binder extends UiBinder<Widget, QueryView> { 
    } 

    @Inject 
    public QueryView(final Binder binder) { 
     widget = binder.createAndBindUi(this); 

     List<Widget> allGwtLabels = $(".gwt-Label").widgets(); //Doesn't Work!! 


     //Also doesn't work!! 
     Label label = new Label("Click on me and I will disappear"); 
     $(label).click(new Function() { 
      @Override 
      public void f(Widget w) { 
       //fade out the label 
       $(w).fadeOut(1000); 
      } 
     }); 
     _html.add(label); 
     //retrieve all attached gwt labels 



    } 

    @Override 
    public Widget asWidget() { 
     return widget; 
    } 
    @UiField Label _label; 
    @UiField HTMLPanel _html; 
} 

//==================xml file=============================== 

<!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' 
    ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' 
    ui:generateKeys='com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator' 
    ui:generateLocales='default'> 

    <g:HTMLPanel ui:field="_html"> 
     <script type="text/javascript" language="javascript" src="gquerytest/gquerytest.nocache.js"></script> 

    <g:Label text="hey" ui:field="_label"/> 
    </g:HTMLPanel> 
</ui:UiBinder> 
+0

ありがとうございました。 List allGwtLabels = $( "。gwt-Label"、ウィジェット).widgets();しかし、私はまだこの作品を作ることができません:$(ラベル、_html).click(新機能(){ \t \t \t @Override \t \t \t公共ボイドF(ウィジェットワット){ \t \t \t \t //フェードラベル$(w、_html).fadeOut(1000); \t \t \t} \t \t}); – Michael

答えて

2

試してみてください。以下は、私のプレゼンター+ビュー+ xmlの仕事をdosentの私のコードです

要素のコンテナを指定する必要があります。要素をクエリするときに要素がDOMにアタッチされないためです。

+0

私はgwt clickHandlerを使ってこれを行うことができました。しかし、それは "クリーン"か、私はGQueryのクリックメソッドでこの作業を行い続けるべきですか?この作品:label.addClickHandler(新しいはclickHandler(){ \t \t \t \t \t \t @Override \t \t \tます。public void onClickの(ClickEventイベント){ \t \t \t \t $(ラベル).fadeOut(1000); \t \t \t} \t \t}); – Michael

+0

_html.add(ラベル); $(ラベル).click(新機能(){ 公共ボイドF(){// ラベルをフェードアウト $(ラベル).fadeOut(1000);} }); – jdramaix

関連する問題