GWT - обработчик изменения окна браузера

Я разрабатываю приложение GWT, которое отображает текст на холсте. Я хочу изменить размер холста при изменении размера окна браузера. Проблема в том, что если я использую Window.addResizeHandler, процесс рендеринга с каждым изменением размера будет очень медленным. Поэтому мне нужно изменить размер холста только тогда, когда пользователь отпустит кнопку мыши после завершения изменения размера. Есть ли способ сделать это?

Ответы

Ответ 1

Вы можете добавить задержку, так что изменение размера обрабатывается только после того, как окно не было изменено на некоторое количество миллисекунд:

Window.addResizeHandler(new ResizeHandler() {

  Timer resizeTimer = new Timer() {  
    @Override
    public void run() {
      doComplexLayoutCalculations();
    }
  };

  @Override
  public void onResize(ResizeEvent event) {
    resizeTimer.cancel();
    resizeTimer.schedule(250);
  }
});

Ответ 2

Window.addResizeHandler(new ResizeHandler() {

    @Override
    public void onResize(ResizeEvent event) {
        Scheduler.get().scheduleDeferred(
                new Scheduler.ScheduledCommand() {
                    public void execute() {
                        // layout stuff
                    }
                });
    }

});