2016-12-10 14 views
0

私はGWTのように設定しているsmartgwtウィジェットの属性を取得したいと思います。 GWTでたとえば :SmartGWTウィジェットのカスタム属性を設定する方法

//Button creation 
Button btn1 = new Button(" Button 1"); 
Button btn2 = new Button("Button 2"); 
Button btn3 = new Button("Button 3"); 

//setting the attribute to button doms 
btn1.getElement().setAttribute("data-tracking", "Button 1 clicked"); 
btn2.getElement().setAttribute("data-tracking", "Button 2 clicked"); 
btn3.getElement().setAttribute("data-tracking", "Button 3 clicked"); 

    //Global handler to catch all the event in my application 
     Event.addNativePreviewHandler(new NativePreviewHandler() { 
       public void onPreviewNativeEvent(final NativePreviewEvent event) { 
       final int eventType = event.getTypeInt(); 
       switch (eventType) { 

        case Event.ONCLICK: 
        System.out.println("on clikc clicked"+Element.as(event.getNativeEvent().getEventTarget()).getAttribute("data-tracking")); 
//getting the button attribute 
        if(Element.as(event.getNativeEvent().getEventTarget()).getAttribute("data-tracking")!=null && !Element.as(event.getNativeEvent().getEventTarget()).getAttribute("data-tracking").equals("")){ 
        googleAnalyticsTrackPageView(Element.as(event.getNativeEvent().getEventTarget()).getAttribute("data-tracking")); 
        } 
        break; 

       } 
       } 
      }); 

しかしSmartGWTに、私が取得/この属性を設定することができませんでした。この問題を解決する方法はありますか? アプリにGoogleアナリティクスを追加する必要がありますが、私たちが直面している問題は属性を設定できません。 は

Img helpButtonImage = new Img(HELP_ICON); 
helpButtonImage.getElement().setAttribute("data-tracking", "help on purchase order"); 

ButtonItem loginButtonItem = new ButtonItem(); 
loginButtonItem.setAttribute("data-tracking", "User clicked on login button"); 

を史上例えば必要(タブのクリック時に/アプリケーション内のいくつかのヘルプアイコンをクリックすると、多くの場所)をウィジェットにいくつかのカスタム属性を追加するとこれはグローバルハンドラでキャッチする必要があります上記のように。 SmartGWTのgetElementのドキュメントから

答えて

0

通常の使用は、使用RootPanel.addを使用しない、SmartGWTウィジェットに()を描く呼び出すことです()。開発者は通常、SmartGWT canvasインスタンスに対してgetElement()またはsetElement()を呼び出す必要はありません。開発者が描画されたSmartGWTコンポーネントによって作成されたDOM要素にアクセスする必要がある場合は、com.smartgwt.client.widgets.Canvas.getOuterElement()およびcom.smartgwt.client.widgets.Canvas.getContentElement()を使用する必要があります。詳細については、これらのメソッドについてはjavadocを参照してください。特に、これらの要素はDOMで直接操作しないでください。代わりに、draw()、clear()、setContents()、addChild()、redraw()などの標準のSmartGWT APIを使用する必要があります。 SmartGWTコンポーネントを既存のDOM要素に埋め込む方法については、com.smartgwt.client.widgets.Canvas.setHtmlElement(Element)も参照してください。 getElement()およびsetEleent()は、Smart GWTウィジェットをコアGWTレイアウトマネージャに追加する機能のみを提供します。この使用方法には制限事項と注意点があります。このよくある質問のリストをご覧ください。 getElement()はコアGWTと統合するために使用 機構(要素)com.smartgwt.client.widgets.Canvas.setHTMLElementについて説明したのと同様であり、したがって、例えば同じ警告

を有しています。 enter image description here

あなたはこれをしようとした場合::

IButton button = new IButton("Hello World"); 
button.setWidth(400); 
RootPanel.get().add(button); 
button.getContentElement().setAttribute("style" , "color: white;"); 

結果は次のとおりです。iButtonはcom.smartgwt.client.widgets.IButton

からである enter image description here

(注)この

IButton button = new IButton("Hello World"); 
button.setWidth(400); 
RootPanel.get().add(button); 

結果よろしく!

+0

返信いただきありがとうございます。しかし、私のクエリでは、カスタム属性をsmartgwtウィジェット/コンポーネントに設定しています。同じイベントは、いくつかのイベントを捕捉しながら取得できますか? –

関連する問題