package fr.opensagres.mongodb.ide.ui.viewers.editor;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
import fr.opensagres.mongodb.ide.core.model.stats.CollectionStats;
import fr.opensagres.mongodb.ide.core.model.stats.IndexStats;
public abstract class GradientProgressBarColumnLabelProvider extends
TreeEditorColumnLabelProvider<GradientProgressBar> implements
IProgressBarValueProvider {
@Override
protected boolean hasControlEditor(Object element) {
return element instanceof CollectionStats
|| element instanceof IndexStats;
}
@Override
protected void updateEditor(GradientProgressBar editor, Object element) {
editor.setText(getText(element));
editor.setValue(getProgressBarValue(element));
}
@Override
protected GradientProgressBar createEditor(Tree parent,
final TreeItem item, int columnIndex, Object element,
final ViewerCell cell) {
final TreeColumn treeColumn = parent.getColumn(columnIndex);
IWidthProvider widthProvider = new IWidthProvider() {
public int getWidth() {
return treeColumn.getWidth();
}
};
String text = getText(element);
return new GradientProgressBar(parent, SWT.NONE, item.getBackground(),
widthProvider, getProgressBarValue(element), text);
}
}