0% found this document useful (0 votes)
4 views3 pages

Class Main Hotel

The document outlines the main class for a hotel application, which initializes various components including DAOs, services, controllers, and UI panels. It also includes a method to add test data for clients and rooms to the application. The application uses Swing for the user interface and organizes functionalities related to client management, room reservations, and invoice processing.

Uploaded by

prisojohan2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views3 pages

Class Main Hotel

The document outlines the main class for a hotel application, which initializes various components including DAOs, services, controllers, and UI panels. It also includes a method to add test data for clients and rooms to the application. The application uses Swing for the user interface and organizes functionalities related to client management, room reservations, and invoice processing.

Uploaded by

prisojohan2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

package com.hotel.

main;

import com.hotel.controller.ClientController;
import com.hotel.controller.InvoiceController;
import com.hotel.controller.ReservationController;
import com.hotel.controller.RoomController;
import com.hotel.dao.ClientDAO;
import com.hotel.dao.InvoiceDAO;
import com.hotel.dao.ReservationDAO;
import com.hotel.dao.RoomDAO;
import com.hotel.dao.impl.ClientDAOImpl;
import com.hotel.dao.impl.InvoiceDAOImpl;
import com.hotel.dao.impl.ReservationDAOImpl;
import com.hotel.dao.impl.RoomDAOImpl;
import com.hotel.model.Client;
import com.hotel.model.Room;
import com.hotel.model.RoomCategory;
import com.hotel.service.ClientService;
import com.hotel.service.InvoiceService;
import com.hotel.service.ReservationService;
import com.hotel.service.RoomService;
import com.hotel.util.PDFGenerator;
import com.hotel.view.ClientPanel;
import com.hotel.view.InvoicePanel;
import com.hotel.view.MainFrame;
import com.hotel.view.ReservationPanel;
import com.hotel.view.RoomPanel;

import javax.swing.*;
import java.awt.*;

/**
* Classe principale de l'application.
*/
public class HotelApplication {

/**
* Point d'entrée de l'application.
*/
public static void main(String[] args) {
// Définir le look and feel
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}

// Initialiser les DAOs


ClientDAO clientDAO = new ClientDAOImpl();
RoomDAO roomDAO = new RoomDAOImpl();
ReservationDAO reservationDAO = new ReservationDAOImpl();
InvoiceDAO invoiceDAO = new InvoiceDAOImpl();

// Initialiser les services


ClientService clientService = new ClientService(clientDAO);
RoomService roomService = new RoomService(roomDAO);
ReservationService reservationService = new
ReservationService(reservationDAO);
PDFGenerator pdfGenerator = new PDFGenerator();
InvoiceService invoiceService = new InvoiceService(invoiceDAO,
pdfGenerator);

// Initialiser les contrôleurs


ClientController clientController = new ClientController(clientService);
RoomController roomController = new RoomController(roomService);
ReservationController reservationController = new
ReservationController(reservationService);
InvoiceController invoiceController = new
InvoiceController(invoiceService);

// Ajouter des données de test


addTestData(clientService, roomService);

// Initialiser les panneaux


ClientPanel clientPanel = new ClientPanel(clientController);
RoomPanel roomPanel = new RoomPanel(roomController);
ReservationPanel reservationPanel = new
ReservationPanel(reservationController, clientController, roomController);
InvoicePanel invoicePanel = new InvoicePanel(invoiceController,
reservationController, clientController);

// Initialiser la fenêtre principale


SwingUtilities.invokeLater(() -> {
MainFrame mainFrame = new MainFrame(clientPanel, roomPanel,
reservationPanel, invoicePanel);
mainFrame.setVisible(true);
});
}

/**
* Ajoute des données de test à l'application.
*/
private static void addTestData(ClientService clientService, RoomService
roomService) {
// Ajouter quelques clients
Client client1 = new Client();
client1.setFirstName("Jean");
client1.setLastName("Dupont");
client1.setAddress("123 Rue de Paris, 75001 Paris");
client1.setPhoneNumber("0123456789");
client1.setEmail("[email protected]");
clientService.addClient(client1);

Client client2 = new Client();


client2.setFirstName("Marie");
client2.setLastName("Martin");
client2.setAddress("456 Avenue des Champs-Élysées, 75008 Paris");
client2.setPhoneNumber("0987654321");
client2.setEmail("[email protected]");
clientService.addClient(client2);

Client client3 = new Client();


client3.setFirstName("Pierre");
client3.setLastName("Durand");
client3.setAddress("789 Boulevard Saint-Germain, 75006 Paris");
client3.setPhoneNumber("0654321987");
client3.setEmail("[email protected]");
clientService.addClient(client3);
// Ajouter quelques chambres
Room room1 = new Room(101, RoomCategory.SINGLE, 80.0);
room1.addAmenity("Wi-Fi");
room1.addAmenity("Télévision");
room1.addAmenity("Salle de bain privée");
roomService.addRoom(room1);

Room room2 = new Room(102, RoomCategory.SINGLE, 85.0);


room2.addAmenity("Wi-Fi");
room2.addAmenity("Télévision");
room2.addAmenity("Salle de bain privée");
room2.addAmenity("Vue sur jardin");
roomService.addRoom(room2);

Room room3 = new Room(201, RoomCategory.DOUBLE, 120.0);


room3.addAmenity("Wi-Fi");
room3.addAmenity("Télévision");
room3.addAmenity("Salle de bain privée");
room3.addAmenity("Minibar");
roomService.addRoom(room3);

Room room4 = new Room(202, RoomCategory.DOUBLE, 130.0);


room4.addAmenity("Wi-Fi");
room4.addAmenity("Télévision");
room4.addAmenity("Salle de bain privée");
room4.addAmenity("Minibar");
room4.addAmenity("Vue sur ville");
roomService.addRoom(room4);

Room room5 = new Room(301, RoomCategory.SUITE, 250.0);


room5.addAmenity("Wi-Fi");
room5.addAmenity("Télévision");
room5.addAmenity("Salle de bain privée");
room5.addAmenity("Minibar");
room5.addAmenity("Salon séparé");
room5.addAmenity("Jacuzzi");
roomService.addRoom(room5);
}
}

You might also like