Revision 3ac05bdb
Added by Katja Luther over 4 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java | ||
---|---|---|
1 | 1 |
/** |
2 | 2 |
* Copyright (C) 2007 EDIT |
3 |
* European Distributed Institute of Taxonomy
|
|
3 |
* European Distributed Institute of Taxonomy |
|
4 | 4 |
* http://www.e-taxonomy.eu |
5 |
*
|
|
5 |
* |
|
6 | 6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
7 | 7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
8 | 8 |
*/ |
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.taxeditor.editor.key.polytomous; |
11 | 11 |
|
12 |
import java.util.Map; |
|
13 |
|
|
14 |
import org.apache.commons.lang.StringUtils; |
|
12 | 15 |
import org.eclipse.jface.viewers.StyledCellLabelProvider; |
13 | 16 |
import org.eclipse.jface.viewers.StyledString; |
14 | 17 |
import org.eclipse.jface.viewers.StyledString.Styler; |
... | ... | |
21 | 24 |
|
22 | 25 |
import eu.etaxonomy.cdm.common.CdmUtils; |
23 | 26 |
import eu.etaxonomy.cdm.model.common.Language; |
27 |
import eu.etaxonomy.cdm.model.common.LanguageString; |
|
24 | 28 |
import eu.etaxonomy.cdm.model.description.KeyStatement; |
25 | 29 |
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; |
26 | 30 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
... | ... | |
42 | 46 |
|
43 | 47 |
/* |
44 | 48 |
* (non-Javadoc) |
45 |
*
|
|
49 |
* |
|
46 | 50 |
* @see |
47 | 51 |
* org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse. |
48 | 52 |
* jface.viewers.ViewerCell) |
... | ... | |
56 | 60 |
|
57 | 61 |
String text = getTextForColumnIndex((PolytomousKeyNode) element, |
58 | 62 |
columnIndex); |
59 |
|
|
60 |
|
|
63 |
|
|
64 |
|
|
61 | 65 |
cell.setText(text); |
62 | 66 |
|
63 | 67 |
if (columnIndex == 4 || columnIndex == 5) { |
... | ... | |
76 | 80 |
case 0: |
77 | 81 |
return getItemNumber(node); |
78 | 82 |
case 1: |
79 |
return getItemQuestion(node);
|
|
83 |
return getItemQuestion(node); |
|
80 | 84 |
case 2: |
81 | 85 |
return getItemEdgeNumber(node); |
82 | 86 |
case 3: |
... | ... | |
111 | 115 |
if (isParentRoot(node)) { |
112 | 116 |
return "root"; //$NON-NLS-1$ |
113 | 117 |
} else { |
114 |
|
|
115 |
String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY;
|
|
118 |
|
|
119 |
String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY; |
|
116 | 120 |
return itemNumber; |
117 | 121 |
} |
118 | 122 |
} |
119 | 123 |
|
120 | 124 |
private String getItemEdgeNumber(PolytomousKeyNode node) { |
121 |
String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY;
|
|
125 |
String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY; |
|
122 | 126 |
PolytomousKeyNode parent = getParent(node); |
123 | 127 |
int index = parent.getChildren().indexOf(node); |
124 | 128 |
|
... | ... | |
134 | 138 |
} |
135 | 139 |
return itemEdgeNumber + numberChar; |
136 | 140 |
} |
137 |
|
|
141 |
|
|
138 | 142 |
private String getItemQuestion(PolytomousKeyNode node) { |
139 | 143 |
if (isParentRoot(node)) { |
140 | 144 |
return ""; //$NON-NLS-1$ |
141 | 145 |
} else { |
142 |
KeyStatement question = getParent(node).getQuestion(); |
|
143 |
return question != null ? CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage())) : EMPTY; |
|
144 |
|
|
146 |
KeyStatement question = getParent(node).getQuestion(); |
|
147 |
String statementLabel = CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage())); |
|
148 |
if (StringUtils.isBlank(statementLabel)){ |
|
149 |
Map<Language, LanguageString> labels = question.getLabel(); |
|
150 |
if (labels != null && !labels.isEmpty()){ |
|
151 |
for (LanguageString langString: labels.values()){ |
|
152 |
if (StringUtils.isNotBlank(langString.getText())){ |
|
153 |
statementLabel = langString.getText(); |
|
154 |
break; |
|
155 |
} |
|
156 |
} |
|
157 |
} |
|
158 |
} |
|
159 |
|
|
160 |
|
|
161 |
return question != null ? statementLabel: EMPTY; |
|
162 |
|
|
145 | 163 |
} |
146 | 164 |
|
147 | 165 |
} |
148 | 166 |
|
149 | 167 |
private String getItemStatement(PolytomousKeyNode node) { |
150 | 168 |
KeyStatement statement = node.getStatement(); |
151 |
return statement != null ? CdmUtils.Nz(statement.getLabelText(CdmStore |
|
152 |
.getDefaultLanguage())) : EMPTY; |
|
169 |
String statementLabel = CdmUtils.Nz(statement.getLabelText(CdmStore |
|
170 |
.getDefaultLanguage())); |
|
171 |
if (StringUtils.isBlank(statementLabel)){ |
|
172 |
Map<Language, LanguageString> labels = statement.getLabel(); |
|
173 |
if (labels != null && !labels.isEmpty()){ |
|
174 |
for (LanguageString langString: labels.values()){ |
|
175 |
if (StringUtils.isNotBlank(langString.getText())){ |
|
176 |
statementLabel = langString.getText(); |
|
177 |
break; |
|
178 |
} |
|
179 |
} |
|
180 |
} |
|
181 |
} |
|
182 |
return statementLabel != null ? statementLabel: EMPTY; |
|
153 | 183 |
} |
154 | 184 |
|
155 | 185 |
private String getItemLink(PolytomousKeyNode node) { |
... | ... | |
157 | 187 |
|
158 | 188 |
return linkString; |
159 | 189 |
} |
160 |
|
|
190 |
|
|
161 | 191 |
private String getItemTaxon(PolytomousKeyNode node) { |
162 | 192 |
String taxonString = node.getTaxon() != null ? node.getTaxon().getName().getTitleCache() : EMPTY; |
163 | 193 |
|
Also available in: Unified diff
fix #7321: check whether text of default language is set otherwise get another language