diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java index b1350b73e8ba3cc8478d69202a1db347e69c8e98..909160a0820754932c6b04624045831e45bb46cb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java @@ -46,11 +46,12 @@ public final class MaterialChooserField extends TextField<String> implements ChosenEntitySetter<Material> { public static Field<?> create(final String labelField, final boolean mandatory, - final MaterialType materialTypeOrNull, + final MaterialType materialTypeOrNull, String initialValueOrNull, final IViewContext<ICommonClientServiceAsync> viewContext) { final MaterialChooserField chosenMaterialField = - new MaterialChooserField(mandatory, materialTypeOrNull, viewContext); + new MaterialChooserField(mandatory, materialTypeOrNull, initialValueOrNull, + viewContext); Button chooseButton = new Button(viewContext.getMessage(Dict.BUTTON_BROWSE)); chooseButton.addSelectionListener(new SelectionListener<ComponentEvent>() @@ -70,8 +71,7 @@ public final class MaterialChooserField extends TextField<String> implements { DisposableEntityChooser<Material> materialBrowser = MaterialBrowserGrid.create(viewContext, materialTypeOrNull); - new EntityChooserDialog<Material>(materialBrowser, chosenMaterialField, viewContext) - .show(); + new EntityChooserDialog<Material>(materialBrowser, chosenMaterialField, viewContext).show(); } // ------------------ @@ -100,7 +100,7 @@ public final class MaterialChooserField extends TextField<String> implements } private MaterialChooserField(boolean mandatory, MaterialType materialTypeOrNull, - IViewContext<ICommonClientServiceAsync> viewContext) + String initialValueOrNull, IViewContext<ICommonClientServiceAsync> viewContext) { this.mandatory = mandatory; @@ -109,7 +109,13 @@ public final class MaterialChooserField extends TextField<String> implements setRegex(CODE_AND_TYPE_PATTERN); getMessages().setRegexText(viewContext.getMessage(Dict.INCORRECT_MATERIAL_SYNTAX)); - setEmptyText(createEmptyText(materialTypeOrNull, viewContext)); + if (initialValueOrNull != null) + { + setValue(initialValueOrNull); + } else + { + setEmptyText(createEmptyText(materialTypeOrNull, viewContext)); + } FieldUtil.setMandatoryFlag(this, mandatory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java index bef935d3567cbf8980d822f339eac193349f55a8..76acff7e1e9185e6e59dcdcd9163d4d8606b2a14 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java @@ -36,7 +36,8 @@ public class PropertyFieldFactory String fieldId, String originalRawValue, IViewContext<ICommonClientServiceAsync> viewContext) { - final Field<?> field = createField(pt, isMandatory, label, fieldId, viewContext); + final Field<?> field = + doCreateField(pt, isMandatory, label, fieldId, originalRawValue, viewContext); field.setId(fieldId); if (originalRawValue != null) { @@ -45,8 +46,9 @@ public class PropertyFieldFactory return field; } - private static Field<?> createField(final PropertyType pt, boolean isMandatory, String label, - String fieldId, IViewContext<ICommonClientServiceAsync> viewContext) + private static Field<?> doCreateField(final PropertyType pt, boolean isMandatory, String label, + String fieldId, String originalRawValue, + IViewContext<ICommonClientServiceAsync> viewContext) { final DataTypeCode dataType = pt.getDataType().getCode(); switch (dataType) @@ -66,7 +68,7 @@ public class PropertyFieldFactory return new RealField(label, isMandatory); case MATERIAL: return MaterialChooserField.create(label, isMandatory, pt.getMaterialType(), - viewContext); + originalRawValue, viewContext); } throw new IllegalStateException("unknown enum " + dataType); }