3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
;
13 import org
.apache
.log4j
.Logger
;
14 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
15 import org
.eclipse
.jface
.viewers
.ILabelProvider
;
16 import org
.eclipse
.jface
.viewers
.StyledString
;
17 import org
.eclipse
.jface
.viewers
.DelegatingStyledCellLabelProvider
.IStyledLabelProvider
;
18 import org
.eclipse
.jface
.viewers
.StyledString
.Styler
;
19 import org
.eclipse
.swt
.SWT
;
20 import org
.eclipse
.swt
.graphics
.Image
;
21 import org
.eclipse
.swt
.graphics
.TextStyle
;
22 import org
.eclipse
.ui
.navigator
.IDescriptionProvider
;
23 import org
.hibernate
.LazyInitializationException
;
25 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
26 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
27 import eu
.etaxonomy
.cdm
.model
.common
.IIdentifiableEntity
;
28 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
29 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
30 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.Operation
;
31 import eu
.etaxonomy
.taxeditor
.navigation
.NavigationUtil
;
32 import eu
.etaxonomy
.taxeditor
.preference
.Resources
;
33 import eu
.etaxonomy
.taxeditor
.security
.RequiredPermissions
;
34 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
35 import eu
.etaxonomy
.taxeditor
.store
.StoreUtil
;
38 * <p>TaxonNodeLabelProvider class.</p>
44 public class TaxonNodeLabelProvider
extends ColumnLabelProvider
45 implements ILabelProvider
, IDescriptionProvider
, IStyledLabelProvider
{
48 private Styler notGrantedStyler
= null;
52 public Image
getImage(Object element
) {
58 public String
getText(Object element
) {
59 if (element
instanceof TaxonNode
){
60 TaxonNode taxonNode
= (TaxonNode
) HibernateProxyHelper
.deproxy(element
);
63 Taxon taxon
= (Taxon
) HibernateProxyHelper
.deproxy(taxonNode
.getTaxon());
65 NavigationUtil
.error(getClass(), "The taxon node does not have a taxon attached to it. Please check your import. TaxonNode: " + element
, null);
66 // throw new RuntimeException("The data your are trying to view is corrupt. Please check your import.");
69 return taxon
.getName() != null ?
((IIdentifiableEntity
) HibernateProxyHelper
.deproxy(taxon
.getName())).getTitleCache() : new String();
71 NavigationUtil
.error(getClass(), e
);
74 }catch (LazyInitializationException e
){
75 NavigationUtil
.error(getClass(), e
);
83 * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)
86 public String
getDescription(Object anElement
) {
87 if (anElement
instanceof TaxonNode
) {
88 Taxon data
= ((TaxonNode
) anElement
).getTaxon();
89 return "Taxon: " + data
.getTitleCache(); //$NON-NLS-1$
95 * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
98 public StyledString
getStyledText(Object element
) {
99 // determine style base on user grants
100 Styler styler
= null;
101 if(!CdmStore
.currentAuthentiationHasPermission((CdmBase
)element
, RequiredPermissions
.TAXONNODE_EDIT
)){
102 styler
= getNotGrantedStyler();
104 return new StyledString(getText(element
), styler
);
111 private Styler
getNotGrantedStyler() {
112 if (notGrantedStyler
== null) {
113 notGrantedStyler
= new Styler() {
115 public void applyStyles(TextStyle textStyle
) {
116 textStyle
.underline
= false;
117 textStyle
.foreground
= StoreUtil
.getColor(Resources
.COLOR_TEXT_DISABLED
);
121 return notGrantedStyler
;