| /******************************************************************************* |
| * Licensed Materials - Property of IBM |
| * (c) Copyright IBM Corporation 2007,2009. All Rights Reserved. |
| * |
| * Note to U.S. Government Users Restricted Rights: |
| * Use, duplication or disclosure restricted by GSA ADP Schedule |
| * Contract with IBM Corp. |
| *******************************************************************************/ |
| |
| package org.eclipse.epf.authoring.ui.properties; |
| |
| import org.eclipse.emf.common.notify.AdapterFactory; |
| import org.eclipse.emf.ecore.EReference; |
| import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; |
| import org.eclipse.epf.library.edit.util.DescriptorPropUtil; |
| import org.eclipse.epf.uma.Descriptor; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.jface.viewers.ITableFontProvider; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.graphics.Font; |
| import org.eclipse.swt.graphics.FontData; |
| import org.eclipse.swt.widgets.Display; |
| |
| /** |
| * |
| * @author achen |
| * |
| */ |
| public class SyncFreeLabelProvider extends AdapterFactoryLabelProvider implements ITableFontProvider { |
| private DescriptorPropUtil propUtil = DescriptorPropUtil.getDesciptorPropUtil(); |
| private Font systemFont = Display.getCurrent().getSystemFont(); |
| private Font boldFont = null; |
| private Font boldAndItalicFont = null; |
| |
| private Descriptor desc; |
| private EReference ref; |
| private MethodConfiguration config; |
| |
| public SyncFreeLabelProvider(AdapterFactory adapterFactory, Descriptor desc, EReference ref, MethodConfiguration config) { |
| super(adapterFactory); |
| this.desc = desc; |
| this.ref = ref; |
| this.config = config; |
| boldFont = createFont(SWT.BOLD); |
| boldAndItalicFont = createFont(SWT.BOLD | SWT.ITALIC); |
| } |
| |
| public Font getFont(Object obj, int columnIndex) { |
| if (propUtil.isFromGreenParentLocalList(obj, desc, ref)) { |
| return boldAndItalicFont; |
| } |
| |
| if (!propUtil.isDynamic(obj, desc, ref)) { |
| return boldFont; |
| } |
| |
| return systemFont; |
| } |
| |
| public String getColumnText(Object obj, int columnIndex) { |
| String original = super.getColumnText(obj, columnIndex); |
| |
| if (propUtil.isDynamicAndExclude(obj, desc, ref, config)) { |
| return "--<" + original + ">"; //$NON-NLS-1$ //$NON-NLS-2$ |
| } |
| |
| return original; |
| } |
| |
| public void dispose() { |
| super.dispose(); |
| |
| if (boldFont != null) { |
| boldFont.dispose(); |
| } |
| |
| if (boldAndItalicFont != null) { |
| boldAndItalicFont.dispose(); |
| } |
| } |
| |
| private Font createFont(int style) { |
| FontData[] fontdata = systemFont.getFontData(); |
| for (FontData data : fontdata) { |
| data.setStyle(style); |
| } |
| |
| return new Font(Display.getCurrent(), fontdata); |
| } |
| |
| } |