public void dispose() {
    disposing = true;
    // remove utilities
    if (currentPageChanger != null) {
      currentPageChanger.dispose();
    }
    if (keyListenerPageChanger != null) {
      keyListenerPageChanger.uninstall();
    }

    // trigger a re-layout
    pagesPanel.removeAll();
    pagesPanel.invalidate();

    // make sure we call super.
    super.dispose();
  }