diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractDataMergingReportingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractDataMergingReportingPlugin.java index e79e9e4289d0e6148c418a014925cae9cd66e392..f14e7a47104dfb650f95574397a9ac5222abe248 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractDataMergingReportingPlugin.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractDataMergingReportingPlugin.java @@ -37,6 +37,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableMode import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; +import ch.systemsx.cisd.openbis.generic.shared.util.TableCellUtil; /** * Common super class of all tsv-based data merging reporting plugins. @@ -113,7 +114,7 @@ public abstract class AbstractDataMergingReportingPlugin extends AbstractDatasto } for (String token : dataTokens) { - row.add(new StringTableCell(token)); + row.add(TableCellUtil.createTableCell(token)); } builder.addRow(row); } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TSVViewReportingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TSVViewReportingPlugin.java index 367686f8226d986b1b3ab8d3b6b6251b282d62f3..5da915daf8e054b696dbdbee5bf4521a3a5ebcef 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TSVViewReportingPlugin.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/TSVViewReportingPlugin.java @@ -27,9 +27,9 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.DatasetFileLine import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IReportingPluginTask; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; +import ch.systemsx.cisd.openbis.generic.shared.util.TableCellUtil; /** * Shows the data as a table if one 'main data set' file exists and is a 'tsv' file. @@ -67,7 +67,7 @@ public class TSVViewReportingPlugin extends AbstractDataMergingReportingPlugin i List<ISerializableComparable> row = new ArrayList<ISerializableComparable>(); for (String token : line) { - row.add(new StringTableCell(token)); + row.add(TableCellUtil.createTableCell(token)); } tableBuilder.addRow(row); } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/IterativeTableModelBuilder.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/IterativeTableModelBuilder.java index f4ac89fdf36a23f71e1a274d2bbe4576012d5cb7..e7f63d2b7123263d8b2d75e76999180d591681ae 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/IterativeTableModelBuilder.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/IterativeTableModelBuilder.java @@ -30,10 +30,10 @@ import org.apache.log4j.Logger; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow; +import ch.systemsx.cisd.openbis.generic.shared.util.TableCellUtil; /** * A table model builder that can take new columns and rows iteratively. @@ -140,7 +140,7 @@ public class IterativeTableModelBuilder for (TableModelColumnHeader header : headers) { final String valueOrNull = columnMap.get(header.getTitle()).get(rowId); - rowValues.add(new StringTableCell((valueOrNull == null) ? "" : valueOrNull)); + rowValues.add(TableCellUtil.createTableCell((valueOrNull == null) ? "" : valueOrNull)); } rows.add(new TableModelRow(rowValues)); } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/MergedColumnDataReportingPluginTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/MergedColumnDataReportingPluginTest.java index 75d4d3736229683547dab43a6c37fd53bf5f7fa7..51362bcdb1763621ce70faedd882761ef26b1e79 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/MergedColumnDataReportingPluginTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/MergedColumnDataReportingPluginTest.java @@ -16,17 +16,21 @@ package ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard; -import static org.testng.AssertJUnit.assertEquals; - import java.io.File; import java.util.Arrays; +import java.util.List; import java.util.Properties; import org.apache.commons.lang.StringUtils; +import org.testng.AssertJUnit; import org.testng.annotations.Test; import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IReportingPluginTask; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DoubleTableCell; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IntegerTableCell; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; @@ -35,7 +39,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription; * * @author Bernd Rinn */ -public class MergedColumnDataReportingPluginTest +public class MergedColumnDataReportingPluginTest extends AssertJUnit { private final static File dir = @@ -75,13 +79,20 @@ public class MergedColumnDataReportingPluginTest assertEquals("val3", model.getHeader().get(3).getTitle()); assertEquals(4, model.getRows().size()); assertEquals("one\t1\t\t0", StringUtils.join(model.getRows().get(0).getValues(), '\t')); - assertEquals("two\t2.2\t17\t1.9e+5", StringUtils.join(model.getRows().get(1).getValues(), - '\t')); - assertEquals("three\tCC\t42\t-8.2", StringUtils.join(model.getRows().get(2).getValues(), - '\t')); + assertRow("two\t2.2\t17\t190000.0", model, 1); + assertRow("three\tCC\t42\t-8.2", model, 2); assertEquals("four\t\t105\t", StringUtils.join(model.getRows().get(3).getValues(), '\t')); } + private void assertRow(String expectedRow, final TableModel model, int index) + { + List<ISerializableComparable> values = model.getRows().get(index).getValues(); + assertEquals(expectedRow, StringUtils.join(values, '\t')); + assertTrue(values.get(0).getClass().getName(), values.get(0) instanceof StringTableCell); + assertTrue(values.get(2).getClass().getName(), values.get(2) instanceof IntegerTableCell); + assertTrue(values.get(3).getClass().getName(), values.get(3) instanceof DoubleTableCell); + } + private DatasetDescription createDatasetDescription(String location) { return new DatasetDescription("", location, "", "", "", "", null, null);