source: branches/xtext-MDT/org.modelica.xtext.core.ui/src/org/modelica/xtext/labeling/ModelicaASTLabelProvider.java @ 549

Last change on this file since 549 was 549, checked in by nasko, 15 years ago

work in progress

File size: 2.7 KB
Line 
1/*
2* generated by Xtext
3*/
4package org.modelica.xtext.labeling;
5
6import org.eclipse.emf.ecore.EObject;
7import org.eclipse.xtext.ui.core.DefaultLabelProvider;
8
9import org.modelica.emf.Absyn.Class.*;
10import org.modelica.emf.Absyn.ClassPart.*;
11import org.modelica.emf.Absyn.Element.*;
12import org.modelica.emf.Absyn.ElementSpec.*;
13import org.modelica.emf.Absyn.Import.*;
14import org.modelica.emf.Absyn.Path.*;
15
16/**
17 * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
18 */
19public 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}
Note: See TracBrowser for help on using the repository browser.