code: public void addNewChoiceAttributeValue(CmsAttributeValueView reference, List<String> choicePath) {
  
          CmsValueFocusHandler.getInstance().clearFocus();
          m_widgetService.addChangedOrderPath(getSimplePath(-1));
          if (isChoiceHandler()) {
              addChoiceOption(reference, choicePath);
          } else {
              addComplexChoiceValue(reference, choicePath);
          }
          updateButtonVisisbility();
          CmsUndoRedoHandler handler = CmsUndoRedoHandler.getInstance();
          if (handler.isIntitalized()) {
              handler.addChange(m_entity.getId(), m_attributeName, reference.getValueIndex() + 1, ChangeType.choice);
          }
      }
docs: Adds a new choice attribute value.<p>
  
  @param reference the reference value view
  @param choicePath the path of the selected (possibly nested) choice attribute, consisting of attribute names