StringDescriptor () { if(myValue == null || (myValue.getValue() != null && myTextFieldModified)) { // editor is for "trivial" StringDescriptor final String value = myTfWithButton.getText(); if (myValue == null && value.length() == 0) { return null; } else{ final StringDescriptor stringDescriptor = StringDescriptor.create(value); if (myValue != null && myValue.isNoI18n()) { stringDescriptor.setNoI18n(true); } return stringDescriptor; } } else{ // editor is for "bundled" StringDescriptor return myValue; } }