1 package org.simantics.structural.ui.modelBrowser.contributions;
3 import org.eclipse.jface.resource.ImageDescriptor;
4 import org.eclipse.jface.viewers.IDecoration;
5 import org.simantics.browsing.ui.content.ImageDecorator;
6 import org.simantics.browsing.ui.model.imagedecorators.ImageDecorationRule;
7 import org.simantics.db.ReadGraph;
8 import org.simantics.db.Resource;
9 import org.simantics.db.exception.DatabaseException;
10 import org.simantics.structural.stubs.StructuralResource2;
11 import org.simantics.structural.ui.Activator;
12 import org.simantics.utils.ui.gfx.DecorationOverlayIcon;
14 public class ComponentTypeLockStatusImageDecorationRule implements ImageDecorationRule {
17 public boolean isCompatible(Class<?> contentType) {
18 return Resource.class.isAssignableFrom(contentType);
22 public ImageDecorator getImageDecorator(ReadGraph graph, Object content)
23 throws DatabaseException {
24 Resource resource = (Resource) content;
25 StructuralResource2 STR = StructuralResource2.getInstance(graph);
26 if(!graph.hasStatement(resource, STR.ComponentType_Locked))
29 return new ImageDecorator() {
31 public <Image> Image decorateImage(Image image, String column, int itemIndex) {
32 ImageDescriptor original = (ImageDescriptor)image;
33 ImageDescriptor decorated = (original == null || original.getImageData() == null) ? Activator.LOCK
34 : new DecorationOverlayIcon(original, Activator.LOCK, IDecoration.TOP_RIGHT);
35 return (Image)decorated;