blob: 68b708b6420da15fff112ec69092cb4d13415c64 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.bpel.ui.details.providers;
import org.eclipse.bpel.ui.Messages;
import org.eclipse.bpel.ui.adapters.ILabeledElement;
import org.eclipse.bpel.ui.util.BPELUtil;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.graphics.Image;
/**
* A label provider for objects which adapt to the ILabeledElement interface.
* This can be used as a "generic" label provider for details pages, etc.
*/
public class ModelLabelProvider implements ILabelProvider {
private Object context = null;
/**
* Create a new shiny label provider.
*/
public ModelLabelProvider () {
}
/**
* Create a new shiny label provider with the context object.
* @param contextObject
*
*/
public ModelLabelProvider (Object contextObject) {
context = contextObject;
}
/**
* Default implementation does nothing.
*
* @param viewer
* @param oldInput
* @param newInput
*/
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
// TODO: hook model listener?
}
/**
* @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
*/
public Image getImage (Object object) {
if (object == null) {
return null;
}
ILabeledElement label = (ILabeledElement) BPELUtil.adapt(object, ILabeledElement.class, context);
if (label == null) {
return null;
}
Image image = label.getSmallImage(object);
// TODO: The adapters must provide images with a lifecycle outlasting any uses,
// since there is no protocol for destroying the images returned by adapters.
// If we add methods for releasing the images, call them here.
//if (image != null) stringToImage.put(image.toString(), image);
return image;
}
/**
* @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
*/
public String getText (Object object) {
if (object == null) {
return Messages.ModelLabelProvider____None____1;
}
ILabeledElement label = (ILabeledElement)BPELUtil.adapt(object, ILabeledElement.class, context );
if (label == null) {
return "<???>"; //$NON-NLS-1$
}
return label.getLabel(object);
}
/** (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
*/
public void dispose() {
}
/**
* @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
*/
public boolean isLabelProperty (Object element, String property) {
return true;
}
/**
* @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void addListener(ILabelProviderListener listener) {
// do nothing
}
/** (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void removeListener(ILabelProviderListener listener) {
// do nothing
}
}