blob: 91c191ed9215d9639637d6104a95397f4f8d4ef5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 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
* Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
******************************************************************************/
package org.eclipse.jface.viewers;
/**
* TableColumnViewerLabelProvider is the mapping from the table based providers
* to the ViewerLabelProvider.
*
* <strong>EXPERIMENTAL</strong> This class or interface has been added as part
* of a work in progress. This API may change at any given time. Please do not
* use this API without consulting with the Platform/UI team.
*
* @since 3.3
* @see ITableLabelProvider
* @see ITableColorProvider
* @see ITableFontProvider
*
*/
class TableColumnViewerLabelProvider extends WrappedViewerLabelProvider {
private ITableLabelProvider tableLabelProvider;
private ITableColorProvider tableColorProvider;
private ITableFontProvider tableFontProvider;
/**
* Create a new instance of the receiver.
*
* @param labelProvider
* instance of a table based label provider
* @param columnIndex
* the index into the table for this column
* @see ITableLabelProvider
* @see ITableColorProvider
* @see ITableFontProvider
*/
public TableColumnViewerLabelProvider(IBaseLabelProvider labelProvider) {
super(labelProvider);
if (labelProvider instanceof ITableLabelProvider)
tableLabelProvider = (ITableLabelProvider) labelProvider;
if (labelProvider instanceof ITableColorProvider)
tableColorProvider = (ITableColorProvider) labelProvider;
if (labelProvider instanceof ITableFontProvider)
tableFontProvider = (ITableFontProvider) labelProvider;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.WrappedViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
*/
public void update(ViewerCell cell) {
Object element = cell.getElement();
int index = cell.getColumnIndex();
if (tableLabelProvider == null) {
cell.setText(getLabelProvider().getText(element));
cell.setImage(getLabelProvider().getImage(element));
} else {
cell.setText(tableLabelProvider.getColumnText(element, index));
cell.setImage(tableLabelProvider.getColumnImage(element, index));
}
if (tableColorProvider == null) {
if (getColorProvider() != null) {
cell.setBackground(getColorProvider().getBackground(element));
cell.setForeground(getColorProvider().getForeground(element));
}
} else {
cell.setBackground(tableColorProvider
.getBackground(element, index));
cell.setForeground(tableColorProvider
.getForeground(element, index));
}
if (tableFontProvider == null) {
if (getFontProvider() != null)
cell.setFont(getFontProvider().getFont(element));
} else
cell.setFont(tableFontProvider.getFont(element, index));
}
}