1 | /* |
---|
2 | * generated by Xtext |
---|
3 | */ |
---|
4 | package org.modelica.xtext.labeling; |
---|
5 | |
---|
6 | import org.eclipse.emf.ecore.EObject; |
---|
7 | import org.eclipse.xtext.ui.core.DefaultLabelProvider; |
---|
8 | |
---|
9 | import org.modelica.emf.Absyn.Class.*; |
---|
10 | import org.modelica.emf.Absyn.ClassPart.*; |
---|
11 | import org.modelica.emf.Absyn.Element.*; |
---|
12 | import org.modelica.emf.Absyn.ElementSpec.*; |
---|
13 | import org.modelica.emf.Absyn.Import.*; |
---|
14 | import org.modelica.emf.Absyn.Path.*; |
---|
15 | |
---|
16 | /** |
---|
17 | * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider |
---|
18 | */ |
---|
19 | public class ModelicaASTLabelProvider extends DefaultLabelProvider { |
---|
20 | /* |
---|
21 | |
---|
22 | //Labels and icons can be computed like this: |
---|
23 | |
---|
24 | String image(MyModel ele) { |
---|
25 | return "MyModel.gif"; |
---|
26 | } |
---|
27 | */ |
---|
28 | String text(EObject element) { |
---|
29 | if (element instanceof CLASS) |
---|
30 | return "[CLASS]"+((CLASS)element).getName(); |
---|
31 | if (element instanceof PUBLIC) |
---|
32 | return "[PUBLIC]"; |
---|
33 | if (element instanceof PROTECTED) |
---|
34 | return "[PROTECTED]"; |
---|
35 | if (element instanceof EQUATIONS) |
---|
36 | return "[EQUATIONS]"; |
---|
37 | if (element instanceof ALGORITHMS) |
---|
38 | return "[ALGORITHMS]"; |
---|
39 | if (element instanceof INITIALEQUATIONS) |
---|
40 | return "[INITIALEQUATIONS]"; |
---|
41 | if (element instanceof INITIALALGORITHMS) |
---|
42 | return "[INITIALALGORITHMS]"; |
---|
43 | if (element instanceof EXTERNAL) |
---|
44 | return "[EXTERNAL]"; |
---|
45 | if (element instanceof ELEMENT) |
---|
46 | return "[ELEMENT]"+((ELEMENT)element).getName(); |
---|
47 | if (element instanceof EXTENDS) |
---|
48 | return "[EXTENDS]"+pathToString(((EXTENDS)element).getPath()); |
---|
49 | if (element instanceof NAMED_IMPORT) |
---|
50 | return "[NAMED_IMPORT]"+((NAMED_IMPORT)element).getName()+ |
---|
51 | "="+pathToString(((NAMED_IMPORT)element).getPath()); |
---|
52 | if (element instanceof QUAL_IMPORT) |
---|
53 | return "[QUAL_IMPORT]"+pathToString(((QUAL_IMPORT)element).getPath()); |
---|
54 | if (element instanceof UNQUAL_IMPORT) |
---|
55 | return "[UNQUAL_IMPORT]"+pathToString(((UNQUAL_IMPORT)element).getPath()); |
---|
56 | else |
---|
57 | return "["+getClassName(element)+"]"; |
---|
58 | // if (element instanceof ) |
---|
59 | // return "[]"+(()element).getName(); |
---|
60 | |
---|
61 | } |
---|
62 | |
---|
63 | public String pathToString(uPath path) { |
---|
64 | if (path instanceof IDENT) |
---|
65 | return ((IDENT)path).getName(); |
---|
66 | else if (path instanceof QUALIFIED) { |
---|
67 | String pathString; |
---|
68 | pathString = ((QUALIFIED)path).getName(); |
---|
69 | path = ((QUALIFIED)path).getPath(); |
---|
70 | while (path instanceof QUALIFIED) { |
---|
71 | pathString += "." + ((QUALIFIED)path).getName(); |
---|
72 | path = ((QUALIFIED)path).getPath(); |
---|
73 | } |
---|
74 | if (path instanceof IDENT) |
---|
75 | pathString += ((IDENT)path).getName(); |
---|
76 | return pathString; |
---|
77 | } |
---|
78 | else return ""; |
---|
79 | } |
---|
80 | |
---|
81 | public String getClassName(EObject obj) { |
---|
82 | String className = obj.getClass().getName(); |
---|
83 | if (className.lastIndexOf('.') > 0) { |
---|
84 | className = className.substring(className.lastIndexOf('.')+1); // Map$Entry |
---|
85 | } |
---|
86 | if (className.endsWith("Impl")) |
---|
87 | className=className.substring(0, className.length()-4); |
---|
88 | return className; |
---|
89 | } |
---|
90 | } |
---|