From d41fe39f1950253669ba3c5be2aba3598a0045b2 Mon Sep 17 00:00:00 2001 From: izabel <izabel> Date: Tue, 25 Nov 2008 12:18:47 +0000 Subject: [PATCH] [LMS-651] allow to register sample with properties of type different than string SVN: 9095 --- .../client/application/GenericConstants.java | 2 ++ .../application/renderer/DateRenderer.java | 5 ++++- .../util/SampleToRegisterTranslator.java | 8 +++++--- .../sample/GenericSampleRegistrationForm.java | 19 ++++++++++++++++++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java index 55154a14b30..a4c80dc8741 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/GenericConstants.java @@ -43,4 +43,6 @@ public class GenericConstants } public final static String CODE_PATTERN = "^[A-Z0-9_\\-]+$"; + + public static final String DEFAULT_DATE_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss zzz"; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/DateRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/DateRenderer.java index d340dd85428..984eef1fa91 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/DateRenderer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/DateRenderer.java @@ -20,6 +20,8 @@ import java.util.Date; import com.google.gwt.i18n.client.DateTimeFormat; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; + /** * A <i>static</i> class to render {@link java.util.Date}. * @@ -30,7 +32,8 @@ public final class DateRenderer /** * Default date format. */ - private static final String DEFAULT_DATE_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss zzz"; + private static final String DEFAULT_DATE_FORMAT_PATTERN = + GenericConstants.DEFAULT_DATE_FORMAT_PATTERN; /** * Default {@link DateTimeFormat}. diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/SampleToRegisterTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/SampleToRegisterTranslator.java index 42280c583bc..18f1c2f5250 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/SampleToRegisterTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/SampleToRegisterTranslator.java @@ -28,6 +28,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureE import ch.systemsx.cisd.openbis.generic.shared.dto.SampleToRegisterDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory; +import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityDataType; +import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityPropertyValue; /** * @author Izabela Adamczyk @@ -57,9 +59,9 @@ public class SampleToRegisterTranslator for (SampleProperty property : properties) { PropertyType propertyType = property.getEntityTypePropertyType().getPropertyType(); - simpleProperties.add(new SimpleEntityProperty(propertyType.getCode(), propertyType - .getLabel(), DataTypeTranslator.translate(propertyType.getDataType()), property - .getValue())); + EntityDataType dataType = DataTypeTranslator.translate(propertyType.getDataType()); + simpleProperties.add(EntityPropertyValue.createFromUntyped(property.getValue(), + dataType).createSimple(propertyType.getCode(), propertyType.getLabel())); } result.setProperties(simpleProperties.toArray(new SimpleEntityProperty[0])); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java index 19a6a2a4500..3b485adaf4b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample; import java.util.ArrayList; +import java.util.Date; import java.util.List; import com.extjs.gxt.ui.client.Events; @@ -36,6 +37,7 @@ import com.extjs.gxt.ui.client.widget.form.LabelField; import com.extjs.gxt.ui.client.widget.form.MultiField; import com.extjs.gxt.ui.client.widget.form.TextField; import com.extjs.gxt.ui.client.widget.form.Validator; +import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.ListBox; @@ -225,6 +227,21 @@ public final class GenericSampleRegistrationForm extends FormPanel } } + String valueToString(Object value) + { + if (value == null) + { + return null; + } else if (value instanceof Date) + { + return DateTimeFormat.getFormat(GenericConstants.DEFAULT_DATE_FORMAT_PATTERN).format( + (Date) value); + } else + { + return value.toString(); + } + } + private void submitForm() { if (isValid()) @@ -238,7 +255,7 @@ public final class GenericSampleRegistrationForm extends FormPanel { SampleTypePropertyType stpt = field.getData(ETPT); SampleProperty sp = new SampleProperty(); - sp.setValue(field.getValue().toString()); + sp.setValue(valueToString(field.getValue())); sp.setEntityTypePropertyType(stpt); sampleToRegister.addProperty(sp); } -- GitLab