/** * */ package se.sics.kompics.ide.views; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import se.sics.kompics.ide.Activator; import se.sics.kompics.ide.SharedResources; import se.sics.kompics.ide.model.ast.ASTModelObject; import se.sics.kompics.model.kompicsComponents.Channel; import se.sics.kompics.model.kompicsComponents.Component; import se.sics.kompics.model.kompicsComponents.ComponentDefinition; import se.sics.kompics.model.kompicsComponents.Event; import se.sics.kompics.model.kompicsComponents.Handler; import se.sics.kompics.model.kompicsComponents.Port; import se.sics.kompics.model.kompicsComponents.PortType; import se.sics.kompics.model.kompicsComponents.KompicsComponentsPackage; import se.sics.kompics.model.kompicsComponents.Subscription; /** * The <code>ModelLabelProvider</code> . * * @author Lars Kroll <lkr@lars-kroll.com> * @version $Id: $ * */ public class ModelLabelProvider extends LabelProvider { public String getText(Object obj) { if (obj instanceof ModelTreeObject) { return getNameForType(((ModelTreeObject) obj).getObject()); } if (obj instanceof TreeObject) { return ((TreeObject) obj).getName(); } return "Unkown"; } private String getNameForType(ASTModelObject obj) { EObject object = obj.getEObject(); switch (obj.getClassifierID()) { case KompicsComponentsPackage.COMPONENT_DEFINITION: return ((ComponentDefinition) object).getType(); case KompicsComponentsPackage.COMPONENT: return ((Component) object).getVar() + " : " + ((Component) object).getType().getType(); case KompicsComponentsPackage.CHANNEL: return "Channel <" + ((Channel) object).getPortType().getType() + ">"; case KompicsComponentsPackage.SUBSCRIPTION: Subscription s = (Subscription) object; return "Subscription <" + s.getPort().getPortType().getType() + "> <-- <" + s.getHandler().getEventType().getType() + ">"; case KompicsComponentsPackage.EVENT: return ((Event) object).getType(); case KompicsComponentsPackage.HANDLER: return "Handler <-- <" + ((Handler) object).getEventType().getType() + ">"; case KompicsComponentsPackage.PORT: Port p = (Port) object; String sym = "?"; if (p.isProvided()) { sym = "+"; } else { sym = "-"; } return sym + "Port <" + p.getPortType().getType() + ">"; case KompicsComponentsPackage.PORT_TYPE: return ((PortType) object).getType(); default: return "Unkown"; } } public Image getImage(Object obj) { String imageKey = ISharedImages.IMG_OBJ_ELEMENT; if (obj instanceof ModelTreeObject) { imageKey = getImageForType(((ModelTreeObject) obj).getObject()); return Activator.getSharedImage(imageKey); } else if (obj instanceof TreeObject) { imageKey = ISharedImages.IMG_OBJ_FOLDER; } return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); } private String getImageForType(ASTModelObject obj) { switch (obj.getClassifierID()) { case KompicsComponentsPackage.COMPONENT: return SharedResources.IMG_COMPONENT; case KompicsComponentsPackage.COMPONENT_DEFINITION: return SharedResources.IMG_COMPONENT_DEFINITION; case KompicsComponentsPackage.CHANNEL: return SharedResources.IMG_CHANNEL; case KompicsComponentsPackage.SUBSCRIPTION: return SharedResources.IMG_CHANNEL; case KompicsComponentsPackage.EVENT: return SharedResources.IMG_EVENT; case KompicsComponentsPackage.HANDLER: return SharedResources.IMG_HANDLER; case KompicsComponentsPackage.PORT: return SharedResources.IMG_PORT; case KompicsComponentsPackage.PORT_TYPE: return SharedResources.IMG_PORT_TYPE; default: return SharedResources.IMG_PORT; } // OLD CODE // switch (obj.getClassifierID()) { // case KompicsComponentsPackage.COMPONENT: // return ISharedImages.IMG_OBJ_ELEMENT; // case KompicsComponentsPackage.COMPONENT_DEFINITION: // return ISharedImages.IMG_OBJ_FILE; // case KompicsComponentsPackage.CHANNEL: // return ISharedImages.IMG_OBJ_ADD; // case KompicsComponentsPackage.EVENT: // return ISharedImages.IMG_TOOL_FORWARD; // case KompicsComponentsPackage.HANDLER: // return ISharedImages.IMG_TOOL_NEW_WIZARD; // case KompicsComponentsPackage.PORT: // return ISharedImages.IMG_TOOL_UP; // case KompicsComponentsPackage.PORT_TYPE: // return ISharedImages.IMG_LCL_LINKTO_HELP; // default: // return ISharedImages.IMG_OBJ_ELEMENT; // } } }