From 37912a77639314bc2c7edc96a0e3cf2fa95b6470 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 17 Mar 2009 13:32:53 +0000 Subject: [PATCH] LMS-757 bugfix: edit material property SVN: 10263 --- .../ui/field/MaterialChooserField.java | 18 ++++++++++++------ .../ui/field/PropertyFieldFactory.java | 10 ++++++---- 2 files changed, 18 insertions(+), 10 deletions(-) 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 b1350b73e8b..909160a0820 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 bef935d3567..76acff7e1e9 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); } -- GitLab