c6b9e4aaae2558c1d610b5963ecbbe1e4a5ad21a
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / uses / UsesLabelProvider.java
1 package eu.etaxonomy.taxeditor.editor.view.uses;
2
3 import java.util.Arrays;
4 import java.util.List;
5 import java.util.Map;
6
7 import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;
8
9 import org.eclipse.jface.viewers.ColumnLabelProvider;
10 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
11 import org.eclipse.jface.viewers.StyledString;
12
13 import eu.etaxonomy.cdm.api.service.DefaultCategoricalDescriptionBuilder;
14 import eu.etaxonomy.cdm.api.service.DescriptionBuilder;
15 import eu.etaxonomy.cdm.model.common.Language;
16 import eu.etaxonomy.cdm.model.common.LanguageString;
17 import eu.etaxonomy.cdm.model.description.CategoricalData;
18 import eu.etaxonomy.cdm.model.description.DescriptionBase;
19 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
20 import eu.etaxonomy.cdm.model.description.State;
21 import eu.etaxonomy.cdm.model.description.StateData;
22 import eu.etaxonomy.cdm.model.description.TextData;
23 import eu.etaxonomy.taxeditor.store.CdmStore;
24
25 public class UsesLabelProvider extends ColumnLabelProvider implements
26 IStyledLabelProvider {
27
28 private static DescriptionBuilder<CategoricalData> categoricalDescriptionBuilder = new DefaultCategoricalDescriptionBuilder();
29 public String getText(Object element) {
30 String text = "";
31 /*
32 * return DescriptionHelper.getLabel(element);
33 *
34 * for (Marker marker : element.getMarkers()) { if
35 * (marker.getMarkerType().getTitleCache().equals("use")) { return
36 * "Use: " + text; } }
37 */
38 if (element instanceof DescriptionBase) {
39 text = ((DescriptionBase) element).getTitleCache();
40 if (text == null || text.length() == 0) {
41 text = "Use: No label provided";
42 }
43 else {
44 text = "Use: " + text;
45 }
46 }
47 else if (element instanceof CategoricalData) {
48 //String text = "";
49 //TextData textData = categoricalDescriptionBuilder.build((CategoricalData) element, getLanguageList());
50 if (((CategoricalData) element).getStates() != null) {
51 for (StateData statedata : ((CategoricalData) element).getStates()) {
52 if(statedata.getState() != null) {
53 text = text + statedata.getState().getTitleCache();
54 }
55 else {
56 text = "No data provided";
57 }
58 }
59 }
60 if (((CategoricalData) element).getStatesOnly() != null) {
61 for (State state : ((CategoricalData) element).getStatesOnly()) {
62 if (state != null) {
63 text = text + state.getTitleCache();
64 }
65 else {
66 text = "No data provided";
67 }
68 }
69 }
70
71 //text = textData.getText(CdmStore.getDefaultLanguage());
72 if (text == null || text.length() == 0) {
73 text = "No data provided";
74 }
75 return text;
76 }
77 /*else if (element instanceof DescriptionElementBase) {
78 Map useRecordText = ((DescriptionElementBase) element).getModifyingText();
79
80
81 if (text == null || text.length() == 0) {
82 text = "Use Record: No label provided";
83 }
84 text = useRecordText.toString();
85 //text = "Something else";
86 }*/
87 else{
88 text = "Use Record";
89 }
90
91 return text;
92 }
93
94 @Override
95 public StyledString getStyledText(Object element) {
96 return new StyledString(this.getText(element),
97 StyledString.QUALIFIER_STYLER);
98 }
99
100 private static List<Language> getLanguageList(){
101 return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
102 }
103
104 }