Столкнулся с проблемой в gxt 2.3.1: При событии onRender для родительского компонента не обязательно все child-компоненты, уже isRendered. Это выражается Assertion Error с сообщением: "Method must be called before the component is rendered"
Не пробовал более новые версии gxt, возможно, там этой проблемы уже нет, а в этой по-быстрому можно решить проблему не просто вешая listener на родительский компонент, а собирая событие со всех компонентов.
RenderCollector.create()
.addComponent(parentComponent)
.addComponent(childComponent1)
.addComponent(childComponent2)
.addComponent(childComponent3)
.addComponent(child1OfchildComponent1)
...
.addListener(listener)
.build();
Устройство класса RenderCollector очень простое: запустить listener тогда, когда все компоненты будут isRendered.
Не пробовал более новые версии gxt, возможно, там этой проблемы уже нет, а в этой по-быстрому можно решить проблему не просто вешая listener на родительский компонент, а собирая событие со всех компонентов.
RenderCollector.create()
.addComponent(parentComponent)
.addComponent(childComponent1)
.addComponent(childComponent2)
.addComponent(childComponent3)
.addComponent(child1OfchildComponent1)
...
.addListener(listener)
.build();
Устройство класса RenderCollector очень простое: запустить listener тогда, когда все компоненты будут isRendered.
Комментариев нет :
Отправить комментарий