package tela.editingSupport;
import java.math.BigDecimal;
import java.text.ParseException;
import org.apache.log4j.Logger;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.TreeViewer;
import aplicacao.helper.FormatterHelper;
import banco.modelo.ItemServico;
public class ValorUnitarioItemServico extends EditingSupport{
private TreeViewer viewer;
private Logger log = Logger.getLogger(getClass());
public ValorUnitarioItemServico(TreeViewer tvServicoProduto) {
super(tvServicoProduto);
this.viewer = tvServicoProduto;
}
@Override
protected CellEditor getCellEditor(Object element) {
TextCellEditor tce = new TextCellEditor(viewer.getTree());
return tce;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
ItemServico is = (ItemServico)element;
if(is.getValorUnitario() != null)
return FormatterHelper.getDecimalFormat().format(is.getValorUnitario());
return "";
}
@Override
protected void setValue(Object element, Object value) {
ItemServico is = (ItemServico)element;
String val = (String)value;
if(!val.isEmpty()){
try {
is.setValorUnitario(new BigDecimal(FormatterHelper.getDecimalFormat().parse(val).toString()));
is.setTotal(is.getValorUnitario().multiply(new BigDecimal(is.getQuantidade())));
viewer.refresh();
} catch (ParseException e) {
log.error(e);
}
}
}
}