package rocks.inspectit.ui.rcp.editor.viewers;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
/**
* Special {@link StyledCellIndexLabelProvider} that can be used when checked style in table
* sub-view is active. This provider delegates to original provide with the decreased index.
*
* @author Ivan Senic
*
*/
public class CheckedDelegatingIndexLabelProvider extends StyledCellIndexLabelProvider {
/**
* Empty.
*/
private static final StyledString EMPTY_STYLED_STRING = new StyledString("");
/**
* Delegated {@link StyledCellIndexLabelProvider}.
*/
private StyledCellIndexLabelProvider delegate;
/**
* @param delegate
* Delegated {@link StyledCellIndexLabelProvider}.
*/
public CheckedDelegatingIndexLabelProvider(StyledCellIndexLabelProvider delegate) {
Assert.isNotNull(delegate);
this.delegate = delegate;
}
/**
* {@inheritDoc}
*/
@Override
protected StyledString getStyledText(Object element, int index) {
if (0 == index) {
return EMPTY_STYLED_STRING;
} else {
return delegate.getStyledText(element, index - 1);
}
}
/**
* {@inheritDoc}
*/
@Override
protected Color getBackground(Object element, int index) {
if (0 == index) {
return null;
} else {
return delegate.getBackground(element, index - 1);
}
}
/**
* {@inheritDoc}
*/
@Override
protected Image getColumnImage(Object element, int index) {
if (0 == index) {
return null;
} else {
return delegate.getColumnImage(element, index - 1);
}
}
/**
* {@inheritDoc}
*/
@Override
protected Font getFont(Object element, int index) {
if (0 == index) {
return null;
} else {
return delegate.getFont(element, index - 1);
}
}
/**
* {@inheritDoc}
*/
@Override
protected Color getForeground(Object element, int index) {
if (0 == index) {
return null;
} else {
return delegate.getForeground(element, index - 1);
}
}
/**
* {@inheritDoc}
*/
@Override
public String getToolTipText(Object element) {
return delegate.getToolTipText(element);
}
}