Show path of structure and property terms in character details view
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 4 Apr 2019 13:11:46 +0000 (15:11 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 4 Apr 2019 13:18:55 +0000 (15:18 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDetailElement.java

index 62ffe21ecb1555b0ea6a655181b5ce20e34f6632..88925279df18f2dcda0de86139d5e1815594de36 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.FeatureNode;
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
@@ -71,13 +72,13 @@ public class CharacterDetailElement extends AbstractCdmDetailElement<Character>
            Label lblStructure = new Label(formElement.getLayoutComposite(), style);
            lblStructure.setText("Structure");
            Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
-           lblStructureText.setText(entity.getStructure().getTerm().getLabel());
+           lblStructureText.setText(getPath(entity.getStructure()));
            lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
            Label lblProperty = new Label(formElement.getLayoutComposite(), style);
            lblProperty.setText("Property");
            Label lblPropertyText = new Label(formElement.getLayoutComposite(), style);
            lblPropertyText.setForeground(ColorResources.getColor(Resources.BLACK));
-           lblPropertyText.setText(entity.getProperty().getTerm().getLabel());
+           lblPropertyText.setText(getPath(entity.getProperty()));
 
         comboStructuralModifier = formFactory.createDefinedTermComboElement(TermType.StructureModifier, formElement, "Structural Modifier", entity.getStructureModifier(), style);
 
@@ -111,6 +112,16 @@ public class CharacterDetailElement extends AbstractCdmDetailElement<Character>
         }
     }
 
+       private String getPath(FeatureNode node){
+           String path = node.getTerm().getLabel();
+           FeatureNode parent = node.getParent();
+           while(parent != null && parent.getTerm()!=null){
+               path = parent.getTerm().getLabel() + "/" + path;
+               parent = parent.getParent();
+           }
+           return path;
+       }
+
     @Override
     public void setEntity(Character entity) {
         super.setEntity(entity);