package org.eclipse.nebula.widgets.xviewer.example;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.nebula.widgets.xviewer.XViewerStyledTextLabelProvider;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
import org.eclipse.nebula.widgets.xviewer.example.images.MyImageCache;
import org.eclipse.nebula.widgets.xviewer.example.model.ISomeTask;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
public class MyXViewerStyledTextLabelProvider extends XViewerStyledTextLabelProvider {
private final MyXViewer xViewerTest;
public MyXViewerStyledTextLabelProvider(MyXViewer viewer) {
super(viewer);
this.xViewerTest = viewer;
}
@Override
public Image getColumnImage(Object element, XViewerColumn xCol, int column) throws Exception {
if (xCol.equals(MyXViewerFactory.Run_Col)) {
return xViewerTest.isRun((ISomeTask) element) ? MyImageCache.getImage(
"chkbox_enabled.gif") : MyImageCache.getImage("chkbox_disabled.gif");
}
if (xCol.equals(MyXViewerFactory.Name_Col) && xViewerTest.isScheduled((ISomeTask) element)) {
return MyImageCache.getImage("clock.gif");
}
return null;
}
@Override
public StyledString getStyledText(Object element, XViewerColumn xCol, int column) throws Exception {
if (element instanceof String) {
if (column == 1) {
return new StyledString((String) element);
} else {
return new StyledString("");
}
}
ISomeTask task = ((ISomeTask) element);
if (task == null) {
return new StyledString("");
}
if (xCol.equals(MyXViewerFactory.Run_Col)) {
return new StyledString(String.valueOf(xViewerTest.isRun(task)), StyledString.COUNTER_STYLER);
}
if (xCol.equals(MyXViewerFactory.Name_Col)) {
return new StyledString(task.getId(), StyledString.DECORATIONS_STYLER);
}
if (xCol.equals(MyXViewerFactory.Schedule_Time)) {
return new StyledString(task.getStartTime(), StyledString.QUALIFIER_STYLER);
}
if (xCol.equals(MyXViewerFactory.Run_Db)) {
return new StyledString(task.getRunDb().name(), StyledString.COUNTER_STYLER);
}
if (xCol.equals(MyXViewerFactory.Task_Type)) {
return new StyledString(task.getTaskType().name(), StyledString.DECORATIONS_STYLER);
}
if (xCol.equals(MyXViewerFactory.Description)) {
return new StyledString(task.getDescription(), StyledString.COUNTER_STYLER);
}
if (xCol.equals(MyXViewerFactory.Category)) {
return new StyledString(task.getCategory(), StyledString.DECORATIONS_STYLER);
}
if (xCol.equals(MyXViewerFactory.Notification)) {
return new StyledString(task.getEmailAddress(), StyledString.QUALIFIER_STYLER);
}
return new StyledString("unhandled column");
}
@Override
public Color getBackground(Object element, XViewerColumn viewerColumn, int columnIndex) throws Exception {
return null;
}
@Override
public Color getForeground(Object element, XViewerColumn viewerColumn, int columnIndex) throws Exception {
return null;
}
@Override
public Font getFont(Object element, XViewerColumn viewerColumn, int columnIndex) throws Exception {
return null;
}
}