Fix "feature" column
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 25 Sep 2019 09:48:50 +0000 (11:48 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 25 Sep 2019 09:48:50 +0000 (11:48 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java

index 1e3c5530ac6a771f7a9054afb7b46fb7b688b17a..0ae611584cf96969a625d487198e20035dd14c91 100644 (file)
@@ -25,6 +25,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.Feature;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -44,13 +45,6 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider {
        // TODO make this configurable via preferences
        private static final String INCREMENTOR_CHARACTER = "'"; //$NON-NLS-1$
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.
-        * jface.viewers.ViewerCell)
-        */
        @Override
        public void update(ViewerCell cell) {
                Object element = cell.getElement();
@@ -95,17 +89,22 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider {
                return EMPTY;
        }
 
-    /**
-     * @param node
-     * @return
-     */
     private String getFeature(PolytomousKeyNode node) {
-        return node!=null?(node.getFeature()!=null?node.getFeature().getLabel():EMPTY):EMPTY;
+        if (isParentRoot(node)) {
+            return ""; //$NON-NLS-1$
+        } else {
+            Feature parentFeature = getParent(node).getFeature();
+            if (parentFeature == null){
+                return EMPTY;
+            }
+            String statementLabel = CdmUtils.Nz(parentFeature.getLabel(CdmStore.getDefaultLanguage()));
+            if(CdmUtils.isBlank(statementLabel)){
+                statementLabel = parentFeature.getLabel();
+            }
+            return statementLabel;
+        }
     }
 
-       /**
-        * @return
-        */
        private Styler getStyler() {
                if (styler == null) {
                        styler = new Styler() {