/* * Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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: * Eike Stepper - initial API and implementation */ package org.eclipse.emf.cdo.transfer.spi.ui; import org.eclipse.emf.cdo.transfer.CDOTransferElement; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; /** * A reusable implementation of a {@link ILabelProvider label provider} that delegates to another label provider * for the extracted {@link CDOTransferElement#getNativeObject() native object} of an argument object. * * @author Eike Stepper */ public class NativeObjectLabelProvider extends LabelProvider { private ILabelProvider delegate; public NativeObjectLabelProvider(ILabelProvider delegate) { this.delegate = delegate; } public final ILabelProvider getDelegate() { return delegate; } @Override public void dispose() { delegate.dispose(); delegate = null; } @Override public String getText(Object object) { if (object instanceof CDOTransferElement) { CDOTransferElement element = (CDOTransferElement)object; Object nativeObject = element.getNativeObject(); return delegate.getText(nativeObject); } return super.getText(object); } @Override public Image getImage(Object object) { if (object instanceof CDOTransferElement) { CDOTransferElement element = (CDOTransferElement)object; Object nativeObject = element.getNativeObject(); return delegate.getImage(nativeObject); } return super.getImage(object); } }