Improving polytomous key handling
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / key / polytomous / PolytomousKeyLabelProvider.java
index dc67f8c7bf3228204badaa59a68dd8f0ff5f398c..b1bf0825d1c19cb90b563f39a762ee9502f2bf15 100644 (file)
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import org.apache.commons.lang.StringUtils;
+import org.eclipse.draw2d.IFigure;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.zest.core.viewers.IEntityStyleProvider;
 
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -26,7 +29,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Mar 30, 2011
  * @version 1.0
  */
-class PolytomousKeyLabelProvider extends LabelProvider {
+class PolytomousKeyLabelProvider extends LabelProvider implements
+               IEntityStyleProvider {
 
        public static final String LEAF_BUT_NO_TAXON = "leaf but no taxon";
        public static final String NO_NODE_NUMBER = "No node number set";
@@ -50,11 +54,11 @@ class PolytomousKeyLabelProvider extends LabelProvider {
                                String statementLabel = "";
                                String nodeNumber = keyNode.getNodeNumber().toString();
 
-                               KeyStatement statement = keyNode.getStatement();
+                               KeyStatement question = keyNode.getQuestion();
 
-                               if (statement != null) {
+                               if (question != null) {
                                        statementLabel += " "
-                                                       + statement.getLabelText(CdmStore
+                                                       + question.getLabelText(CdmStore
                                                                        .getDefaultLanguage());
                                }
 
@@ -64,22 +68,123 @@ class PolytomousKeyLabelProvider extends LabelProvider {
                        }
                } else if (element instanceof PolytomousKeyRelationship) {
                        PolytomousKeyRelationship relationship = (PolytomousKeyRelationship) element;
-                       if (relationship.source instanceof PolytomousKeyNode) {
-                               PolytomousKeyNode sourceNode = (PolytomousKeyNode) relationship.source;
+                       if (relationship.getSource() instanceof PolytomousKeyNode) {
+                               PolytomousKeyNode destinationNode = (PolytomousKeyNode) relationship
+                                               .getDestination();
 
-                               KeyStatement question = (KeyStatement) HibernateProxyHelper
-                                               .deproxy(sourceNode.getQuestion());
+                               KeyStatement statement = destinationNode.getStatement();
 
-                               if (question != null) {
+                               if (statement != null) {
                                        Language language = CdmStore.getDefaultLanguage();
-                                       String questionLabel = sourceNode.getQuestion()
-                                                       .getLabelText(language);
+                                       String statementLabel = statement.getLabelText(language);
 
-                                       return StringUtils.isEmpty(questionLabel) ? EMPTY
-                                                       : questionLabel;
+                                       return StringUtils.isEmpty(statementLabel) ? EMPTY
+                                                       : statementLabel;
                                }
                        }
                }
                return EMPTY;
        }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#fisheyeNode(java.lang
+        * .Object)
+        */
+       @Override
+       public boolean fisheyeNode(Object arg0) {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBackgroundColour
+        * (java.lang.Object)
+        */
+       @Override
+       public Color getBackgroundColour(Object arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderColor(java
+        * .lang.Object)
+        */
+       @Override
+       public Color getBorderColor(Object arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderHighlightColor
+        * (java.lang.Object)
+        */
+       @Override
+       public Color getBorderHighlightColor(Object arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderWidth(java
+        * .lang.Object)
+        */
+       @Override
+       public int getBorderWidth(Object arg0) {
+               return 0;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getForegroundColour
+        * (java.lang.Object)
+        */
+       @Override
+       public Color getForegroundColour(Object arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getNodeHighlightColor
+        * (java.lang.Object)
+        */
+       @Override
+       public Color getNodeHighlightColor(Object arg0) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getTooltip(java.lang
+        * .Object)
+        */
+       @Override
+       public IFigure getTooltip(Object arg0) {
+               return null;
+       }
 }
\ No newline at end of file