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());
 }