package org.eclipse.uml2.diagram.common.async; import org.eclipse.jface.resource.FontRegistry; import org.eclipse.jface.viewers.BaseLabelProvider; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.IFontProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; public class SyncModelLabelProvider extends BaseLabelProvider implements ILabelProvider, IFontProvider { private final ILabelProvider myDelegate; private final FontRegistry myFontRegistry = new FontRegistry(); protected static final String TREE_FONT = "TreeFont"; //$NON-NLS-1$ public SyncModelLabelProvider(ILabelProvider pluginSpecificDelegate) { myDelegate = pluginSpecificDelegate; } public Image getImage(Object element) { if (false == element instanceof SyncModelNode) { return null; } SyncModelNode node = (SyncModelNode) element; return myDelegate.getImage(node); } public String getText(Object element) { if (false == element instanceof SyncModelNode) { return null; } SyncModelNode node = (SyncModelNode) element; String text = myDelegate.getText(node); return text; } public Font getFont(Object element) { if (false == element instanceof SyncModelNode) { return null; } SyncModelNode node = (SyncModelNode) element; return node.isAutoSynchronized() ? myFontRegistry.getBold(TREE_FONT) : myFontRegistry.get(TREE_FONT); } protected void hookTreeViewer(CheckboxTreeViewer syncUI) { myFontRegistry.put(TREE_FONT, syncUI.getTree().getFont().getFontData()); } protected final FontRegistry getFontRegistry() { return myFontRegistry; } }