GWTでの一般的なブラウザ画面サイズ通知



GWTPにおけるブラウザ画面サイズ変更通知はGWTのウィジェットのRequiresResizeインターフェースを使ってブラウザ画面のサイズ変更通知を受けるものであったが、ウィジェットの階層構造によらずともサイズ変更通知を受けることができる。

Window.addResizeHandler

以下で通知される。

    Window.addResizeHandler(new ResizeHandler() {
      @Override
      public void onResize(ResizeEvent event) {
        GWT.log("from event" + event.getWidth() + "," + event.getHeight());
        GWT.log("window size " + Window.getClientWidth() + "," + Window.getClientHeight());
      }      
    });    

event.get()でもWindow.get()でも取得される値は同一になる。

初期サイズの取得

しかし、前述の方法では、「ブラウザ画面サイズが変更された場合」場合にしか通知されない。最初に表示されたときには通知されず、ユーザがブラウザのサイズを変えなければ通知されることがない。

これを行うには、結局のところ、エントリポイントのonModuleLoad()にて、Window.getClientWidth(), Window.getClientHeight()を使う。

public class SopmeEntry implements EntryPoint {

  @Override
  public void onModuleLoad() {
     GWT.log("on entry " + Window.getClientWidth() + "," + Window.getClientHeight());
  }
}