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 06ba2ffa81a3939ec89333eaba00d86e470bdeb2..d9272ee5bfc52ff55d4a82f98daa91dc5f037498 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());