/** @see org.openquark.gems.client.valueentry.ValueEditor#commitValue() */
  @Override
  public void commitValue() {

    removeFocusListener();

    // Make sure we are using the correct value node.
    if (focusChangeListener.getFocusedPanel() != null) {
      replaceValueNode(focusChangeListener.getFocusedPanel().getValueNode().copyValueNode(), true);
    }

    super.commitValue();
  }
  /** @see org.openquark.gems.client.valueentry.ValueEditor#editorActivated() */
  @Override
  public void editorActivated() {

    DataConstructor dataCons = getDataConstructor();

    for (final DataConstructorEditorPanel childEditor : editorPanelList) {

      if (dataCons.getName().equals(childEditor.getDataConstructor().getName())) {
        focusChangeListener.setFocusedPanel(childEditor);
        break;
      }
    }
  }