package com.topsun.posclient.sales.ui.table; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import com.topsun.posclient.common.ProjectUtil; import com.topsun.posclient.common.ui.utils.ThemeUtils; import com.topsun.posclient.datamodel.GoldPrice; public class GoldPriceTableLableProvider implements ITableLabelProvider,ITableColorProvider { private Color[] bg = ThemeUtils.getCurrent().getTableCellBg(); private Color[] force = ThemeUtils.getCurrent().getTableCellForce(); private Object current = null; private int currentColor = 0; public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } public Image getColumnImage(Object element, int columnIndex) { Image image = new Image(Display.getDefault(), 1, 30); return null; } public String getColumnText(Object element, int columnIndex) { if (element instanceof GoldPrice) { GoldPrice goldPrice = (GoldPrice) element; String mtartName = goldPrice.getMtartName(); String price = goldPrice.getPrice(); String lastSyncTime = goldPrice.getLastSyncTime(); switch (columnIndex) { case 0: return mtartName; case 1: return lastSyncTime; case 2: return ProjectUtil.formatAmount(null, ProjectUtil.formatString(price)); default: return ""; } } return element.toString(); } @Override public Color getForeground(Object element, int columnIndex) { return force[currentColor]; } @Override public Color getBackground(Object element, int columnIndex) { if (current != element) { currentColor = 1 - currentColor; current = element; } return bg[currentColor]; } }