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