2014-02-28 91 views
1

我希望替代GWT棄用的API com.google.gwt.user.client.Element,用於我的自定義標籤。 這樣做的最好方法是什麼?不推薦使用的API com.google.gwt.user.client.Element

import com.google.gwt.resources.client.ImageResource; 
import com.google.gwt.user.client.DOM; 
import com.google.gwt.user.client.Element; 
import com.google.gwt.user.client.ui.Image; 
import com.google.gwt.user.client.ui.Label; 

public class CustomTabLabel extends Label { 

    private String text; 

    public CustomTabLabel() { 
     super(); 
     super.setWidth("250px"); 
    } 

    public void setResource(ImageResource imageResource) { 
     Image img = new Image(imageResource); 
     String definedStyles = img.getElement().getAttribute("style"); 
     img.getElement().setAttribute("style", definedStyles + "; vertical-align:middle;"); 
     DOM.insertBefore(getElement(), img.getElement(), DOM.getFirstChild(getElement())); 
    } 

    @Override 
    public void setText(String text) { 
     this.text = text; 
     Element span = DOM.createElement("span"); 
     span.setInnerText(text); 
     span.setAttribute("style", "padding-left:7px; padding-right:7px; vertical-align:middle;"); 

     DOM.insertChild(getElement(), span, 0); 
    } 

    @Override 
    public String getText() { 
     return this.text; 
    } 
} 

我正在使用2.6.0 GWT版本。

回答

3

使用

import com.google.gwt.dom.client.Element; 
+0

這就是解決擺脫過時警告。 –

+0

這是解決方案解決了我的編譯代碼中的警告和「null」和「undefined」的錯誤。 –

3

嘗試

Element span = Document.get().createSpanElement(); 

對於JavaDoc的點擊here

+0

謝謝,我認爲這相當於@ andrei-volgin的迴應。 – vimterd

+0

如何根據@ andrei-volgin提及的方式創建未棄用的span元素? – Braj

+0

我發佈了整個代碼,因爲我使用了一些返回棄用元素的方法,所以在這兩種情況下我都獲得了相同的結果。我錯了? – vimterd

1

因此直接使用元素已過時,不使用元素本身,而是它的子類則SpanElement:

import com.google.gwt.dom.client.SpanElement; 

SpanElement span = Document.get().createSpanElement(); 
DOM.insertChild(getElement(), span, 0);