package com.sap.coghead.tree; import coghead.Field; import coghead.Variable; import coghead.action.MultiplicityEnum; import coghead.packages.NamedElement; import com.sap.ide.treeprovider.GenericRefObjectNode; import com.sap.ide.treeprovider.TextLabelProvider; import com.sap.mi.fwk.ui.tree.nodes.TreeNodeRefObject; public class CogheadTreeLabelProvider implements TextLabelProvider { @Override public String getText(Object treenode) { if (treenode instanceof TreeNodeRefObject) { TreeNodeRefObject<?> node = (TreeNodeRefObject<?>) treenode; String roleName = ""; if (node instanceof GenericRefObjectNode) { String nodeRoleName = ((GenericRefObjectNode) node).getRoleName(); if (nodeRoleName != null) { roleName = nodeRoleName+": "; } } if (node.getValue() instanceof Field) { Field f = (Field) node.getValue(); return f.getName()+" : "+f.getType()+formatCardinality(f.getCardinality()); } else if (node.getValue() instanceof Variable) { Variable v = (Variable) node.getValue(); return v.getName()+" : "+((v.getSchemaType() != null)?v.getSchemaType().getCollection().getName(): v.getElementaryType())+((v.getMultiplicity()==MultiplicityEnum.COLLECTION)?"[]":""); } else if (node.getValue() instanceof NamedElement) { return roleName+((NamedElement) node.getValue()).getName(); } } return null; } private String formatCardinality(int cardinality) { if (cardinality == 1) { return ""; } else if (cardinality == -1) { return "[]"; } else { return "["+cardinality+"]"; } } }