private void showTypeConflictMessage(String message, List<Produto> produtos) { this.view.showPopUp(message); this.view.addLocalDynamicMenssage(message, "saidaPadrao", true); for (Produto produto : produtos) { this.view.addLocalDynamicMenssage( "* " + WordFormatter.abstractStr(produto.getNome(), 20) + " : não foi associado.", getSaidaCategoria(), false); } }
public void resyncByCategoria() { List<Produto> remove = new LinkedList<Produto>(); for (Produto produto : produtos) { if (!categoriaColaborador.equals(produto.getCategoria())) { remove.add(produto); } } this.produtos.removeAll(remove); if (remove.size() > 0) { showTypeConflictMessage( "Os não " + getCategoriaColaborador() + "s deste " + getCategoriaColaborador().getColaborador() + " foram desassociados.", remove); } }
public void associarProdutos(List<Produto> produtos) { ProdutoComparator comparator = new ProdutoComparator(); List<Produto> conflic = new LinkedList<Produto>(); for (Produto produto : produtos) { if (categoriaColaborador.equals(produto.getCategoria())) { Collections.sort(this.produtos, comparator); if (Collections.binarySearch(this.produtos, produto, comparator) < 0) { this.produtos.add(produto); } } else { conflic.add(produto); } } if (conflic.size() > 0) { showTypeConflictMessage( "Somente " + getCategoriaColaborador() + "s serão associados.", conflic); } }
@Override public int compare(Produto o1, Produto o2) { return o1.getCodigo().compareTo(o2.getCodigo()); }