package fr.iutfbleau.projetIHM2021FI2.View;

import fr.iutfbleau.projetIHM2021FI2.API.*;
import fr.iutfbleau.projetIHM2021FI2.Model.*;

import javax.swing.*;

import javax.swing.table.*;

/**
 * Ce fichier nous permet d'afficher le JTable contenant les informations de la base de données.
 * Ainsi, l'utilisateur obtient, dans la page principale, le contenu de la base de données concernant la liste des chambres disponibles.
 *  
 * @version 1.0
 * @author Anice TAJGALT, Gianni MANZARI, Alban DUMAS
 */
public class PrereservationView extends JScrollPane {
    private static PrereservationView instance;
    private DefaultTableModel model;
    private JTable table;

    /**
     * Constructeur
     */
    private PrereservationView() {
        super();

        String[] header = {"Référence", "Date de début", "Nombre de nuits", "Catégorie chambre"};
        this.model = new DefaultTableModel(null, header);

        this.table = new JTable(this.model);
        this.setViewportView(this.table);
    }


    //          AJOUT DES BONS TUPLES APRES LA RECHERCHE
    public void ajoutTuples(String[] data) {
        this.model.addRow(data);
    }

    //          MISE A ZERO DU TABLEAU
    public void viderTableau() {
        this.model.setRowCount(0);
    }


    //          SELECT RESERVATION
    public Prereservation getSelectedReservation() {
        PrereservationFactoryModel factory = new PrereservationFactoryModel();
        Prereservation reserv = null;

        int selectedRow = this.table.getSelectedRow();
        reserv = factory.getPrereservation(this.table.getValueAt(selectedRow, 0).toString());

        return reserv;
    }

    //          GET INSTANCE DU TABLEAU
    public static PrereservationView getInstance() {
        if (instance == null) {
            instance = new PrereservationView();
        }
        return instance;
    }
}