diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java index c2453c2d7fdfcc63ac25a0b8be96fba9ad34fd68..0f42a739876267d9ea6ccbe7894140f5808f57d6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/VocabularyTermSelectionWidget.java @@ -25,6 +25,7 @@ import com.extjs.gxt.ui.client.event.EventType; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.KeyListener; import com.extjs.gxt.ui.client.event.Listener; +import com.extjs.gxt.ui.client.widget.form.LabelField; import com.extjs.gxt.ui.client.widget.form.TextField; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -36,7 +37,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.VocabularyTermModel; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CodeField.CodeFieldKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil; @@ -64,7 +64,7 @@ public class VocabularyTermSelectionWidget extends private final IViewContext<?> viewContext; - private final CodeField codeField; + private final LabelField codeField; private final DescriptionField descriptionField; @@ -86,17 +86,16 @@ public class VocabularyTermSelectionWidget extends form.setFieldWidth(FIELD_WIDTH); this.setWidth(LABEL_WIDTH + FIELD_WIDTH + 50); - codeField = - new CodeField(viewContext, viewContext.getMessage(Dict.CODE), - CodeFieldKind.CODE_WITH_COLON); - codeField.setMaxLength(GenericConstants.COLUMN_LABEL); + codeField = new LabelField(); + codeField.setLabelSeparator(":"); + codeField.setFieldLabel(viewContext.getMessage(Dict.CODE)); codeField.setReadOnly(true); - // FIXME GWT hangs if this field is disabled, but we want disabled style - // codeField.disable(); + addField(codeField); boolean mandatory = false; labelField = createTextField(viewContext.getMessage(Dict.LABEL), mandatory); + labelField.setEmptyText("enter label"); FieldUtil.setValueWithUnescaping(labelField, refreshAction.code); FieldUtil.setValueWithUnescaping(codeField, labelField.getValue() == null ? "" : CodeNormalizer.normalize(labelField.getValue())); @@ -125,12 +124,14 @@ public class VocabularyTermSelectionWidget extends termSelectionWidget = createTermSelectionWidget(); addField(termSelectionWidget); + + setFocusWidget(labelField); } @Override protected void register(AsyncCallback<Void> registrationCallback) { - refreshAction.code = codeField.getValue(); + refreshAction.code = (String) codeField.getValue(); viewContext.getCommonService().addUnofficialVocabularyTerm( TechId.create(vocabularyOrNull), refreshAction.code, labelField.getValue().trim(), descriptionField.getValue(), diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java index bc716b3523f83dcd5c09d65e0e8328a8711cbca5..2fc0108607508819b258b8cd34b5cac739981741 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/FieldUtil.java @@ -24,6 +24,7 @@ import com.extjs.gxt.ui.client.widget.ComponentHelper; import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.WidgetComponent; import com.extjs.gxt.ui.client.widget.form.Field; +import com.extjs.gxt.ui.client.widget.form.LabelField; import com.extjs.gxt.ui.client.widget.form.TextField; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.Image; @@ -116,6 +117,11 @@ public class FieldUtil field.setValue(StringEscapeUtils.unescapeHtml(value)); } + public static void setValueWithUnescaping(LabelField field, String value) + { + field.setValue(StringEscapeUtils.unescapeHtml(value)); + } + // // info icon support // WORKAROUND: Based on GXT functionality for displaying error icon, until there is no diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png index 0f25d2a1ba310c7da6d0e844c73e003e9e97eb98..334c64c9474ab06b48361293d0900ae425a4afa8 100644 Binary files a/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png and b/openbis/source/java/ch/systemsx/cisd/openbis/public/images/trigger-plus.png differ