/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * 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: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.ui.trading; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import org.eclipsetrader.core.trading.IOrderMonitor; import org.eclipsetrader.core.trading.IOrderStatus; public class OrdersLabelProviderWrapper extends ColumnLabelProvider { private Color canceledColor; private Color rejectedColor; private Color filledColor; private Color partialColor; private ColumnLabelProvider labelProvider; public OrdersLabelProviderWrapper(ColumnLabelProvider labelProvider) { this.labelProvider = labelProvider; canceledColor = Display.getCurrent().getSystemColor(SWT.COLOR_GRAY); rejectedColor = Display.getCurrent().getSystemColor(SWT.COLOR_RED); filledColor = Display.getCurrent().getSystemColor(SWT.COLOR_GREEN); partialColor = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ColumnLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) */ @Override public void update(ViewerCell cell) { Object element = cell.getElement(); cell.setText(labelProvider.getText(element)); cell.setImage(labelProvider.getImage(element)); cell.setBackground(labelProvider.getBackground(element)); Color color = labelProvider.getForeground(element); cell.setForeground(color != null ? color : getForeground(element)); cell.setFont(labelProvider.getFont(element)); } @Override public Color getForeground(Object element) { IOrderMonitor order = (IOrderMonitor) element; if (order.getStatus() == IOrderStatus.Canceled || order.getStatus() == IOrderStatus.Expired) { return canceledColor; } if (order.getStatus() == IOrderStatus.Rejected) { return rejectedColor; } if (order.getStatus() == IOrderStatus.Filled) { return filledColor; } if (order.getStatus() == IOrderStatus.Partial) { return partialColor; } return null; } }