package org.archstudio.archipelago2.core.outline; import org.archstudio.archipelago2.AbstractArchipelago2LabelDecorator; import org.archstudio.archipelago2.Archipelago2Utils; import org.archstudio.utils.resources.swt.ColorUtils; import org.archstudio.utils.resources.swt.FontUtils; import org.archstudio.xarchadt.IXArchADTTypeMetadata; import org.archstudio.xarchadt.ObjRef; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.StyledString; import org.eclipse.jface.viewers.StyledString.Styler; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.TextStyle; public class ObjRefLabelDecorator extends AbstractArchipelago2LabelDecorator { @Override public StyledString decorateStyledText(StyledString styledString, Object element) { ObjRef objRef = Archipelago2Utils.getLastObjRef(element); if (objRef != null) { IXArchADTTypeMetadata type = xarch.getTypeMetadata(objRef); styledString.append(" ").append("(" + type.getTypeName() + ")", new Styler() { @Override public void applyStyles(TextStyle textStyle) { Font defaultFont = JFaceResources.getDefaultFont(); textStyle.font = FontUtils.getFont(display, "Arial Narrow", defaultFont.getFontData()[0].height, SWT.ITALIC); textStyle.foreground = ColorUtils.getSystemColor(display, SWT.COLOR_GRAY); } }); } return null; } }