/******************************************************************************* * 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; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider; 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.Image; /** * Example implementation for XViewerTest XViewer * * @author Donald G. Dunne */ public class MyXViewerLabelProvider extends XViewerLabelProvider { private final MyXViewer xViewerTest; public MyXViewerLabelProvider(MyXViewer xViewerTest) { super(xViewerTest); this.xViewerTest = xViewerTest; } @Override public String getColumnText(Object element, XViewerColumn xCol, int columnIndex) { if (element instanceof String) { if (columnIndex == 1) { return (String) element; } else { return ""; } } ISomeTask task = ((ISomeTask) element); if (task == null) { return ""; } if (xCol.equals(MyXViewerFactory.Run_Col)) { return String.valueOf(xViewerTest.isRun(task)); } if (xCol.equals(MyXViewerFactory.Name_Col)) { return task.getId(); } if (xCol.equals(MyXViewerFactory.Schedule_Time)) { return task.getStartTime(); } if (xCol.equals(MyXViewerFactory.Run_Db)) { return task.getRunDb().name(); } if (xCol.equals(MyXViewerFactory.Task_Type)) { return task.getTaskType().name(); } if (xCol.equals(MyXViewerFactory.Description)) { return task.getDescription(); } if (xCol.equals(MyXViewerFactory.Category)) { return task.getCategory(); } if (xCol.equals(MyXViewerFactory.Notification)) { return task.getEmailAddress(); } if (xCol.equals(MyXViewerFactory.Last_Run_Date)) { return task.getLastRunDateStr(); } if (xCol.equals(MyXViewerFactory.Completed_Col)) { return String.valueOf(task.getPercentComplete()); } if (xCol.equals(MyXViewerFactory.Long_Column)) { return String.valueOf(task.getLongValue()); } return "unhandled column"; } @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; } @Override public Color getBackground(Object element, int columnIndex) { return super.getBackground(element, columnIndex); } @Override public int getColumnGradient(Object element, XViewerColumn xCol, int columnIndex) throws Exception { if (!(element instanceof ISomeTask)) { return 0; } ISomeTask task = ((ISomeTask) element); if (xCol.equals(MyXViewerFactory.Completed_Col)) { return task.getPercentComplete(); } return 0; } }