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.AppConstants; 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.Item; import com.topsun.posclient.sales.ui.gold.PartSalesFacade; public class SalesTableLableProvider implements ITableLabelProvider,ITableColorProvider { public IBaseService baseService = new BaseServiceImpl(); private Color[] bg = ThemeUtils.getCurrent().getTableCellBg(); private Color[] force = ThemeUtils.getCurrent().getTableCellForce(); private Object current = null; private int currentColor = 0; @Override public void addListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } @Override public boolean isLabelProperty(Object element, String property) { // TODO Auto-generated method stub return false; } @Override public void removeListener(ILabelProviderListener listener) { // TODO Auto-generated method stub } @Override public Image getColumnImage(Object element, int columnIndex) { return null; } @Override public String getColumnText(Object element, int columnIndex) { if (element instanceof Item) { Item item = (Item) element; String itemName = item.getItemName(); String itemCode = item.getItemCode(); String oldItemCode = item.getZYTM(); String itemType = item.getItemType(); String matkl = item.getMatkl(); String zcsbj = item.getZCSBJ(); BigDecimal zdpzl = item.getZDPZL(); BigDecimal zfzzzl = item.getZFZZZL(); BigDecimal factZjgf =item.getFactZJGF(); BigDecimal zmdlsbqj = item.getZMDLSBQJ(); String zsjcs = item.getZSJCS(); BigDecimal factAmount = item.getFactAmount(); BigDecimal zzzzz = item.getZZZZZ(); switch (columnIndex) { case 0: return itemCode; case 1: return oldItemCode; case 2: return itemName; case 3: return "1"; case 4: return zsjcs;//成色 case 5: if(zdpzl == null){ return ""; } return zdpzl.toString();//重量 case 6: if(zzzzz == null){ return ""; } return zzzzz.toString();//宝石 case 7: if(zfzzzl == null){ return ""; } return zfzzzl.toString();//副钻 case 8: if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){ return ""; } if(zmdlsbqj == null){ return "0.00"; } if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){ return ProjectUtil.formatAmount(null, item.getPrice()).toString();//素金显示实时金价 } if(PartSalesFacade.isSuGold(matkl)){ return ProjectUtil.formatAmount(null, item.getPrice()).toString();//素金显示实时金价 }else{ return ProjectUtil.formatAmount(null, zmdlsbqj);//单价 } case 9: if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){ return ""; } if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){ return ProjectUtil.formatAmount(null, factZjgf).toString(); } return ProjectUtil.formatAmount(null, factZjgf);//加工费 case 10: //应售 if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){ return ""; } if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){ return "-"+ProjectUtil.formatAmount(null, item.getSalesAmount()).toString(); } return ProjectUtil.formatAmount(null, item.getSalesAmount()).toString(); case 11: if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){ return ""; } return ProjectUtil.formatAmount(null, item.getPretlAmount());//优惠 case 12: if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){ if(null == factAmount){ return "0.00"; }else{ return ProjectUtil.formatAmount(null, factAmount).toString(); } } if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){ return "-"+ProjectUtil.formatAmount(null, item.getFactAmount()); } return ProjectUtil.formatAmount(null, factAmount).toString(); case 13: return zcsbj;//印记 case 14: // int userId = item.getCashier(); // Map<Integer,User> map = POSClientApp.get().getUserRelation(); // Iterator<Integer> iterator = map.keySet().iterator(); // while(iterator.hasNext()){ // int s = iterator.next(); // User user = map.get(s); // if(user.getId() == userId){ // return user.getUserName(); // } // } return item.getCashierName(); case 15://柜台名称 if(item.getZoneName() != null){ return item.getZoneName();//赠品 }else{ return ""; } case 16: return "";//赠品 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]; } }