From 613a70cfcf47250d6ff922cc21310eb8a1e7fc99 Mon Sep 17 00:00:00 2001 From: izabel <izabel> Date: Tue, 27 Oct 2009 11:48:36 +0000 Subject: [PATCH] [LMS-1217] renderer for properties of type REAL SVN: 13082 --- .../renderer/AbstractPropertyColRenderer.java | 8 ++- .../renderer/RealPropertyColRenderer.java | 56 +++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/RealPropertyColRenderer.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/AbstractPropertyColRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/AbstractPropertyColRenderer.java index 8c967240acb..ad5e214d2c5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/AbstractPropertyColRenderer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/AbstractPropertyColRenderer.java @@ -25,9 +25,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder /** * An abstract decorator for {@link EntityPropertyColDef} to be used in grids for rendering values * in a different way in grids than in export. <br> - * It changes {@link EntityPropertyColDef#getValue(GridRowModel)} behavior distinguishing certain property - * types so in grid there can be e.g. a link displayed for hyperlink property. Other methods are - * delegated without any change. + * It changes {@link EntityPropertyColDef#getValue(GridRowModel)} behavior distinguishing certain + * property types so in grid there can be e.g. a link displayed for hyperlink property. Other + * methods are delegated without any change. * * @author Piotr Buczek */ @@ -43,6 +43,8 @@ public abstract class AbstractPropertyColRenderer<T extends IEntityPropertiesHol { switch (colDef.getDataTypeCode()) { + case REAL: + return new RealPropertyColRenderer<S>(colDef); case HYPERLINK: return new HyperlinkPropertyColRenderer<S>(colDef); case MULTILINE_VARCHAR: diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/RealPropertyColRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/RealPropertyColRenderer.java new file mode 100644 index 00000000000..3d6d009d219 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/renderer/RealPropertyColRenderer.java @@ -0,0 +1,56 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer; + +import com.google.gwt.i18n.client.NumberFormat; + +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.EntityPropertyColDef; +import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder; + +/** + * An {@link AbstractPropertyColRenderer} which renders Real values. + * + * @author Izabela Adamczyk + */ +class RealPropertyColRenderer<T extends IEntityPropertiesHolder> extends + AbstractPropertyColRenderer<T> +{ + + private static final int MAX_DIGITAL_FORMAT_LENGTH = 10; + private static final String SCIENTIFIC_FORMAT = "0.0000E00"; + private static final String DIGITAL_FORMAT = "0.0000"; + + public RealPropertyColRenderer(EntityPropertyColDef<T> colDef) + { + super(colDef); + } + + @Override + protected String renderValue(GridRowModel<T> entity) + { + String value = colDef.getValue(entity); + double doubleValue = Double.parseDouble(value); + String formattedValue = NumberFormat.getFormat(DIGITAL_FORMAT).format(doubleValue); + if (formattedValue.length() > MAX_DIGITAL_FORMAT_LENGTH) + { + formattedValue = NumberFormat.getFormat(SCIENTIFIC_FORMAT).format(doubleValue); + } + return formattedValue; + } + +} -- GitLab