package com.sap.mi.tcs.editor.tree; import org.eclipse.emf.ecore.EObject; import com.sap.furcas.metamodel.TCS.ClassTemplate; import com.sap.furcas.metamodel.TCS.LiteralRef; import com.sap.furcas.metamodel.TCS.NamedElement; import com.sap.furcas.metamodel.TCS.Operator; import com.sap.furcas.metamodel.TCS.OperatorTemplate; import com.sap.furcas.metamodel.TCS.Property; import com.sap.ide.treeprovider.GenericRefObjectNode; import com.sap.ide.treeprovider.TextLabelProvider; public class TcsTreeLabelProvider implements TextLabelProvider { @Override public String getText(Object treenode) { if (treenode instanceof EObject) { TreeNodeRefObject<?> node = (TreeNodeRefObject<?>) treenode; String roleName = ""; if (node instanceof GenericRefObjectNode) { String nodeRoleName = ((GenericRefObjectNode) node).getRoleName(); if (nodeRoleName != null) { roleName = nodeRoleName + ": "; } } if (node.getValue() instanceof ClassTemplate) { ClassTemplate ct = (ClassTemplate) node.getValue(); String name; if (ct.getMetaReference() != null) { name = roleName + ct.getMetaReference().getName(); } else { name = roleName + ct.getNames().toString(); } if (ct.getMode() != null) { name += "#" + ct.getMode(); } return name; } if (node.getValue() instanceof OperatorTemplate) { OperatorTemplate ot = (OperatorTemplate) node.getValue(); String name = "<"; for (Operator op : ot.getOperators()) { name += op.getName() + " "; } name += ">"; if (ot.getMetaReference() != null) { name = roleName + name + ot.getMetaReference().getName(); } else { name = roleName + name + ot.getNames().toString(); } return name; } if (node.getValue() instanceof NamedElement) { return roleName + ((NamedElement) node.getValue()).getName(); } if (node.getValue() instanceof LiteralRef) { return roleName + ((LiteralRef) node.getValue()).getReferredLiteral() .getValue(); } if (node.getValue() instanceof Property) { return roleName + ((Property) node.getValue()).getPropertyReference().getStrucfeature() .getName(); } } return null; } }