]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.structural.ui/src/org/simantics/structural/ui/modelBrowser/contributions/ComponentTypeLockStatusImageDecorationRule.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.structural.ui / src / org / simantics / structural / ui / modelBrowser / contributions / ComponentTypeLockStatusImageDecorationRule.java
1 package org.simantics.structural.ui.modelBrowser.contributions;
2
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;
13
14 public class ComponentTypeLockStatusImageDecorationRule implements ImageDecorationRule {
15
16     @Override
17     public boolean isCompatible(Class<?> contentType) {
18         return Resource.class.isAssignableFrom(contentType);
19     }
20
21     @Override
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))
27             return null;
28         
29         return new ImageDecorator() {
30             @Override
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;
36             }
37         };
38     }
39
40 }