public void setValue(AbstractMenuItemType menuItem) {
   oldValue = menuItem;
   if (menuItem != null) {
     nameTextField.setText(menuItem.getName());
     descriptionTextField.setText(menuItem.getDescription());
     iconTextField.setText(menuItem.getIcon());
     if (menuItem instanceof MenuItemType) {
       CommandType command = ((MenuItemType) menuItem).getCommand();
       commandComboBox.setSelectedItem(command.getRef());
       List<String> arguments = new ArrayList<>(command.getArgument());
       argumentTableModel = new ArgumentTableModel(arguments);
       argumentTable.setModel(argumentTableModel);
       argumentTable
           .getSelectionModel()
           .addListSelectionListener(
               new ListSelectionListener() {
                 @Override
                 public void valueChanged(ListSelectionEvent e) {
                   deleteArgumentButton.setEnabled(argumentTable.getSelectedRowCount() > 0);
                   moveArgumentDownButton.setEnabled(
                       argumentTable.getSelectedRow() < argumentTableModel.getRowCount() - 1);
                   moveArgumentUpButton.setEnabled(argumentTable.getSelectedRow() > 0);
                 }
               });
     } else {
       hideCommandComponents();
     }
   }
 }
  public AbstractMenuItemType getValue() {
    AbstractMenuItemType menuItem;
    if (commandComboBox.isVisible()) {
      MenuItemType menuItemType = new MenuItemType();
      CommandType command = new CommandType();
      command.setRef((String) commandComboBoxModel.getSelectedItem());
      for (int row = 0; row < argumentTableModel.getRowCount(); row++) {
        final String value = (String) argumentTableModel.getValueAt(row, 0);
        if (value != null && value.length() > 0) {
          command.getArgument().add(value);
        }
      }
      menuItemType.setCommand(command);
      menuItem = menuItemType;
    } else {
      menuItem = new MenuGroupType();
    }
    menuItem.setName(nameTextField.getText());
    menuItem.setDescription(descriptionTextField.getText());
    menuItem.setIcon(iconTextField.getText());

    return menuItem;
  }