/*******************************************************************************
* Copyright (c) 2004, 2007 Boeing.
* 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:
* Boeing - initial API and implementation
*******************************************************************************/
package org.eclipse.nebula.widgets.xviewer.example.styledExample;
import org.eclipse.jface.viewers.ILabelProviderListener;
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.MyXViewerFactory;
import org.eclipse.nebula.widgets.xviewer.example.images.MyImageCache;
import org.eclipse.nebula.widgets.xviewer.example.model.ISomeTask;
import org.eclipse.nebula.widgets.xviewer.util.XViewerException;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
/**
* Label provider for example StyledStringLabelProvider implementation
*
* @author Andrew M. Finkbeiner
*/
public class XViewerTestStyledStringLabelProvider extends XViewerStyledTextLabelProvider {
private final XViewerStyledStringLableProviderTest xViewerTest;
public XViewerTestStyledStringLabelProvider(XViewerStyledStringLableProviderTest xViewerTest) {
super(xViewerTest);
this.xViewerTest = xViewerTest;
}
@Override
public void dispose() {
// do nothing
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void addListener(ILabelProviderListener listener) {
// do nothing
}
@Override
public void removeListener(ILabelProviderListener listener) {
// do nothing
}
@Override
public Image getColumnImage(Object element, XViewerColumn xCol, int columnIndex) {
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;
}
@SuppressWarnings("unused")
@Override
public Color getBackground(Object element, XViewerColumn viewerColumn, int columnIndex) throws XViewerException {
return null;
}
@SuppressWarnings("unused")
@Override
public Font getFont(Object element, XViewerColumn viewerColumn, int columnIndex) throws XViewerException {
return null;
}
@SuppressWarnings("unused")
@Override
public Color getForeground(Object element, XViewerColumn viewerColumn, int columnIndex) throws XViewerException {
return null;
}
@SuppressWarnings("unused")
@Override
public StyledString getStyledText(Object element, XViewerColumn xCol, int columnIndex) throws XViewerException {
if (element instanceof String) {
if (columnIndex == 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");
}
}