Raw File
TabNettoyageLocuteursMessagesModel.java
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<LocuteurPourNettoyage> listLocuteursPourNettoyage = new ArrayList<LocuteurPourNettoyage>();
	private String[] columnNames;
	@SuppressWarnings("rawtypes")
	private Class[] types = new Class[] { String.class, String.class,
			String.class, String.class, String.class };

	public TabNettoyageLocuteursMessagesModel(
			List<LocuteurModel> listLocuteurs, String[] columnNames) {
		super();
		this.columnNames = columnNames;
		for (LocuteurModel locuteur : listLocuteurs) {
			Set<String> tabGPs = locuteur.getSetGroupPosts();
			Set<String> tabPs = locuteur.getSetProfils();
			Set<String> 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<LocuteurPourNettoyage> getSetLocuteursPourNettoyage() {
		Set<LocuteurPourNettoyage> setLocuteursPourNettoyage = new HashSet<LocuteurPourNettoyage>(
				listLocuteursPourNettoyage);
		return setLocuteursPourNettoyage;
	}
}
back to top