/** Internalize panel (internal method) */
  void internalizeInternal() {
    if (!internalizationAutorized) return;

    // internalize
    frame.setVisible(false);
    frame.remove(this);
    frame.validate();
    frame.removeFromMainDesktopPane();

    if (parent != null) {
      parent.add(this);
      parent.validate();
    }

    // notify
    fireStateChange(false);
  }
  /** Externalize panel (internal method) */
  void externalizeInternal() {
    if (!externalizationAutorized) return;

    // externalize
    if (parent != null) {
      parent.remove(this);
      parent.validate();
    }

    frame.add(this, BorderLayout.CENTER);
    frame.validate();
    frame.addToDesktopPane();
    frame.setVisible(true);

    // notify
    fireStateChange(true);
  }