package com.topsun.posclient.finance.ui.view;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TableItem;
import com.topsun.posclient.datamodel.PayRecord;
public class PayReCordCellModifier implements ICellModifier
{
private TableViewer tv;
public static final String[] PAY_PROPERTIES = { "payDate", "bankName", "account", "amount", "payer", "approve", "approveDate", "remark"};
public PayReCordCellModifier(TableViewer tv, Composite parent)
{
this.tv = tv;
}
public boolean canModify(Object element, String property) {
return true;
}
public Object getValue(Object element, String property) {
PayRecord p = (PayRecord)element;
if (property.equals(PAY_PROPERTIES[0]))
return p.getPayDate()==null?"":p.getPayDate();
if (property.equals(PAY_PROPERTIES[1]))
return p.getBankName()==null?"":p.getBankName();
if (property.equals(PAY_PROPERTIES[2]))
return p.getAccount()==null?"":p.getAccount();
if (property.equals(PAY_PROPERTIES[3]))
return String.valueOf(p.getAmount());
if (property.equals(PAY_PROPERTIES[4]))
return p.getPayer()==null?"":p.getPayer();
if (property.equals(PAY_PROPERTIES[5]))
return p.getApprove()==null?"":p.getApprove();
if (property.equals(PAY_PROPERTIES[6]))
return p.getApproveDate()==null?"":p.getApproveDate();
if (property.equals(PAY_PROPERTIES[7]))
return p.getRemark()==null?"":p.getRemark();
return "";
}
// private int getJavaTypeIndex(String name) {
// for (int i = 0; i < SETTLEACC_WAY.length; ++i)
// if (SETTLEACC_WAY[i].equals(name))
// return i;
// return -1;
// }
public void modify(Object element, String property, Object value) {
TableItem item = (TableItem)element;
PayRecord p = (PayRecord)item.getData();
if(property.equals(PAY_PROPERTIES[0])){
p.setPayDate(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[1])){
p.setBankName(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[2])){
p.setAccount(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[3])){
if(value.toString().equals("")){
p.setAmount(0);
}else{
p.setAmount(Double.valueOf(value.toString()));
}
}
if(property.equals(PAY_PROPERTIES[4])){
p.setPayer(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[5])){
p.setApprove(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[6])){
p.setApproveDate(String.valueOf(value));
}
if(property.equals(PAY_PROPERTIES[7])){
p.setRemark(String.valueOf(value));
}
tv.refresh();
}
}