From 139b1db075c9ac3eab65fedcf31655abbf3e8bff Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 19 Mar 2012 13:20:51 +0000 Subject: [PATCH] bug fixed: If a sample property of type MATERIAL or VOCABULARY is a dynamic property and not yet calculated all sample grids showing such samples had lead to an exception. SVN: 24748 --- .../shared/util/TypedTableModelBuilder.java | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java index 06ba2ffa81a..d9272ee5bfc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilder.java @@ -45,6 +45,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; 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.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; @@ -52,6 +53,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTermTableCell; /** @@ -203,12 +205,27 @@ public class TypedTableModelBuilder<T extends Serializable> switch (dataType) { case MATERIAL: - value = - new EntityTableCell(EntityKind.MATERIAL, property.getMaterial() - .getIdentifier()); + + Material material = property.getMaterial(); + if (material == null) // if not yet calculated dynamic property + { + value = new StringTableCell(""); + } else + { + value = + new EntityTableCell(EntityKind.MATERIAL, + material.getIdentifier()); + } break; case CONTROLLEDVOCABULARY: - value = new VocabularyTermTableCell(property.getVocabularyTerm()); + VocabularyTerm vocabularyTerm = property.getVocabularyTerm(); + if (vocabularyTerm == null) // if not yet calculated dynamic property + { + value = new StringTableCell(""); + } else + { + value = new VocabularyTermTableCell(vocabularyTerm); + } break; default: value = DataTypeUtils.convertTo(dataType, property.tryGetAsString()); -- GitLab