@Override // from BComponent
    public void invalidate() {
      // if we're not attached, don't worry about it
      BWindow window;
      BRootNode root;
      if (!_valid || (window = getWindow()) == null || (root = window.getRootNode()) == null) {
        return;
      }

      _valid = false;
      root.rootInvalidated(this);
    }
  protected void createWindows() {
    BWindow window = new BDecoratedWindow(BuiSystem.getStyle(), null);
    //        BMenuBar bar = window.getMenuBar();
    BMenu fileMenu = new BMenu("File", window);
    BMenuItem newItem = new BMenuItem("New Item", "NEW");
    newItem.addListener(listener);
    fileMenu.addMenuItem(newItem);
    BMenuItem exitItem = new BMenuItem("Exit", "EXIT");
    exitItem.addListener(listener);
    fileMenu.addMenuItem(exitItem);
    //        bar.add(fileMenu);

    window.setSize(400, 400);

    BuiSystem.addWindow(window);

    window.center();
  }