package gui.models;
import java.util.Collection;
import java.util.Iterator;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import metier.reservations.Demande;
import misc.Utils;
import data.programmation.Piece;
import data.programmation.Representation;
/**
* Modèle contenant les informations sur une représentation.
*
* Les infos listées sont :
* <ul>
* <li> Les places restantes pour cette zones
* <li> Les prix pour chaque zone et chaque catégorie
* </ul>
*
* @author Ait Elhaj Brahim
*
* @see AbstractTableModel
* @see JTable
*/
public class InfoRepresentationModel extends AbstractTableModel {
private Object[][] donnees;
private static int NB_COLONNES = 5;
private String[] titreColonnes = { "Zone", "Places restantes", "Tarif Abonné",
"Tarif Réduit", "Tarif Normal" };
/**
* Consruit un modèle avec les informations associées à un représentation.
*
* @param p
* La piece associé à cette liste
* @param r
* La représentation dont on veut lister les informations
*/
public InfoRepresentationModel(Piece p, Representation r) {
Demande d = new Demande();
Collection lesZones;
lesZones = d.getZones();
// On créer le tableau de données
donnees = new Object[lesZones.size()][NB_COLONNES];
int i = 0;
Iterator itZones = lesZones.iterator();
while (itZones.hasNext()) {
String idZone = (String) itZones.next();
int nbPiecesLibres = d.getNbPlacesLibres(r.getIdSeance(), idZone);
Object[] ligne = { idZone, new Integer(nbPiecesLibres),
new Double(p.getTarif(Utils.CATEGORIE_ABONNE, idZone)),
new Double(p.getTarif(Utils.CATEGORIE_REDUIT, idZone)),
new Double(p.getTarif(Utils.CATEGORIE_NORMAL, idZone)) };
donnees[i] = ligne;
i++;
}
}
/**
* Renvoie le nombre de colonnes.
*/
public int getColumnCount() {
return NB_COLONNES;
}
/**
* renvoie la valeur de la cellule.
* @param parm1 l'indice de ligne
* @param parm2 l'indice de la colonne
*
*/
public Object getValueAt(int parm1, int parm2) {
return donnees[parm1][parm2];
}
/**
* Renvoie le nombre de colonnes.
*/
public int getRowCount() {
return donnees.length;
}
/**
* Renvoie le nom de la colonne d'indice col
* @param col L'indice de la colonne
*/
public String getColumnName(int col) {
return titreColonnes[col];
}
}