2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.editor
.key
.polytomous
;
12 import org
.apache
.commons
.lang
.StringUtils
;
13 import org
.eclipse
.draw2d
.IFigure
;
14 import org
.eclipse
.jface
.viewers
.LabelProvider
;
15 import org
.eclipse
.swt
.graphics
.Color
;
16 import org
.eclipse
.zest
.core
.viewers
.IEntityStyleProvider
;
18 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
19 import eu
.etaxonomy
.cdm
.model
.description
.KeyStatement
;
20 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
21 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKeyNode
;
22 import eu
.etaxonomy
.taxeditor
.model
.PolytomousKeyRelationship
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
28 * @created Mar 30, 2011
31 class PolytomousKeyLabelProvider
extends LabelProvider
implements
32 IEntityStyleProvider
{
34 public static final String LEAF_BUT_NO_TAXON
= "leaf but no taxon";
35 public static final String NO_NODE_NUMBER
= "No node number set";
36 public static final String EMPTY
= "";
39 public String
getText(Object element
) {
40 if (element
instanceof PolytomousKey
) {
41 return ((PolytomousKey
) element
).getTitleCache();
42 } else if (element
instanceof PolytomousKeyNode
) {
43 PolytomousKeyNode keyNode
= (PolytomousKeyNode
) element
;
45 if (keyNode
.isLeaf()) {
46 if (keyNode
.getTaxon() != null) {
47 return keyNode
.getTaxon().getName().getTitleCache();
49 return LEAF_BUT_NO_TAXON
;
52 if (keyNode
.getNodeNumber() != null) {
53 String statementLabel
= "";
54 String nodeNumber
= keyNode
.getNodeNumber().toString();
56 KeyStatement question
= keyNode
.getQuestion();
58 if (question
!= null) {
60 + question
.getLabelText(CdmStore
61 .getDefaultLanguage());
64 return String
.format("%s. %s", nodeNumber
, statementLabel
);
66 return NO_NODE_NUMBER
;
68 } else if (element
instanceof PolytomousKeyRelationship
) {
69 PolytomousKeyRelationship relationship
= (PolytomousKeyRelationship
) element
;
70 if (relationship
.getSource() instanceof PolytomousKeyNode
) {
71 PolytomousKeyNode destinationNode
= (PolytomousKeyNode
) relationship
74 KeyStatement statement
= destinationNode
.getStatement();
76 if (statement
!= null) {
77 Language language
= CdmStore
.getDefaultLanguage();
78 String statementLabel
= statement
.getLabelText(language
);
80 return StringUtils
.isEmpty(statementLabel
) ? EMPTY
92 * org.eclipse.zest.core.viewers.IEntityStyleProvider#fisheyeNode(java.lang
96 public boolean fisheyeNode(Object arg0
) {
97 // TODO Auto-generated method stub
105 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBackgroundColour
109 public Color
getBackgroundColour(Object arg0
) {
110 // TODO Auto-generated method stub
118 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderColor(java
122 public Color
getBorderColor(Object arg0
) {
123 // TODO Auto-generated method stub
131 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderHighlightColor
135 public Color
getBorderHighlightColor(Object arg0
) {
136 // TODO Auto-generated method stub
144 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderWidth(java
148 public int getBorderWidth(Object arg0
) {
156 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getForegroundColour
160 public Color
getForegroundColour(Object arg0
) {
161 // TODO Auto-generated method stub
169 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getNodeHighlightColor
173 public Color
getNodeHighlightColor(Object arg0
) {
174 // TODO Auto-generated method stub
182 * org.eclipse.zest.core.viewers.IEntityStyleProvider#getTooltip(java.lang
186 public IFigure
getTooltip(Object arg0
) {