package tela.editingSupport; import java.math.BigDecimal; import java.util.List; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ComboBoxCellEditor; import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.TreeViewer; import banco.modelo.ForneceProduto; import banco.modelo.ItemServico; public class FornecedorItemServicoEditingSupport extends EditingSupport{ private TreeViewer viewer; public FornecedorItemServicoEditingSupport(TreeViewer tvServicoProduto) { super(tvServicoProduto); this.viewer = tvServicoProduto; } @Override protected CellEditor getCellEditor(Object element) { ItemServico is = (ItemServico) element; List<ForneceProduto> listaFornecedor = is.getItem().getListaFornecedores(); String arrayNomes[] = new String[listaFornecedor.size()]; for(int c = 0; c < listaFornecedor.size(); c++){ arrayNomes[c] = listaFornecedor.get(c).getPessoa().getNome(); } return new ComboBoxCellEditor(viewer.getTree(), arrayNomes); } @Override protected boolean canEdit(Object element) { return true; } @Override protected Object getValue(Object element) { ItemServico is = (ItemServico)element; List<ForneceProduto> listaFornecedor = is.getItem().getListaFornecedores(); if(is.getFornecedor() != null){ for(int c = 0; c < is.getItem().getListaFornecedores().size(); c++){ if(is.getFornecedor().equals(listaFornecedor.get(c).getPessoa())) return c; } } return -1; } @Override protected void setValue(Object element, Object value) { ItemServico is = (ItemServico)element; Integer posicao = (Integer)value; if(posicao > -1){ is.setFornecedor(is.getItem().getListaFornecedores().get(posicao).getPessoa()); is.setValorUnitario(is.getItem().getListaFornecedores().get(posicao).getValorUnitario()); BigDecimal total = is.getValorUnitario().multiply(new BigDecimal(is.getQuantidade())); is.setTotal(total); viewer.refresh(); } } }