Revision e717eb17
Added by Cherian Mathew almost 11 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermLabelProvider.java | ||
---|---|---|
10 | 10 |
package eu.etaxonomy.taxeditor.editor.definedterm; |
11 | 11 |
|
12 | 12 |
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider; |
13 |
import org.eclipse.jface.viewers.StyledString.Styler; |
|
13 | 14 |
import org.eclipse.jface.viewers.LabelProvider; |
15 |
import org.eclipse.jface.viewers.StyledCellLabelProvider; |
|
14 | 16 |
import org.eclipse.jface.viewers.StyledString; |
17 |
import org.eclipse.jface.viewers.ViewerCell; |
|
18 |
import org.eclipse.swt.SWT; |
|
19 |
import org.eclipse.swt.custom.StyleRange; |
|
20 |
import org.eclipse.swt.graphics.Color; |
|
21 |
import org.eclipse.swt.graphics.TextStyle; |
|
22 |
import org.eclipse.swt.widgets.Display; |
|
15 | 23 |
|
24 |
import eu.etaxonomy.cdm.model.common.DefinedTermBase; |
|
16 | 25 |
import eu.etaxonomy.cdm.model.common.TermBase; |
17 | 26 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
27 |
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; |
|
18 | 28 |
|
19 | 29 |
/** |
20 | 30 |
* @author l.morris |
21 | 31 |
* @date 9 Dec 2011 |
22 | 32 |
* |
23 | 33 |
*/ |
24 |
public class TermLabelProvider extends LabelProvider implements |
|
25 |
IStyledLabelProvider { |
|
34 |
public class TermLabelProvider extends StyledCellLabelProvider { |
|
26 | 35 |
|
36 |
private static Color vocColor = Display.getCurrent().getSystemColor( |
|
37 |
SWT.COLOR_BLUE); |
|
38 |
private Styler vocStyler; |
|
27 | 39 |
/* (non-Javadoc) |
28 | 40 |
* @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object) |
29 | 41 |
*/ |
42 |
|
|
43 |
/* |
|
44 |
* (non-Javadoc) |
|
45 |
* |
|
46 |
* @see |
|
47 |
* org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse. |
|
48 |
* jface.viewers.ViewerCell) |
|
49 |
*/ |
|
30 | 50 |
@Override |
51 |
public void update(ViewerCell cell) { |
|
52 |
Object element = cell.getElement(); |
|
53 |
int columnIndex = cell.getColumnIndex(); |
|
54 |
|
|
55 |
String text = getText(element); |
|
56 |
cell.setText(text); |
|
57 |
|
|
58 |
if (element instanceof TermVocabulary) { |
|
59 |
StyledString styledString = new StyledString(text, getVocabularyStyler()); |
|
60 |
StyleRange[] styleRanges; |
|
61 |
styleRanges = styledString.getStyleRanges(); |
|
62 |
cell.setStyleRanges(styleRanges); |
|
63 |
} |
|
64 |
super.update(cell); |
|
65 |
} |
|
66 |
|
|
31 | 67 |
public StyledString getStyledText(Object element) { |
32 | 68 |
|
69 |
if(element instanceof TermVocabulary){ |
|
70 |
new StyledString(getText(element), getVocabularyStyler()); |
|
71 |
} |
|
33 | 72 |
return new StyledString(getText(element), StyledString.QUALIFIER_STYLER); |
34 | 73 |
} |
35 | 74 |
|
36 | 75 |
/* (non-Javadoc) |
37 | 76 |
* @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object) |
38 | 77 |
*/ |
39 |
@Override |
|
78 |
|
|
40 | 79 |
public String getText(Object element) { |
41 | 80 |
|
42 | 81 |
if (element instanceof TermBase){ |
43 |
return ((TermBase)element).getLabel();
|
|
82 |
return ((TermBase)element).getTitleCache();
|
|
44 | 83 |
} |
45 |
return super.getText(element); |
|
84 |
//FIXME : must throw an exception here |
|
85 |
return element.toString(); |
|
86 |
} |
|
87 |
|
|
88 |
private Styler getVocabularyStyler() { |
|
89 |
if (vocStyler == null) { |
|
90 |
vocStyler = new Styler() { |
|
91 |
@Override |
|
92 |
public void applyStyles(TextStyle textStyle) { |
|
93 |
textStyle.foreground = vocColor; |
|
94 |
} |
|
95 |
}; |
|
96 |
} |
|
97 |
return vocStyler; |
|
46 | 98 |
} |
47 | 99 |
|
48 | 100 |
} |
Also available in: Unified diff
TermLabelProvider : added styling to distinguish between vocabularies and terms
DefinedTermMenuFactory : Factory to dynamically build recursive menu for defined term editor
DefinedTermEditor : mainly clean up of code