package org.archstudio.xadl.swt; import org.archstudio.resources.ArchStudioCommonResources; import org.archstudio.resources.IResources; import org.archstudio.xadl.XadlUtils; import org.archstudio.xarchadt.IXArchADT; import org.archstudio.xarchadt.ObjRef; import org.eclipse.emf.common.util.URI; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; public class XadlTreeLabelProvider extends LabelProvider implements ILabelProvider { protected IXArchADT xarch = null; protected IResources resources = null; public XadlTreeLabelProvider(IXArchADT xarch, IResources resources) { this.xarch = xarch; this.resources = resources; ArchStudioCommonResources.init(resources); } @Override public String getText(Object element) { if (element == null) { return "null"; } if (element instanceof ObjRef) { ObjRef ref = (ObjRef) element; XadlTreeUtils.Type type = XadlTreeUtils.getType(xarch, ref); if (type.equals(XadlTreeUtils.Type.UNKNOWN)) { return "[Unknown Element]"; } else if (type.equals(XadlTreeUtils.Type.DOCUMENTROOT)) { URI uri = xarch.getURI(ref); if (uri == null) { return "null"; } return uri.toString(); } else if (type.equals(XadlTreeUtils.Type.XADLELEMENT)) { URI uri = xarch.getURI(ref); if (uri == null) { return "null"; } return uri.toString(); } else { String description = XadlUtils.getName(xarch, ref); if (description == null) { String id = XadlUtils.getID(xarch, ref); if (id != null) { description = "[id=" + id + "]"; } description = "[No Identifier]"; } return description; } } return super.getText(element); } @Override public Image getImage(Object element) { if (element instanceof ObjRef) { ObjRef ref = (ObjRef) element; XadlTreeUtils.Type type = XadlTreeUtils.getType(xarch, ref); Image image = XadlTreeUtils.getIconForType(resources, type); if (image != null) { return image; } } return super.getImage(element); } }