среда, 29 июля 2009 г.

This widget's parent does not implement HasWidgets

Если в GWT виджет не содержит родителя (parent), мы можем спокойно добавлять его и использовать в панелях, других GWT-native виджетах и т.д. К примеру, вы создали Image:


Image img = new Image("some url");

а после добавили его в панель:


AbsolutePanel panel = new AbsolutePanel();
panel.add(img);

Этот код выполнится без проблем, т.к. img вообще не содержит родителя.

Но если у виджета будет родитель, отношения с ним несколько обостряются. Представим себе простой Composite виджет включающий в себя Image:

class MyComposite extends Composite {

public Image img = new Image();
public MyComposite() {
initWidget(img);
}
}

Теперь если мы добавим, скажем,в AbsolutePanel картинку из MyComposite, получим то самое сообщение: This widget's parent does not implement HasWidgets

Комментариев нет: