import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.jface.viewers.StyledString.Styler;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.TextStyle;
import org.eclipse.ui.navigator.IDescriptionProvider;
import org.hibernate.LazyInitializationException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.hibernate.permission.Operation;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.security.RequiredPermissions;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* <p>TaxonNodeLabelProvider class.</p>
public class TaxonNodeLabelProvider extends ColumnLabelProvider
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
+
+ private Styler notGrantedStyler = null;
+
/** {@inheritDoc} */
@Override
public Image getImage(Object element) {
*/
/** {@inheritDoc} */
public StyledString getStyledText(Object element) {
- return new StyledString(getText(element));
+ // determine style base on user grants
+ Styler styler = null;
+ if(!CdmStore.currentAuthentiationHasPermission((CdmBase)element, RequiredPermissions.TAXONNODE_EDIT)){
+ styler = getNotGrantedStyler();
+ }
+ return new StyledString(getText(element), styler);
+
+ }
+
+ /**
+ * @return
+ */
+ private Styler getNotGrantedStyler() {
+ if (notGrantedStyler == null) {
+ notGrantedStyler = new Styler() {
+ @Override
+ public void applyStyles(TextStyle textStyle) {
+ textStyle.underline = false;
+ textStyle.foreground = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED);
+ }
+ };
+ }
+ return notGrantedStyler;
}
}