Композит с изменяемым размером GWT

Я пытаюсь провести простой эксперимент с ResizableComposite, регистрируя ширину и высоту виджета, но не получаю никакого ответа.

ResizableFlowPanel

public class ResizableFlowPanel extends FlowPanel implements RequiresResize, ProvidesResize {

    public ResizableFlowPanel() {
    super();
    }

    @Override
    public void onResize() {
    GWT.log(this.getOffsetHeight() +","+this.getOffsetWidth());
    }

}

AppBody.java

public class AppBody extends ResizeComposite implements RequiresResize,
    ProvidesResize {
    private static AppBodyUiBinder uiBinder = GWT.create(AppBodyUiBinder.class);

    public AppBody() {
    initWidget(uiBinder.createAndBindUi(this));
    }

    @Override
    public void onResize() {
    GWT.log(this.getOffsetHeight() + "," + this.getOffsetWidth());
    super.onResize();
    }

    interface AppBodyUiBinder extends UiBinder<Widget, AppBody> {
    }

}

AppBody.ui.xml

<ui:UiBinder ...>
    <e:ResizableFlowPanel styleName="{bundle.appBodyStyle.app_body}">

    </e:ResizableFlowPanel>
</ui:UiBinder> 

Когда я изменяю размер браузера, я не получаю никаких сообщений журнала.


person hba    schedule 15.01.2013    source источник
comment
FlowPanel изменяет размер в соответствии со своим родителем. Я не думаю, что вам нужно писать ResizableFlowPanel extends FlowPanel реализует RequiresResize   -  person appbootup    schedule 15.01.2013
comment
RequiresResize будет иметь значение только в том случае, если вы добавите виджет к родителю, который реализует ProvidesResize — так к чему вы добавляете AppBody? И почему AppBody не выполняет ProvidesResize и не вызывает onResize() для любого дочернего элемента, который реализует RequresResize (он же ResizableFlowPanel)?   -  person Colin Alworth    schedule 15.01.2013
comment
Колин, я добавляю его в HtmlPanel; так что, вероятно, поэтому он не работает. Есть ли способ отслеживать размер панели, не имея всего, начиная с RootPanel, реализующего два интерфейса?   -  person hba    schedule 15.01.2013