Improved formatting of labels in concept view
authorn.hoffmann <n.hoffmann@localhost>
Wed, 30 Nov 2011 12:56:57 +0000 (12:56 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 30 Nov 2011 12:56:57 +0000 (12:56 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java

index c20069909641b9b9512a4af1e638779acd4f4531..937147c2d77b02b9382347a1e3018219bbc08143 100644 (file)
@@ -15,9 +15,16 @@ import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.swt.graphics.Image;
 
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.reference.IReference;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -32,9 +39,7 @@ public class ConceptLabelProvider extends LabelProvider implements IStyledLabelP
        @Override
        public Image getImage(Object element) {
                if(element instanceof TaxonRelationship){
-                       TaxonRelationshipType type = ((TaxonRelationship) element).getType();
-                       
-                       return getTaxonRelationshipImage(type);
+                       return getTaxonRelationshipImage((TaxonRelationship) element);
                }
                return super.getImage(element);
        }
@@ -45,14 +50,37 @@ public class ConceptLabelProvider extends LabelProvider implements IStyledLabelP
        @Override
        public String getText(Object element) {
                if(element instanceof TaxonRelationship){
-                       TaxonRelationship relationship = (TaxonRelationship) element;
-                       
-                       return String.format("%s %s %s", relationship.getFromTaxon(), relationship.getType().getLabel(), relationship.getToTaxon());
+                       return formatRelationship((TaxonRelationship) element);
                }
                
                return "";
        }
        
+       /**
+        * Creates a string that holds a representation of the {@link TaxonRelationship} in relation to
+        * the accepted taxon of the currently active {@link MultiPageTaxonEditor}.
+        * 
+        * @param relationship
+        * @return a formatted String representation of the relationship
+        */
+       private String formatRelationship(TaxonRelationship relationship){
+               Taxon acceptedTaxon = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon();
+               boolean inverse = relationship.getFromTaxon().equals(acceptedTaxon) ? true : false;
+               
+               TaxonRelationshipType type = relationship.getType();
+               Representation representation = inverse ? type.getInverseRepresentation(Language.ENGLISH()) : type.getRepresentation(Language.ENGLISH());
+               
+               Taxon relatedTaxon = inverse ? relationship.getToTaxon() : relationship.getFromTaxon();
+               
+               String symbolString = representation.getAbbreviatedLabel();
+               String relatedTaxonString = relatedTaxon.getName().getTitleCache();
+               String secReferenceString = relatedTaxon.getSec().getTitleCache(); 
+               
+               String string = String.format("%s %s sensu %s", symbolString, relatedTaxonString, secReferenceString);
+               
+               return string;
+       }
+       
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
         */
@@ -62,11 +90,14 @@ public class ConceptLabelProvider extends LabelProvider implements IStyledLabelP
        }
 
        /**
+        * TODO we will get the proper relationship symbol from the type's abbreviated label as a character.
+        * The image may be omitted then.
+        * 
         * @param type
         * @return
         */
-       public Image getTaxonRelationshipImage(TaxonRelationshipType type) {
-               
+       private Image getTaxonRelationshipImage(TaxonRelationship relationship) {
+               TaxonRelationshipType type = (relationship).getType();
                return ImageResources.getImage(ImageResources.CONCEPT_ICON);
        }
 }
index 4aa081d5c94a35a9dae38bad8ba35ba95d9dabec..f44d0b1516d56081ee353471449bca8fe3db3df1 100644 (file)
@@ -58,8 +58,7 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart {
                }
                
                if(part instanceof AbstractGraphKeyEditor){
-                       showEmptyPage();
-                       return;
+                       
                }
                
                if(part instanceof MultiPageTaxonEditor){