/** Removes the menu represented by the node */
  private void removeVisualMenu(RADMenuItemComponent comp) {
    Object o = getBeanInstance();
    Object m = comp.getBeanInstance();
    Object dto = getDesignTimeMenus(getFormManager()).getDesignTime(o);
    Object dtm = getDesignTimeMenus(getFormManager()).getDesignTime(m);

    switch (getMenuItemType()) {
      case T_MENUBAR:
        ((MenuBar) o).remove((Menu) m);
        ((JMenuBar) dto).remove((JMenu) dtm);
        ((JMenuBar) dto).validate();
        break;
      case T_MENU:
        if (comp.getMenuItemType() == T_SEPARATOR) {
          ((Menu) o).remove(subComponents.indexOf(comp));
          ((JMenu) dto).remove(subComponents.indexOf(comp));
        } else {
          ((Menu) o).remove((MenuItem) m);
          ((JMenu) dto).remove((JMenuItem) dtm);
        }
        break;
      case T_POPUPMENU:
        if (comp.getMenuItemType() == T_SEPARATOR) {
          ((Menu) o).remove(subComponents.indexOf(comp));
          // PENDING - dont know how to get reference to JPopupMenu.Separator
          // so it is not supported by getDesignTimeMenu () !!
          // ((JPopupMenu)dto).remove((JPopupMenu.Separator)dtm);
        } else {
          ((Menu) o).remove((MenuItem) m);
          ((JPopupMenu) dto).remove((JMenuItem) dtm);
        }
        break;
      case T_JMENUBAR:
        ((JMenuBar) o).remove((JMenu) m);
        ((JMenuBar) o).validate();
        break;
      case T_JMENU:
        if (comp.getMenuItemType() == T_JSEPARATOR) {
          ((JMenu) o).remove(subComponents.indexOf(comp));
        } else {
          ((JMenu) o).remove((JMenuItem) m);
        }
        break;
      case T_JPOPUPMENU:
        if (comp.getMenuItemType() == T_JSEPARATOR) {
          // XXX(-tdt) ((JPopupMenu)o).remove((JPopupMenu.Separator)m);
          ((JPopupMenu) o).remove(subComponents.indexOf(comp));
        } else {
          ((JPopupMenu) o).remove((JMenuItem) m);
        }
        break;
    }
  }
  /** Adds the menu represented by the node */
  private void addVisualMenu(RADMenuItemComponent comp) {
    Object o = getBeanInstance();
    Object m = comp.getBeanInstance();
    Object dto = getDesignTimeMenus(getFormManager()).getDesignTime(o);
    Object dtm = getDesignTimeMenus(getFormManager()).getDesignTime(m);

    switch (getMenuItemType()) {
      case T_MENUBAR:
        ((MenuBar) o).add((Menu) m);
        ((JMenuBar) dto).add((JMenu) dtm);
        ((JMenuBar) dto).validate();
        break;
      case T_MENU:
        if (comp.getMenuItemType() == T_SEPARATOR) {
          ((Menu) o).addSeparator();
          ((JMenu) dto).addSeparator();
        } else {
          ((Menu) o).add((MenuItem) m);
          ((JMenu) dto).add((JMenuItem) dtm);
        }
        break;
      case T_POPUPMENU:
        if (comp.getMenuItemType() == T_SEPARATOR) {
          ((Menu) o).addSeparator();
          ((JMenu) dto).addSeparator();
        } else {
          ((Menu) o).add((MenuItem) m);
          ((JPopupMenu) dto).add((JMenuItem) dtm);
        }
        break;
      case T_JMENUBAR:
        ((JMenuBar) o).add((JMenu) m);
        ((JMenuBar) o).validate();
        break;
      case T_JMENU:
        if (comp.getMenuItemType() == T_JSEPARATOR) {
          ((JMenu) o).addSeparator();
        } else {
          ((JMenu) o).add((JMenuItem) m);
        }
        break;
      case T_JPOPUPMENU:
        if (comp.getMenuItemType() == T_JSEPARATOR) {
          ((JPopupMenu) o).addSeparator();
        } else {
          ((JPopupMenu) o).add((JMenuItem) m);
        }
        break;
    }
  }