package org.archstudio.archipelago2.core.outline;
import java.util.List;
import org.archstudio.archipelago2.AbstractArchipelago2LabelProvider;
import org.archstudio.xarchadt.ObjRef;
import org.eclipse.emf.common.util.URI;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
/**
* Displays a label for the root xADL element.
*
* @author sahendrickson@gmail.com (Scott A. Hendrickson)
*/
public class XAdlLabelProvider extends AbstractArchipelago2LabelProvider {
@Override
public StyledString getStyledText(Object element) {
@SuppressWarnings("unchecked")
List<Object> nodePath = (List<Object>) element;
if (nodePath.size() == 2) {
ObjRef xAdlRef = (ObjRef) xarch.get(docRef, "xADL");
if (nodePath.get(1) == xAdlRef) {
URI uri = xarch.getURI(xAdlRef);
List<String> segments = uri.segmentsList();
if (segments.size() > 0) {
return new StyledString("xADL: " + segments.get(segments.size() - 1));
}
return new StyledString("xADL: " + uri.toString());
}
}
return null;
}
@Override
public Image getImage(Object element) {
@SuppressWarnings("unchecked")
List<Object> nodePath = (List<Object>) element;
if (nodePath.size() == 2) {
ObjRef xAdlRef = (ObjRef) xarch.get(docRef, "xADL");
if (nodePath.get(0) == xAdlRef) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
}
}
return null;
}
}