@SuppressWarnings("unused")
  protected String validateTextOnChange(String text, DocumentEvent e) {
    try {
      T newValue = parseValue(text);
      fireValueChanged(newValue);
      return null;
    }
    catch (InvalidDataException ex) {
      return ex.getMessage();
    }
  }
@SuppressWarnings("unused")
  protected String validateTextOnChange(String text, DocumentEvent e)