Project

General

Profile

« Previous | Next » 

Revision e717eb17

Added by Cherian Mathew almost 11 years ago

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

View differences:

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