Project

General

Profile

Download (3 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.navigation.navigator;
11

    
12
import org.eclipse.jface.viewers.ColumnLabelProvider;
13
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
14
import org.eclipse.jface.viewers.ILabelProvider;
15
import org.eclipse.jface.viewers.StyledString;
16
import org.eclipse.jface.viewers.StyledString.Styler;
17
import org.eclipse.swt.graphics.Image;
18
import org.eclipse.swt.graphics.TextStyle;
19
import org.eclipse.ui.navigator.IDescriptionProvider;
20

    
21
import eu.etaxonomy.cdm.model.common.CdmBase;
22
import eu.etaxonomy.cdm.model.taxon.Taxon;
23
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
24
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
25
import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
26
import eu.etaxonomy.taxeditor.preference.Resources;
27
import eu.etaxonomy.taxeditor.security.RequiredPermissions;
28
import eu.etaxonomy.taxeditor.store.CdmStore;
29
import eu.etaxonomy.taxeditor.store.StoreUtil;
30

    
31
/**
32
 * <p>TaxonNodeLabelProvider class.</p>
33
 *
34
 * @author p.ciardelli
35
 * @created 04.06.2009
36
 */
37
public class TaxonNodeLabelProvider extends ColumnLabelProvider
38
		implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
39

    
40

    
41
	private Styler notGrantedStyler = null;
42

    
43
	/** {@inheritDoc} */
44
	@Override
45
	public Image getImage(Object element) {
46
		return null;
47
	}
48

    
49
	/** {@inheritDoc} */
50
	@Override
51
	public String getText(Object element) {
52
		if (element instanceof UuidAndTitleCache){
53
			if(((UuidAndTitleCache)element).getTitleCache() != null){
54
			    String text = ((UuidAndTitleCache)element).getTitleCache();
55
                return text;
56

    
57
			}else{
58
				return  new String();
59

    
60
			}
61

    
62
		}
63
		return new String();
64
	}
65

    
66
	/** {@inheritDoc} */
67
	@Override
68
    public String getDescription(Object anElement) {
69
		if (anElement instanceof TaxonNode) {
70
			Taxon data = ((TaxonNode) anElement).getTaxon();
71
			String text =  (data != null ? Messages.TaxonNodeLabelProvider_TAXON + data.getTitleCache() : Messages.TaxonNodeLabelProvider_CLASSIFICATION + ((TaxonNode)anElement).getClassification().getTitleCache());
72

    
73
			return text;
74
		}
75
		return null;
76
	}
77

    
78
	/** {@inheritDoc} */
79
	@Override
80
    public StyledString getStyledText(Object element) {
81
		// determine style base on  user grants
82
		Styler styler = null;
83
		if(!CdmStore.currentAuthentiationHasPermission((CdmBase) element, RequiredPermissions.TAXONNODE_EDIT)){
84
			styler = getNotGrantedStyler();
85
		}
86
		return new StyledString(getText(element), styler);
87
	}
88

    
89
	/**
90
	 * @return
91
	 */
92
	private Styler getNotGrantedStyler() {
93
		if (notGrantedStyler  == null) {
94
			notGrantedStyler = new Styler() {
95
				@Override
96
				public void applyStyles(TextStyle textStyle) {
97
					textStyle.underline = false;
98
					textStyle.foreground = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED);
99
				}
100
			};
101
		}
102
		return notGrantedStyler;
103
	}
104
}
(14-14/19)