package com.topsun.posclient.sales.ui.table; import java.math.BigDecimal; 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 com.topsun.posclient.common.ProjectUtil; import com.topsun.posclient.common.service.IBaseService; import com.topsun.posclient.common.service.impl.BaseServiceImpl; import com.topsun.posclient.common.ui.utils.ThemeUtils; import com.topsun.posclient.datamodel.OldGold; /** * 旧金鉴定表格编辑 * * @author Dong * */ public class OldGoldIdentifyTableLableProvider implements ITableLabelProvider,ITableColorProvider { private Color[] bg = ThemeUtils.getCurrent().getTableCellBg(); private Color[] force = ThemeUtils.getCurrent().getTableCellForce(); private Object current = null; private int currentColor = 0; public IBaseService baseService = new BaseServiceImpl(); 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) { return null; } @Override public String getColumnText(Object element, int columnIndex) { if (element instanceof OldGold) { OldGold oGold = (OldGold) element; String matnr = oGold.getMtartCode(); //物料编码 String name = oGold.getName();//旧品名称 BigDecimal neatNess = oGold.getNeatness();//成色 BigDecimal weight_G = oGold.getWeight_G(); BigDecimal loss = oGold.getLoss();//耗损率 BigDecimal weight_R = oGold.getWeight_R();//耗损重 BigDecimal weight_F = oGold.getWeight_F();//折金重 BigDecimal weight = oGold.getWeight();//纯金重 BigDecimal price_G = oGold.getPrice_G();//单价 BigDecimal serviceFee = oGold.getService();//服务费 BigDecimal sum = oGold.getSum();//抵扣金额 switch (columnIndex) { case 0: return matnr; //物料编码 case 1: if(null == name){ return "旧金"; } return name;//旧品名称 case 2: return "1";//件数 case 3: if(null == neatNess){ return "0.00"; } return neatNess.toString();//成色 case 4: if(weight_G == null){ return "0.000"; } return weight_G.toString();//称重 case 5: if(null == weight){ return "0.000"; } return weight.toString();//纯金重 case 6: if(null == loss){ return "0.00"; } String t_loss = ProjectUtil.formatAmount(null, loss).toString(); if("0.01".equals(t_loss)){ return "1%"; }else if ("0.12".equals(t_loss)){ return "12%"; } else if("0.15".equals(t_loss)){ return "15%"; }else{ return "0%"; } // ProjectUtil.formatAmount(null, loss).toString();//耗损比 case 7: if(null == weight_R){ return "0.00"; } return ProjectUtil.formatAmount(null, weight_R);//耗损重 case 8: if(null == weight_F){ return "0.000"; } return ProjectUtil.formatNetnessAmount(null, weight_F);//折金重 case 9: if(null == price_G){ return "0.00"; } return ProjectUtil.formatAmount(null, price_G);//单价 case 10: if(null == serviceFee){ return "0.00"; } int t_ServiceFee = oGold.getT_ServiceFee(); if(t_ServiceFee == 0){ return "6元/g"; }else if(t_ServiceFee == 1){ return "10元/g"; }else if (t_ServiceFee == 2){ return "12元/g"; }else{ return "0元/g"; } // return ProjectUtil.formatAmount(null, serviceFee).toString();//服务费 case 11: if(null == sum){ return "0.00"; } sum = sum.setScale(2, BigDecimal.ROUND_HALF_UP); return ProjectUtil.formatAmount(null, sum);//抵扣金额 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]; } }