1
2
3
4
5
6 package org.dbe.studio.tools.ontologyviewer.views;
7
8 import java.util.HashMap;
9 import java.util.Map;
10 import java.util.Vector;
11
12 import org.dbe.studio.tools.ontologyviewer.OntologyViewerPlugin;
13 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmDataRange;
14 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmDataType;
15 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmDataValue;
16 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmDatatypeProperty;
17 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmEnumeration;
18 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmObjectProperty;
19 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmOntology;
20 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmOntologyClass;
21 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmProperty;
22 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmRestrictionClass;
23 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmSimpleNamedClassInst;
24 import org.dbe.studio.tools.ontologyviewer.metamodels.odm.OdmThingClass;
25 import org.dbe.studio.tools.ontologyviewer.utils.ClassInfo;
26 import org.dbe.studio.tools.ontologyviewer.utils.Constants;
27 import org.eclipse.jface.resource.ImageDescriptor;
28 import org.eclipse.jface.viewers.ILabelProvider;
29 import org.eclipse.jface.viewers.ILabelProviderListener;
30 import org.eclipse.swt.graphics.Image;
31
32 /***
33 *
34 */
35 public class OntologyTreeLabelProvider implements ILabelProvider {
36
37 private Map imageCache = new HashMap(11);
38 /***
39 *
40 */
41 public OntologyTreeLabelProvider() {
42 super();
43 }
44
45
46
47
48 public Image getImage(Object element) {
49
50 ImageDescriptor descriptor = null;
51
52 if (element instanceof OdmThingClass) {
53 descriptor = OntologyViewerPlugin.getImageDescriptor("sme.gif");
54 }
55 else if (element instanceof OdmOntologyClass) {
56 descriptor = OntologyViewerPlugin.getImageDescriptor("class.gif");
57 }
58 else if (element instanceof OdmSimpleNamedClassInst ) {
59 descriptor = OntologyViewerPlugin.getImageDescriptor("instance.gif");
60 }
61 else if (element instanceof OdmDatatypeProperty) {
62 descriptor = OntologyViewerPlugin.getImageDescriptor("datatypeproperty.gif");
63 }
64 else if (element instanceof OdmObjectProperty) {
65 descriptor = OntologyViewerPlugin.getImageDescriptor("objectproperty.gif");
66 }
67 else if ( element instanceof OdmOntology ) {
68 descriptor = OntologyViewerPlugin.getImageDescriptor("sme.gif");
69 }
70 else if ( element instanceof ClassInfo) {
71 ClassInfo ci = (ClassInfo)element;
72 if ( ci.name.equals(OntologyTreeContentProvider.SUB_CLASS)) {
73 descriptor = OntologyViewerPlugin.getImageDescriptor("subclasses.gif");
74 }
75 else if (ci.name.equals(OntologyTreeContentProvider.OBJ_PROPS)) {
76 descriptor = OntologyViewerPlugin.getImageDescriptor("objectproperties.gif");
77 }
78 else if (ci.name.equals(OntologyTreeContentProvider.DATA_TYPE_PROPS)) {
79 descriptor = OntologyViewerPlugin.getImageDescriptor("datatypeproperties.gif");
80 }
81 else if (ci.name.equals(OntologyTreeContentProvider.CLASS_EXTENSION)) {
82 descriptor = OntologyViewerPlugin.getImageDescriptor("instances.gif");
83 }
84 else if (ci.name.equals(OntologyTreeContentProvider.ONE_OF)) {
85 descriptor = OntologyViewerPlugin.getImageDescriptor("classextension.gif");
86 }
87 else if (ci.name.equals(OntologyTreeContentProvider.UNION)) {
88 descriptor = OntologyViewerPlugin.getImageDescriptor("unionclass.gif");
89 }
90 else if (ci.name.equals(OntologyTreeContentProvider.INTERSECTION)) {
91 descriptor = OntologyViewerPlugin.getImageDescriptor("intersectionclass.gif");
92 }
93 else if (ci.name.equals(OntologyTreeContentProvider.COMPLEMENT)) {
94 descriptor = OntologyViewerPlugin.getImageDescriptor("complement.gif");
95 }
96 else if (ci.name.equals(OntologyTreeContentProvider.RESTRICTION)) {
97 descriptor = OntologyViewerPlugin.getImageDescriptor("restrictionclass.gif");
98 }
99 else if (ci.name.equals(OntologyTreeContentProvider.EQUIVALENT)) {
100 descriptor = OntologyViewerPlugin.getImageDescriptor("restrictionclass.gif");
101 }
102 else if (ci.name.equals(OntologyTreeContentProvider.DISJOINT)) {
103 descriptor = OntologyViewerPlugin.getImageDescriptor("restrictionclass.gif");
104 }
105 else if (ci.name.equals(OntologyTreeContentProvider.SUB_PROPERTY)) {
106 descriptor = OntologyViewerPlugin.getImageDescriptor("subclasses.gif");
107 }
108 else if (ci.name.equals(OntologyTreeContentProvider.EQUIVALENT_PROPS)) {
109 descriptor = OntologyViewerPlugin.getImageDescriptor("objectproperties.gif");
110 }
111 }
112
113
114 Image image = (Image)imageCache.get(descriptor);
115 if (image == null) {
116 image = descriptor.createImage();
117 imageCache.put(descriptor, image);
118 }
119 return image;
120 }
121
122
123
124
125 public String getText(Object element) {
126
127 if (element instanceof OdmOntology ) {
128 return ((OdmOntology)element).getName();
129 }
130 else if (element instanceof OdmThingClass) {
131 return "ClassThing";
132 }
133 else if (element instanceof OdmRestrictionClass ){
134 return ((OdmRestrictionClass)element).getName();
135 }
136 else if ( element instanceof OdmOntologyClass) {
137 return ((OdmOntologyClass)element).getName();
138 }
139 else if ( element instanceof OdmDatatypeProperty) {
140 String name = ((OdmDatatypeProperty)element).getName() + " :";
141 String type = "";
142
143 OdmDataRange dr = ((OdmDataRange)((OdmDatatypeProperty)element).getRange().firstElement());
144 if ( dr instanceof OdmEnumeration ) {
145 Vector v = ((OdmEnumeration)dr).getOneOf();
146 OdmDataValue dv;
147 int size = v.size();
148 type = "{ ";
149 for (int i=0; i<size; ++i) {
150 dv = (OdmDataValue)( v.get(i));
151 type += dv.getValue() + ", ";
152 }
153 type = type.substring(0,type.length()-2);
154 type += " }";
155 }
156 else if (dr instanceof OdmDataType) {
157 type = " "+ ((OdmDataType)dr).getName();
158 }
159 return name + type;
160 }
161 else if ( element instanceof OdmProperty) {
162 return ((OdmProperty)element).getName();
163 }
164 else if (element instanceof OdmSimpleNamedClassInst) {
165 return ((OdmSimpleNamedClassInst)element).getName();
166 }
167 else if ( element instanceof ClassInfo) {
168 return ((ClassInfo)element).name;
169 }
170
171 return Constants.EMPTY_STRING;
172 }
173
174
175
176
177 public void addListener(ILabelProviderListener listener) {
178 }
179
180
181
182
183 public void dispose() {
184 }
185
186
187
188
189 public boolean isLabelProperty(Object element, String property) {
190 return false;
191 }
192
193
194
195
196 public void removeListener(ILabelProviderListener listener) {
197 }
198 }