package modeles.tableaux; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.swing.table.AbstractTableModel; import extra.LocuteurPourNettoyage; import modeles.LocuteurModel; public class TabNettoyageLocuteursMessagesModel extends AbstractTableModel { private static final long serialVersionUID = 1L; private List listLocuteursPourNettoyage = new ArrayList(); private String[] columnNames; @SuppressWarnings("rawtypes") private Class[] types = new Class[] { String.class, String.class, String.class, String.class, String.class }; public TabNettoyageLocuteursMessagesModel( List listLocuteurs, String[] columnNames) { super(); this.columnNames = columnNames; for (LocuteurModel locuteur : listLocuteurs) { Set tabGPs = locuteur.getSetGroupPosts(); Set tabPs = locuteur.getSetProfils(); Set tabMails = locuteur.getSetMails(); for (String gP : tabGPs) { for (String p : tabPs) { for (String m : tabMails) { this.listLocuteursPourNettoyage .add(new LocuteurPourNettoyage(locuteur .getNom(), locuteur.getNom(), gP, p, m)); } } } } } @Override public String getColumnName(int col) { return columnNames[col]; } @Override public Class getColumnClass(int columnIndex) { return types[columnIndex]; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return listLocuteursPourNettoyage.size(); } @Override public Object getValueAt(int row, int col) { switch (col) { case 0: return listLocuteursPourNettoyage.get(row).getAncienNom(); case 1: return listLocuteursPourNettoyage.get(row).getNouveauNom(); case 2: return listLocuteursPourNettoyage.get(row).getGroupPost(); case 3: return listLocuteursPourNettoyage.get(row).getProfil(); case 4: return listLocuteursPourNettoyage.get(row).getMail(); default: return null; } } public void addLocuteur(LocuteurPourNettoyage locuteurPourNettoyage) { listLocuteursPourNettoyage.add(locuteurPourNettoyage); fireTableRowsInserted(listLocuteursPourNettoyage.size() - 1, listLocuteursPourNettoyage.size() - 1); } public void removeLocuteur(int row) { listLocuteursPourNettoyage.remove(row); fireTableRowsDeleted(row, row); } @Override public void setValueAt(Object aValue, int row, int col) { if (aValue != null) { LocuteurPourNettoyage locuteurPourNettoyage = listLocuteursPourNettoyage .get(row); switch (col) { case 0: locuteurPourNettoyage.setAncienNom((String) aValue); break; case 1: locuteurPourNettoyage.setNouveauNom((String) aValue); break; case 2: locuteurPourNettoyage.setGroupPost((String) aValue); break; case 3: locuteurPourNettoyage.setProfil((String) aValue); break; case 4: locuteurPourNettoyage.setMail((String) aValue); break; } fireTableDataChanged(); } } @Override public boolean isCellEditable(int row, int col) { if (col == 1) return true; else return false; } public Set getSetLocuteursPourNettoyage() { Set setLocuteursPourNettoyage = new HashSet( listLocuteursPourNettoyage); return setLocuteursPourNettoyage; } }