Я думаю, вы должны попытаться решить эту проблему с помощью стилей CSS. На вашем месте я бы попытался установить стиль для родительской и / или абсолютной панели, используя addStyle или addStyleNames. Может быть, что-то вроде ...
AbsolutePanel aPanel = new AbsolutePanel();
aPanel.setSize("100%", "50px");
HTML text = new HTML(/*variable lenght text*/);
text.addStyleName("my-custom-style");
в css вы создадите стиль css, который бы соответственно изменил размер вашего виджета.
Другой подход был бы ....
Вы можете создать функцию, которая создает HTML-виджет именно того размера, который вам нужен.
Вот код, который поможет вам начать:
public native void customizeHTMLElement(Element elem, String widthInPx) /*-{
elem.style.width = widthInPx; //this is basically pure js.
}-*/
Then somewhere within your widget make a call to the above function like
public void foo() {
...
customizeHTMLElement(someElement, "20");
...
}
Некоторая информация о JSNI - http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html