/* * generated by Xtext */ package org.modelica.xtext.labeling; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.ui.core.DefaultLabelProvider; import org.modelica.emf.Absyn.Class.*; import org.modelica.emf.Absyn.ClassPart.*; import org.modelica.emf.Absyn.Element.*; import org.modelica.emf.Absyn.ElementSpec.*; import org.modelica.emf.Absyn.Import.*; import org.modelica.emf.Absyn.Path.*; /** * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider */ public class ModelicaASTLabelProvider extends DefaultLabelProvider { /* //Labels and icons can be computed like this: String image(MyModel ele) { return "MyModel.gif"; } */ String text(EObject element) { if (element instanceof CLASS) return "[CLASS]"+((CLASS)element).getName(); if (element instanceof PUBLIC) return "[PUBLIC]"; if (element instanceof PROTECTED) return "[PROTECTED]"; if (element instanceof EQUATIONS) return "[EQUATIONS]"; if (element instanceof ALGORITHMS) return "[ALGORITHMS]"; if (element instanceof INITIALEQUATIONS) return "[INITIALEQUATIONS]"; if (element instanceof INITIALALGORITHMS) return "[INITIALALGORITHMS]"; if (element instanceof EXTERNAL) return "[EXTERNAL]"; if (element instanceof ELEMENT) return "[ELEMENT]"+((ELEMENT)element).getName(); if (element instanceof EXTENDS) return "[EXTENDS]"+pathToString(((EXTENDS)element).getPath()); if (element instanceof NAMED_IMPORT) return "[NAMED_IMPORT]"+((NAMED_IMPORT)element).getName()+ "="+pathToString(((NAMED_IMPORT)element).getPath()); if (element instanceof QUAL_IMPORT) return "[QUAL_IMPORT]"+pathToString(((QUAL_IMPORT)element).getPath()); if (element instanceof UNQUAL_IMPORT) return "[UNQUAL_IMPORT]"+pathToString(((UNQUAL_IMPORT)element).getPath()); else return "["+getClassName(element)+"]"; // if (element instanceof ) // return "[]"+(()element).getName(); } public String pathToString(uPath path) { if (path instanceof IDENT) return ((IDENT)path).getName(); else if (path instanceof QUALIFIED) { String pathString; pathString = ((QUALIFIED)path).getName(); path = ((QUALIFIED)path).getPath(); while (path instanceof QUALIFIED) { pathString += "." + ((QUALIFIED)path).getName(); path = ((QUALIFIED)path).getPath(); } if (path instanceof IDENT) pathString += ((IDENT)path).getName(); return pathString; } else return ""; } public String getClassName(EObject obj) { String className = obj.getClass().getName(); if (className.lastIndexOf('.') > 0) { className = className.substring(className.lastIndexOf('.')+1); // Map$Entry } if (className.endsWith("Impl")) className=className.substring(0, className.length()-4); return className; } }