2016-12-10 29 views
0

我想要获得我设置的GWT类型的smartgwt小部件的属性。 例如在GWT:如何为SmartGWT Widget设置自定义属性

//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的,我是不是能够设置/获取该属性。有没有办法解决这个问题? 我们有要求将谷歌分析添加到我们的应用程序,但我们面临的问题是无法设置属性。 要添加一些自定义属性窗口小部件在以往任何时候它需要例如(在选项卡上的点击/点击应用程序中的一些帮助图标,很多地方)

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"); 

,并且必须抓在全球处理器像上面提到的那样。

回答

0

从getElement文档

SmartGWT的正常使用是调用绘制()在SmartGWT的窗口小部件,不使用使用RootPanel.add()。开发人员通常不需要为SmartGWT画布实例调用getElement()或setElement()。如果开发人员需要访问由绘制的SmartGWT组件创建的DOM元素,则应该使用com.smartgwt.client.widgets.Canvas.getOuterElement()和com.smartgwt.client.widgets.Canvas.getContentElement()。有关更多信息,请参阅javadoc获取这些方法。请特别注意,这些元素不应该直接在DOM中操作 - 应该使用标准的SmartGWT API,例如draw(),clear(),setContents(),addChild(),redraw()。另请参阅com.smartgwt.client.widgets.Canvas.setHtmlElement(Element)以了解如何将SmartGWT组件嵌入到现有的DOM元素中。 getElement()和setEleent()仅用于支持将SmartGWT小部件添加到核心GWT布局管理器。此用法有限制和警告 - 请参阅此常见问题列表。 该getElement()使用与核心GWT集成的机制是相同的,对于com.smartgwt.client.widgets.Canvas.setHTMLElement(元素)中描述并具有相同的警告

所以,一个例子。

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

结果如下: enter image description here

如果你试试这个:

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

结果是: enter image description here

注意的iButton是com.smartgwt.client.widgets.IButton

问候!

+0

感谢您的回复..但我的查询是在这里设置一些自定义属性smartgwt小部件/组件,同样可以检索,同时捕捉一些事件..它possbile? –

相关问题