/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.runtime.ui.views; import java.util.Properties; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.IDecoration; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ILightweightLabelDecorator; import org.teiid.designer.core.loading.ComponentLoadingManager; import org.teiid.designer.core.loading.IManagedLoading; import org.teiid.designer.ui.UiPlugin; import org.teiid.designer.ui.common.util.UiUtil; import org.teiid.designer.ui.viewsupport.ModelObjectUtilities; /** * * * @since 8.0 */ public class PreviewModelObjectLabelProvider implements ILightweightLabelDecorator, IManagedLoading { // ============================================================================================================================ // Overridden methods /** * */ public PreviewModelObjectLabelProvider() { super(); } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ @Override public void addListener( ILabelProviderListener arg0 ) { } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ @Override public void dispose() { } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String) */ @Override public boolean isLabelProperty( Object arg0, String arg1 ) { return false; } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) */ @Override public void removeListener( ILabelProviderListener arg0 ) { } @Override public void manageLoad(Properties args) { final EObject eObject = (EObject) args.get(EObject.class); final IDecoration decoration = (IDecoration) args.get(IDecoration.class); Runnable runnable = new Runnable() { public void run() { boolean isPreviewable = ModelObjectUtilities.isExecutable(eObject); if (isPreviewable) { decoration.addOverlay(UiPlugin.getDefault().getPreviewableDecoratorImage(), IDecoration.BOTTOM_RIGHT); } } }; UiUtil.runInSwtThread(runnable, true); } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration) */ @Override public void decorate( final Object eObject, final IDecoration decoration ) { // Ensure the server manager has been initialised. If necessary wait until it has been // correctly restored. This ensures the teiid server version has been correctly set. ComponentLoadingManager manager = ComponentLoadingManager.getInstance(); Properties properties = new Properties(); properties.put(eObject.getClass(), eObject); properties.put(decoration.getClass(), decoration); manager.manageLoading(this, properties); } }