]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui.editor/src/org/simantics/scl/ui/editor/SCLAnnotationAccess.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.ui.editor / src / org / simantics / scl / ui / editor / SCLAnnotationAccess.java
1 package org.simantics.scl.ui.editor;\r
2 \r
3 import org.eclipse.jface.resource.ImageDescriptor;\r
4 import org.eclipse.jface.resource.ImageRegistry;\r
5 import org.eclipse.jface.text.source.Annotation;\r
6 import org.eclipse.jface.text.source.IAnnotationAccess;\r
7 import org.eclipse.jface.text.source.IAnnotationAccessExtension;\r
8 import org.eclipse.jface.text.source.ImageUtilities;\r
9 import org.eclipse.swt.SWT;\r
10 import org.eclipse.swt.graphics.GC;\r
11 import org.eclipse.swt.graphics.Image;\r
12 import org.eclipse.swt.graphics.Rectangle;\r
13 import org.eclipse.swt.widgets.Canvas;\r
14 \r
15 final class SCLAnnotationAccess implements IAnnotationAccess, IAnnotationAccessExtension {\r
16 \r
17     ImageRegistry registry;\r
18     \r
19     public SCLAnnotationAccess(ImageRegistry registry) {\r
20         this.registry = registry;\r
21     }\r
22 \r
23     @Override\r
24     public Object getType(Annotation annotation) {\r
25         return annotation.getType();\r
26     }\r
27 \r
28     @Override\r
29     public boolean isMultiLine(Annotation annotation) {\r
30         return true;\r
31     }\r
32 \r
33     @Override\r
34     public boolean isTemporary(Annotation annotation) {\r
35         return !annotation.isPersistent();\r
36     }\r
37 \r
38     @Override\r
39     public String getTypeLabel(Annotation annotation) {\r
40         return annotation.getType();\r
41     }\r
42 \r
43     @Override\r
44     public int getLayer(Annotation annotation) {\r
45         return 0;\r
46     }\r
47 \r
48     @Override\r
49     public void paint(Annotation annotation, GC gc, Canvas canvas, Rectangle bounds) {\r
50         Image image = registry.get("error");\r
51         if(image == null) {\r
52             registry.put("error", ImageDescriptor.createFromFile(getClass(), "error_tsk.gif"));\r
53             image = registry.get("error");\r
54         }\r
55         ImageUtilities.drawImage(image, gc, canvas, bounds, SWT.CENTER, SWT.TOP);\r
56     }\r
57 \r
58     @Override\r
59     public boolean isPaintable(Annotation annotation) {\r
60         return true;\r
61     }\r
62 \r
63     @Override\r
64     public boolean isSubtype(Object annotationType, Object potentialSupertype) {\r
65         return annotationType.equals(potentialSupertype);\r
66     }\r
67 \r
68     @Override\r
69     public Object[] getSupertypes(Object annotationType) {\r
70         return new Object[0];\r
71     }\r
72 }