From 3ac05bdb7abe97395018f3fbd57ed143c1a018d7 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Tue, 17 Sep 2019 14:58:02 +0200 Subject: [PATCH] fix #7321: check whether text of default language is set otherwise get another language --- .../PolytomousKeyListLabelProvider.java | 62 ++++++++++++++----- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java index 9a4e1658d..a36ebbf1d 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java @@ -1,14 +1,17 @@ /** * Copyright (C) 2007 EDIT - * European Distributed Institute of Taxonomy + * European Distributed Institute of Taxonomy * http://www.e-taxonomy.eu - * + * * The contents of this file are subject to the Mozilla Public License Version 1.1 * See LICENSE.TXT at the top of this package for the full license terms. */ package eu.etaxonomy.taxeditor.editor.key.polytomous; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; import org.eclipse.jface.viewers.StyledCellLabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.StyledString.Styler; @@ -21,6 +24,7 @@ import org.eclipse.swt.widgets.Display; import eu.etaxonomy.cdm.common.CdmUtils; import eu.etaxonomy.cdm.model.common.Language; +import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.description.KeyStatement; import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; import eu.etaxonomy.taxeditor.store.CdmStore; @@ -42,7 +46,7 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { /* * (non-Javadoc) - * + * * @see * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse. * jface.viewers.ViewerCell) @@ -56,8 +60,8 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { String text = getTextForColumnIndex((PolytomousKeyNode) element, columnIndex); - - + + cell.setText(text); if (columnIndex == 4 || columnIndex == 5) { @@ -76,7 +80,7 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { case 0: return getItemNumber(node); case 1: - return getItemQuestion(node); + return getItemQuestion(node); case 2: return getItemEdgeNumber(node); case 3: @@ -111,14 +115,14 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { if (isParentRoot(node)) { return "root"; //$NON-NLS-1$ } else { - - String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY; + + String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY; return itemNumber; } } private String getItemEdgeNumber(PolytomousKeyNode node) { - String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY; + String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY; PolytomousKeyNode parent = getParent(node); int index = parent.getChildren().indexOf(node); @@ -134,22 +138,48 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { } return itemEdgeNumber + numberChar; } - + private String getItemQuestion(PolytomousKeyNode node) { if (isParentRoot(node)) { return ""; //$NON-NLS-1$ } else { - KeyStatement question = getParent(node).getQuestion(); - return question != null ? CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage())) : EMPTY; - + KeyStatement question = getParent(node).getQuestion(); + String statementLabel = CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage())); + if (StringUtils.isBlank(statementLabel)){ + Map labels = question.getLabel(); + if (labels != null && !labels.isEmpty()){ + for (LanguageString langString: labels.values()){ + if (StringUtils.isNotBlank(langString.getText())){ + statementLabel = langString.getText(); + break; + } + } + } + } + + + return question != null ? statementLabel: EMPTY; + } } private String getItemStatement(PolytomousKeyNode node) { KeyStatement statement = node.getStatement(); - return statement != null ? CdmUtils.Nz(statement.getLabelText(CdmStore - .getDefaultLanguage())) : EMPTY; + String statementLabel = CdmUtils.Nz(statement.getLabelText(CdmStore + .getDefaultLanguage())); + if (StringUtils.isBlank(statementLabel)){ + Map labels = statement.getLabel(); + if (labels != null && !labels.isEmpty()){ + for (LanguageString langString: labels.values()){ + if (StringUtils.isNotBlank(langString.getText())){ + statementLabel = langString.getText(); + break; + } + } + } + } + return statementLabel != null ? statementLabel: EMPTY; } private String getItemLink(PolytomousKeyNode node) { @@ -157,7 +187,7 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider { return linkString; } - + private String getItemTaxon(PolytomousKeyNode node) { String taxonString = node.getTaxon() != null ? node.getTaxon().getName().getTitleCache() : EMPTY; -- 2.34.1