package com.topsun.posclient.sales.ui.table; import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.widgets.TableItem; import com.topsun.posclient.common.service.IBaseService; import com.topsun.posclient.common.service.impl.BaseServiceImpl; import com.topsun.posclient.common.ui.utils.FormatUtils; import com.topsun.posclient.datamodel.GoldPrice; public class GoldPriceCellModify implements ICellModifier { IBaseService baseService = new BaseServiceImpl(); public TableViewer tableViewer; public GoldPriceCellModify(TableViewer tableViewer){ this.tableViewer = tableViewer; } @Override public boolean canModify(Object element, String property) { if("Price".equals(property)){ return true; } return false; } @Override public Object getValue(Object element, String property) { if(element instanceof GoldPrice){ GoldPrice goldPrice = (GoldPrice)element; if("Price".equals(property)){ return goldPrice.getPrice()!=null?goldPrice.getPrice():"0.00"; } } return null; } @Override public void modify(Object element, String property, Object value) { if(element instanceof TableItem){ if("Price".equals(property)){ TableItem item = (TableItem)element; Object obj = item.getData(); GoldPrice goldPrice =(GoldPrice)obj; if("".equals(value.toString().trim())){ return; } if(obj instanceof GoldPrice){ boolean flag = FormatUtils.chenckNumFormat(tableViewer.getTable(), value.toString(), "【金价】格式错误"); if(!flag){ return; } goldPrice.setPrice(String.valueOf(value)); } tableViewer.refresh(); } } } }