package com.dgex.offspring.application.ui.home;
import java.text.DecimalFormat;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import com.dgex.offspring.application.utils.ICellDataLabelProvider;
import com.dgex.offspring.providers.service.ISellOrder;
public class SellOrderLabelProvider extends ColumnLabelProvider implements
ICellDataLabelProvider {
@Override
public void getCellData(Object o, int columnId, Object[] data) {
ISellOrder t = (ISellOrder) o;
switch (columnId) {
case SellOrderTable.COLUMN_CUMULATIVE:
data[TEXT] = new DecimalFormat("##.##").format(t.getCumulative());
break;
case SellOrderTable.COLUMN_QUANTITY:
data[TEXT] = new DecimalFormat("##.##").format(t.getQuantity());
break;
case SellOrderTable.COLUMN_QUOTE_PRICE:
data[TEXT] = new DecimalFormat(t.getBase().getDecimalFormat()).format(t
.getPrice());
break;
case SellOrderTable.COLUMN_TOTAL_PRICE:
data[TEXT] = new DecimalFormat("##.##").format(t.getPrice()
* t.getQuantity());
break;
default:
data[TEXT] = "UNKNOWN " + columnId;
break;
}
}
@Override
public void update(ViewerCell cell) {
super.update(cell);
ISellOrder t = (ISellOrder) cell.getElement();
Object[] data = { null, null, null, null };
getCellData(t, SellOrderTable.getColumns()[cell.getColumnIndex()], data);
if (data[TEXT] != null)
cell.setText((String) data[TEXT]);
if (data[IMAGE] != null)
cell.setImage((Image) data[IMAGE]);
if (data[FONT] != null)
cell.setFont((Font) data[FONT]);
if (data[FOREGROUND] != null)
cell.setForeground((Color) data[FOREGROUND]);
}
}