package gui;
import static gui.MotsCleProjet.APP_TITRE;
import static gui.MotsCleProjet.CMD_LST_STAT_DEP;
import static gui.MotsCleProjet.CMD_LST_STAT_REC;
import static gui.MotsCleProjet.CMD_LST_STAT_CHIFFAF;
import static gui.MotsCleProjet.CMD_LST_ALERTE_VOITURE;
import static gui.MotsCleProjet.CMD_LST_ALERTE_FACTURE;
import static gui.MotsCleProjet.CMD_CLOSE;
import static gui.MotsCleProjet.CMD_HELP;
import static gui.MotsCleProjet.CMD_LISTAVERTI_CHAUF;
import static gui.MotsCleProjet.CMD_LISTFICSAL_CHAUF;
import static gui.MotsCleProjet.CMD_LISTFIC_ENTRET;
import static gui.MotsCleProjet.CMD_LISTFIC_PAIEFACTURE;
import static gui.MotsCleProjet.CMD_LIST_PERIODE_TRAVAIL;
import static gui.MotsCleProjet.CMD_LST_ATTRIB_ROLE_USER;
import static gui.MotsCleProjet.CMD_LST_CHAUF;
import static gui.MotsCleProjet.CMD_LST_CHRG_VOIT;
import static gui.MotsCleProjet.CMD_LST_CONTR;
import static gui.MotsCleProjet.CMD_LST_CPTE;
import static gui.MotsCleProjet.CMD_LST_ETAT;
import static gui.MotsCleProjet.CMD_LST_LOCA;
import static gui.MotsCleProjet.CMD_LST_MARQUE_VOIT;
import static gui.MotsCleProjet.CMD_LST_MODELE_VOIT;
import static gui.MotsCleProjet.CMD_LST_MOTIFIN_CONTR;
import static gui.MotsCleProjet.CMD_LST_PAYS;
import static gui.MotsCleProjet.CMD_LST_REC;
import static gui.MotsCleProjet.CMD_LST_ROLE_USER;
import static gui.MotsCleProjet.CMD_LST_STAT;
import static gui.MotsCleProjet.CMD_LST_TAR;
import static gui.MotsCleProjet.CMD_LST_TRAJ;
import static gui.MotsCleProjet.CMD_LST_TYPAVERTI;
import static gui.MotsCleProjet.CMD_LST_TYPCONTR;
import static gui.MotsCleProjet.CMD_LST_TYPE_CHARGE_VOIT;
import static gui.MotsCleProjet.CMD_LST_TYPE_ENTRET_VOIT;
import static gui.MotsCleProjet.CMD_LST_TYPE_UNITE;
import static gui.MotsCleProjet.CMD_LST_VIL;
import static gui.MotsCleProjet.CMD_LST_VOIT;
import static gui.MotsCleProjet.CMD_OPEN;
import static gui.MotsCleProjet.CMD_QUIT;
import static gui.util.TaxiGuiUtil.MessageBox;
import static gui.util.TaxiGuiUtil.createMenuItem;
import gui.charge.chargevoiture.ChargeVoitureListeFenetre;
import gui.charge.facture.FichePaiementFactureListeFenetre;
import gui.charge.typecharge.TypeChargeListeFenetre;
import gui.chauffeur.avertissement.AvertissementListeFenetre;
import gui.chauffeur.avertissement.TypeAvertissementListeFenetre;
import gui.chauffeur.contrat.ContratListeFenetre;
import gui.chauffeur.contrat.MotifFinContratListeFenetre;
import gui.chauffeur.contrat.PeriodeTravailListeFenetre;
import gui.chauffeur.contrat.TypeContratListeFenetre;
import gui.chauffeur.fichePaie.FichePaieListeFenetre;
import gui.chauffeur.gestionchauffeur.ChauffeurListeFenetre;
import gui.commun.etat.EtatListeFenetre;
import gui.commun.localite.LocaliteListeFenetre;
import gui.commun.pays.PaysListeFenetre;
import gui.commun.unite.TypeUniteListeFenetre;
import gui.commun.ville.VilleListeFenetre;
import gui.course.tarif.TarifCourseListeFenetre;
import gui.course.tournee.TourneeListeFenetre;
import gui.course.trajet.TrajetListeFenetre;
import gui.gestionCompteUser.AttributionRoleUserListeFenetre;
import gui.gestionCompteUser.CompteUserListeFenetre;
import gui.gestionCompteUser.RoleUserListeFenetre;
import gui.statistique.StatistiqueChiffreAffaireFenetre;
import gui.statistique.StatistiqueDepenseFenetre;
import gui.statistique.StatistiqueRecetteFen�tre;
import gui.util.TaxiGuiUtil;
import gui.voiture.alerte.AlerteListeFenetreFacture;
import gui.voiture.alerte.AlerteListeFenetreVoiture;
import gui.voiture.ficheentretien.FicheEntretienListeFenetre;
import gui.voiture.ficheentretien.TypeEntretienListeFenetre;
import gui.voiture.gestionvoiture.VoitureListeFenetre;
import gui.voiture.marque.MarqueVoitureListeFenetre;
import gui.voiture.modele.ModeleVoitureListeFenetre;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.beans.PropertyVetoException;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PipedWriter;
import java.math.BigDecimal;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import modele.alerte.AlerteVoiture;
import modele.compteUser.RoleUser;
import modele.course.Tournee;
import modele.voiture.GestionnaireAlerteVoiture;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import dao.GestionnaireDeStockage;
import dao.ICompteUserDao;
import dao.IRoleUserDao;
import dao.ITourneeDao;
import dao.implementation.mysql.AccessMySql;
/**
* Classe MainWindow
* d�finit la fen�tre principale, c'est une interface � documents multiples ( MDI )
* plusieurs fen�tres sont incluses dans cette fen�tre principale
* @author Kasandra
*
*/
public class MainWindow implements ActionListener {
JInternalFrame internalFrame;
static Font titreFontAlerte = new Font("monotype corsiva", 1, 12);
private static JFrame cadrePrincipal = new JFrame(APP_TITRE); // Appelle le
// titre de
// la
// fen�tre
// principale
private static JDesktopPane desktop = new JDesktopPane(); // MDI
/**
* Retourne la fen�tre principale
* @return
*/
public static JFrame cadrePrincipal() {
return cadrePrincipal;
}
public static JDesktopPane desktop() {
return desktop;
}
static Font titreFont = new Font("Arial narrow", 1, 14);
JButton boutonLogo;
private JLabel utilisateurConnect�Area;
private JPanel panelAlerte;
JPanel paneImegeLogo;
JLabel labTitre;
private JMenu menuGestionSociete = null;
private JMenu menuGestionJrnaliere = null;
private JMenu menuEncodage = null;
private JMenu menuCpteUser = null;
private JMenu menuStatistique = null;
private JMenu menuAlerte = null;
private JMenu menuconnexion = null;
ImageIcon ani, ani1;
/**
* Constructeur de la classe MainWindow
*/
public MainWindow() {
try {
AccessMySql.ouvreConnection();
} catch (Exception e) {
e.printStackTrace();
TaxiGuiUtil.MessageBox(desktop, "Erreur de base de donn�es. V�rifiez que la base de donn�es est d�mar�e.");
System.exit(1);
}
CreationInterfaceUtilisateur();
initialiseRoles();
}
Map<String,java.util.List<JMenu>> roles = null;
/**
* initialise la liste des menus de chaque r�le utilisateur
*/
private void initialiseRoles() {
this.roles = new HashMap<String, java.util.List<JMenu>>();
this.roles.put("admin", Arrays.asList(menuGestionSociete,menuGestionJrnaliere,menuEncodage,menuCpteUser,menuStatistique, menuAlerte ));
this.roles.put("superemploye", Arrays.asList(menuGestionSociete,menuGestionJrnaliere,menuEncodage, menuStatistique, menuAlerte ));
this.roles.put("employe", Arrays.asList(menuGestionJrnaliere,menuEncodage, menuAlerte));
}
/**
* Retourne le bouton logo
* @return boutonLogo
*/
public JButton getBoutonLogo() {
boutonLogo = new JButton();
boutonLogo.setBounds(new Rectangle(300, 10, 900, 140));
ani = new ImageIcon(getClass().getClassLoader().getResource("images/logo_sandra3.png"));
boutonLogo.setIcon(ani);
return boutonLogo;
}
/**
* Retourne le panel de logo
* @return paneImegeLogo
*/
public JPanel getPanelImageLogo() {
paneImegeLogo = new JPanel();
paneImegeLogo.setBounds(new Rectangle(300, 10, 900, 140));
paneImegeLogo.add(getBoutonLogo());
return paneImegeLogo;
}
/**
* <p>Cr�e item de menu connexion</p>
* <p> Indique qu'une frappe est produite dans un composant : KeyEvent</p>
* <p>d�finition d'un raccourci clavier: setMnemonic</p>
*
* @return menuconnexion
*/
private JMenu menuConnexion() {
menuconnexion = new JMenu("Connexion");
menuconnexion.setFont(titreFont);
menuconnexion.setMnemonic(KeyEvent.VK_C);
menuconnexion.add(createMenuItem("Connexion ", CMD_OPEN, KeyEvent.VK_C, this));
menuconnexion.add(createMenuItem("D�connexion ", CMD_CLOSE, KeyEvent.VK_D, this));
menuconnexion.add(createMenuItem("Quitter ", CMD_QUIT, KeyEvent.VK_Q, this));
return menuconnexion;
}
/**
* cr�e item de menu alerte voiture
* @return menuconnexion
*/
private JMenu menuAlerte() {
menuAlerte = new JMenu("Alerte");
menuAlerte.setFont(titreFont);
menuAlerte.setMnemonic(KeyEvent.VK_A);
menuAlerte.add(createMenuItem("Voitures", CMD_LST_ALERTE_VOITURE, KeyEvent.VK_V, this));
menuAlerte.add(createMenuItem("Factures", CMD_LST_ALERTE_FACTURE, KeyEvent.VK_F, this));
menuAlerte.setEnabled(false);
return menuAlerte;
}
/**
* Cr�e item de menu gestion soci�t�
* @return menuGestionSociete
*/
private JMenu menuGestionSociete() {
menuGestionSociete = new JMenu("Soci�t�");
menuGestionSociete.setFont(titreFont);
menuGestionSociete.setEnabled(false);
menuGestionSociete.setMnemonic(KeyEvent.VK_S);
JMenu chauffeur = new JMenu("Chauffeurs");
chauffeur.setMnemonic(KeyEvent.VK_C);
chauffeur.add(createMenuItem(" Chauffeur", CMD_LST_CHAUF, KeyEvent.VK_C, this));
chauffeur.add(createMenuItem(" Contrat", CMD_LST_CONTR, KeyEvent.VK_O, this));
chauffeur.add(createMenuItem(" Avertissement", CMD_LISTAVERTI_CHAUF, KeyEvent.VK_A, this));
chauffeur.add(createMenuItem(" Fiche salaire", CMD_LISTFICSAL_CHAUF, KeyEvent.VK_F, this));
chauffeur.add(createMenuItem(" P�riode de travail", CMD_LIST_PERIODE_TRAVAIL, KeyEvent.VK_P, this));
menuGestionSociete.add(chauffeur);
JMenu voiture = new JMenu("Voitures");
voiture.setMnemonic(KeyEvent.VK_V);
voiture.add(createMenuItem("Voiture ", CMD_LST_VOIT, KeyEvent.VK_V, this));
voiture.add(createMenuItem("Charge ", CMD_LST_CHRG_VOIT, KeyEvent.VK_C, this));
voiture.add(createMenuItem("Entretien ", CMD_LISTFIC_ENTRET, KeyEvent.VK_E, this));
voiture.add(createMenuItem("Paiement facture ", CMD_LISTFIC_PAIEFACTURE, KeyEvent.VK_P, this));
menuGestionSociete.add(voiture);
//menuGestionSociete.add(createMenuItem(" Statistique ", CMD_LST_STAT, KeyEvent.VK_R, this));
return menuGestionSociete;
}
/**
* cr�e item gestion journali�re
* @return menuGestionJrnaliere
*/
private JMenu menuGestionJournaliere() {
menuGestionJrnaliere = new JMenu("Op�ration journali�re");
menuGestionJrnaliere.setFont(titreFont);
menuGestionJrnaliere.setEnabled(false);
menuGestionJrnaliere.setMnemonic(KeyEvent.VK_O);
menuGestionJrnaliere.add(createMenuItem(" Tourn�e", CMD_LST_REC, KeyEvent.VK_T, this));
menuGestionJrnaliere.add(createMenuItem(" Trajet ", CMD_LST_TRAJ, KeyEvent.VK_R, this));
return menuGestionJrnaliere;
}
/**
*
* Importation des donn�es � partir d'un fichier externe
*
* @return
*/
private JMenu menuStatistique() {
menuStatistique = new JMenu("Statistique");
menuStatistique.setFont(titreFont);
menuStatistique.setEnabled(false);
menuStatistique.setMnemonic(KeyEvent.VK_T);
menuStatistique.add(createMenuItem(" Recettes ", CMD_LST_STAT_REC, KeyEvent.VK_R, this));
menuStatistique.add(createMenuItem(" D�penses ", CMD_LST_STAT_DEP, KeyEvent.VK_D, this));
menuStatistique.add(createMenuItem(" Chiffre d'affaires ", CMD_LST_STAT_CHIFFAF, KeyEvent.VK_C, this));
return menuStatistique;
}
/**
* cr�e item menu gestion compte utilisateur
*
* @return
*/
private JMenu menuGestionCompteUser() {
menuCpteUser = new JMenu("Compte utilisateur");
menuCpteUser.setFont(titreFont);
menuCpteUser.setEnabled(false);
menuCpteUser.setMnemonic(KeyEvent.VK_C);
menuCpteUser.add(createMenuItem(" Compte utilisateur ", CMD_LST_CPTE, KeyEvent.VK_C, this));
menuCpteUser.add(createMenuItem(" R�le utilisateur ", CMD_LST_ROLE_USER, KeyEvent.VK_R, this));
menuCpteUser.add(createMenuItem(" Attribution r�le utilisateur ", CMD_LST_ATTRIB_ROLE_USER, KeyEvent.VK_A, this));
return menuCpteUser;
}
/**
* cr�e item menu encodage
* @return menuEncodage
*/
private JMenu menuEncodage() {
menuEncodage = new JMenu("Encodage");
menuEncodage.setFont(titreFont);
menuEncodage.setEnabled(false);
menuEncodage.setMnemonic(KeyEvent.VK_E);
menuEncodage.add(createMenuItem(" Etat ", CMD_LST_ETAT, KeyEvent.VK_S, this));
menuEncodage.add(createMenuItem(" Marque voiture ", CMD_LST_MARQUE_VOIT, KeyEvent.VK_M, this));
menuEncodage.add(createMenuItem(" Mod�le voiture ", CMD_LST_MODELE_VOIT, KeyEvent.VK_O, this));
menuEncodage.add(createMenuItem(" Motif fin contrat ", CMD_LST_MOTIFIN_CONTR, KeyEvent.VK_F, this));
menuEncodage.add(createMenuItem(" Tarif taxis ", CMD_LST_TAR, KeyEvent.VK_T, this));
menuEncodage.add(createMenuItem(" Type avertissement ", CMD_LST_TYPAVERTI, KeyEvent.VK_A, this));
menuEncodage.add(createMenuItem(" Type charge voiture ", CMD_LST_TYPE_CHARGE_VOIT, KeyEvent.VK_C, this));
menuEncodage.add(createMenuItem(" Type contrat ", CMD_LST_TYPCONTR, KeyEvent.VK_N, this));
menuEncodage.add(createMenuItem(" Type entretien ", CMD_LST_TYPE_ENTRET_VOIT, KeyEvent.VK_E, this));
menuEncodage.add(createMenuItem(" Type unit� ", CMD_LST_TYPE_UNITE, KeyEvent.VK_U, this));
menuEncodage.add(createMenuItem(" Localit� ", CMD_LST_LOCA, KeyEvent.VK_L, this));
menuEncodage.add(createMenuItem(" Ville ", CMD_LST_VIL, KeyEvent.VK_V, this));
menuEncodage.add(createMenuItem(" Pays ", CMD_LST_PAYS, KeyEvent.VK_P, this));
return menuEncodage;
}
private void desactiveMenu() {
menuGestionSociete.setEnabled(false);
menuGestionJrnaliere.setEnabled(false);
menuEncodage.setEnabled(false);
menuCpteUser.setEnabled(false);
menuStatistique.setEnabled(false);
menuAlerte.setEnabled(false);
}
/**
* Active les menu
*/
public void activeMenu(Vector<String> roles) {
desactiveMenu();
for (String role : roles) {
java.util.List<JMenu> menusAccessibles = this.roles.get(role);
if (menusAccessibles != null) {
for (JMenu menu : menusAccessibles) {
menu.setEnabled(true);
}
}
}
}
/**
* cr�e bar de menu
*
* @return menubar
*/
private JMenuBar CreationMenuBar() {
JMenuBar menubar = new JMenuBar();
menubar.setFont(titreFont);
menubar.add(menuConnexion());
menubar.add(menuGestionSociete());
menubar.add(menuGestionJournaliere());
menubar.add(menuStatistique());
menubar.add(menuAlerte());
menubar.add(menuEncodage());
menubar.add(menuGestionCompteUser());
menubar.add(MenuAide());
return menubar;
}
/**
* Affiche liste charge voiture
*/
public void affichageListeChargeVoiture() {
new ChargeVoitureListeFenetre(desktop()).ouvreFenetre();
}
/**
* cr�e item menu aide
* @return help
*/
private JMenu MenuAide() {
JMenu help = new JMenu("Aide");
help.setMnemonic(KeyEvent.VK_A);
help.setFont(titreFont);
help.add(createMenuItem("A Propos de logiciel BTEB", CMD_HELP, KeyEvent.VK_F1, this));
return help;
}
/**
* Affiche le fichier d'aide
*/
public void affichageMenuAide() {
try {
java.awt.Desktop.getDesktop().open(exporteFichierAide());
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
private File exporteFichierAide() throws FileNotFoundException, IOException {
// Cr�e un fichier dans le r�pertoire temporaire => plus s�r que
// d'�crire dans le r�pertoire courant et compatible avec Windows7
// lorsque l'application est install�e dans le r�pertoire
// "Program Files"
String r�pertoireTemporaire = System.getProperty("java.io.tmpdir");
File fichierAideExport� = new File(r�pertoireTemporaire +"/aideBteb.chm");
BufferedOutputStream fileWriter = null;
BufferedInputStream is = null;
try {
// Cr�e un writer pour le fichier d'aide � exporter.
fileWriter = new BufferedOutputStream(new FileOutputStream(fichierAideExport�));
// Ouvre la resource � exporter.
is = new BufferedInputStream(getClass().getClassLoader().getResourceAsStream("aideBteb.chm"));
// Copie le contenu de la resource 4Kb par 4Kb byte (4Kb est arbitraire).
final int TAILLE_ARBITRAIRE_DU_BUFFER = 4 * 1024;
byte[] buffer = new byte[TAILLE_ARBITRAIRE_DU_BUFFER];
int nbBytesRead = 0;
do {
nbBytesRead = is.read(buffer);
fileWriter.write(buffer);
} while (nbBytesRead == TAILLE_ARBITRAIRE_DU_BUFFER);
} finally {
if (is != null) {
is.close();
}
if (fileWriter != null) {
fileWriter.close();
}
}
return fichierAideExport�;
}
/**
* Affiche le graphique statistique chiffre d'affaires
* @throws Exception
*/
public void affichageGrapheStatistiqueChiffreAffaire() throws Exception {
new StatistiqueChiffreAffaireFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche le graphique statistique des recettes
* @throws Exception
*/
public void affichageGrapheStatistiqueRecette() throws Exception {
new StatistiqueRecetteFen�tre(desktop()).ouvreFenetre() ;
}
/**
* Affiche le graphique statistique des d�penses
* @throws Exception
*/
public void affichageGrapheStatistiqueDepense() throws Exception {
// new StatistiqueDepenseFenetre(MainWindow.cadrePrincipal(), this);
new StatistiqueDepenseFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des types des entretien
*/
public void affichageListeTypeEntretienVoit() {
new TypeEntretienListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des marques des voitures
*/
public void affichageListeMarqueVoiture() {
new MarqueVoitureListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des Types des contrats
*/
public void affichageListeTypeContrat() {
new TypeContratListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des alertes des voitures
* @throws Exception
*/
public void affichageListeAlerteVoiture() throws Exception {
new AlerteListeFenetreVoiture();
}
/**
* Affiche liste des alertes des Factures
* @throws Exception
*/
public void affichageListeAlerteFacture() throws Exception {
new AlerteListeFenetreFacture();
}
/**
* Affiche liste des fiches de paie
*/
public void affichageListeFichePaie() {
new FichePaieListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des types des avertissements
*/
public void affichageListeTypeAvertissement() {
new TypeAvertissementListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des avertissements
*/
public void affichageListeAvertissement() {
new AvertissementListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des motifs de fin contrat
*/
public void affichageListeMotifFinContrat() {
new MotifFinContratListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des fiches des entretiens
*/
public void affichageListeFicheEntretienVoiture() {
new FicheEntretienListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des localites
*/
public void AffichageListeLocalite() {
new LocaliteListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des villes
*/
public void affichageListeVille() {
new VilleListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des chauffeurs
*/
public void afficherListeChauffeur() {
new ChauffeurListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des contrats
*/
public void AffichageListeContrat() {
new ContratListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des tourn�es
*/
public void AffichageListeRecette() {
new TourneeListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des voitures
*/
public void AffichageListeVoiture() {
new VoitureListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des types des chargese
*/
public void affichageListeTypeChargeVoiture() {
new TypeChargeListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste type intervalle charge
*/
public void affichageListeTypeUniteCharge() {
new TypeUniteListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des factures
*/
public void affichageListeFichePaieFacture() {
new FichePaiementFactureListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des trajets
*/
public void AffichageListeTrajet() {
new TrajetListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des tarifs
*
*/
public void AffichageListeTarifActuel() {
new TarifCourseListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche Liste des contrats
*/
public void AffichageListeContrats() {
new ContratListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste descomptes utilisateur
*/
public void affichageListeCompteUser() {
new CompteUserListeFenetre(desktop()).ouvreFenetre();
}
public void affichageListeAttributionRoleUser() {
new AttributionRoleUserListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des r�les utilisateur
*/
public void affichageListeRoleUser() {
new RoleUserListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des �tat
*/
public void affichageListeEtat() {
new EtatListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des pays
*/
public void affichageListePays() {
new PaysListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche la liste des p�riodes de travail
*/
public void affichageListePeriodeTravail() {
new PeriodeTravailListeFenetre(desktop()).ouvreFenetre();
}
/**
* Affiche liste des mod�les des voitures
*/
public void affichageListeModeleVoiture() {
new ModeleVoitureListeFenetre(desktop()).ouvreFenetre();
}
/**
* Param�tre de connexion
* connecte l'ulisateur,
* v�rifie son login et password
* active le menu en fonction de r�le de chacun
* @throws PrjException
*/
private void parametreDeConnection() throws PrjException {
ConnectionDialog dlgDialog;
try {
dlgDialog = new ConnectionDialog(MainWindow.cadrePrincipal(), this);
dlgDialog.affiche();
if (dlgDialog.OK_Button()) {
String utilisateur = dlgDialog.log();
if (utilisateurEtMotDePasseValide(utilisateur, dlgDialog.passWord())) {
Vector<String> roles = getRoleUtilisateur(utilisateur);
activeMenu(roles);
//change etat de la fen�tre apr�s connexion
MainWindow.desktop().setBackground(Color.WHITE);
setUtilisateurConnect�(utilisateur);
} else {
TaxiGuiUtil.MessageBox(desktop(), "Utilisateur non reconnu", "Erreur login");
}
}
}
catch (PrjException e) {
throw new PrjException(e.RetourMessage());
}
}
/**
* r�cup�re les r�les de l'utilisateur
*
* @param loginName : compte utilisateur
*
* @return roles : liste de r�les
*/
private Vector<String> getRoleUtilisateur(String loginName) {
Vector<String> roles = new Vector<String>();
IRoleUserDao roleUserDao = getRoleUserDao();
Collection<RoleUser> roleUsers = roleUserDao.findByLoginName(loginName);
for (RoleUser roleUser : roleUsers) {
roles.add(roleUser.getLibelle());
}
return roles;
}
/**
* <p>Retourne l'instance de la classe qui impl�mentera les m�thodes de l'interface IRoleUserDao</p>
* return
*/
private IRoleUserDao getRoleUserDao() {
try {
return GestionnaireDeStockage.getInstance().getRoleUserDao();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
/**
* v�rifie la validit� de login et mot de passe
* @param log : login
* @param pass : mot de passe
*
* @return
* <ul>
* <li>true : si trouv�</li>
* <li>false : si pas trouv�</li>
*</ul>
*/
private boolean utilisateurEtMotDePasseValide(String log, String pass) {
AccessMySql.ouvreConnection();
return getCompteUserDao().existe(log, pass);
}
/**
* <p>Retourne l'instance de la classe qui impl�mentera les m�thodes de l'interface ICompteUserDao</p>
* return
*/
private ICompteUserDao getCompteUserDao() {
try {
return GestionnaireDeStockage.getInstance().getCompteUserDao();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
/**
* Ferme l'application
*/
private void Quit() throws PrjException {
int ret = JOptionPane.showConfirmDialog(null, "Voulez-vous quitter l'application (Oui/Non) ?", "CONFIRMATION", JOptionPane.YES_NO_OPTION);
if (ret == JOptionPane.YES_OPTION) {
AccessMySql.fermeConnection();
System.exit(0);
}
}
/**
* Gestionnaire des �v�nements
*/
public void actionPerformed(ActionEvent ev) {
String cmd = ev.getActionCommand();
try {
if (CMD_QUIT.equals(cmd)) {
Quit();
} else if (CMD_OPEN.equals(cmd)) {
parametreDeConnection();// Connection � l'application
} else if (CMD_LST_CHAUF.equals(cmd)) {
afficherListeChauffeur();
}
else if(CMD_HELP.equals(cmd)){
affichageMenuAide();
}
else if (CMD_LST_CONTR.equals(cmd)) {
AffichageListeContrats();
}
else if (CMD_LST_ALERTE_VOITURE.equals(cmd)) {
affichageListeAlerteVoiture();
}
else if (CMD_LST_ALERTE_FACTURE.equals(cmd)) {
affichageListeAlerteFacture();
}
else if (CMD_LIST_PERIODE_TRAVAIL.equals(cmd)) {
affichageListePeriodeTravail();
}
else if (CMD_LST_VIL.equals(cmd)) {
affichageListeVille();
}
else if (CMD_LST_CPTE.equals(cmd)) {
affichageListeCompteUser();
} else if (CMD_LST_ATTRIB_ROLE_USER.equals(cmd)) {
affichageListeAttributionRoleUser();
}
else if (CMD_LST_ROLE_USER.equals(cmd)) {
affichageListeRoleUser();
}
else if (CMD_LST_VOIT.equals(cmd)) {
AffichageListeVoiture();
}
else if (CMD_LST_TAR.equals(cmd)) {
AffichageListeTarifActuel();
}
else if (CMD_LISTFIC_PAIEFACTURE.equals(cmd)) {
affichageListeFichePaieFacture();
}
else if (CMD_LST_PAYS.equals(cmd)) {
affichageListePays();
}
else if (CMD_LST_LOCA.equals(cmd)) {
AffichageListeLocalite();
}
else if (CMD_LST_TRAJ.equals(cmd)) {
AffichageListeTrajet();
}
else if (CMD_LST_CPTE.equals(cmd)) {
affichageListeCompteUser();
}
else if (CMD_LST_TYPCONTR.equals(cmd)) {
affichageListeTypeContrat();
}
else if (CMD_LST_ETAT.equals(cmd)) {
affichageListeEtat();
}
else if (CMD_LST_TYPAVERTI.equals(cmd)) {
affichageListeTypeAvertissement();
}
else if (CMD_LISTAVERTI_CHAUF.equals(cmd)) {
affichageListeAvertissement();
}
else if (CMD_LST_MOTIFIN_CONTR.equals(cmd)) {
affichageListeMotifFinContrat();
}
else if (CMD_LISTFICSAL_CHAUF.equals(cmd)) {
affichageListeFichePaie();
}
else if (CMD_LST_MARQUE_VOIT.equals(cmd)) {
affichageListeMarqueVoiture();
}
else if (CMD_LST_TYPE_ENTRET_VOIT.equals(cmd)) {
affichageListeTypeEntretienVoit();
}
else if (CMD_LISTFIC_ENTRET.equals(cmd)) {
affichageListeFicheEntretienVoiture();
}
else if (CMD_LST_MODELE_VOIT.equals(cmd)) {
affichageListeModeleVoiture();
}
else if (CMD_LST_TYPE_CHARGE_VOIT.equals(cmd)) {
affichageListeTypeChargeVoiture();
}
else if (CMD_LST_TYPE_UNITE.equals(cmd)) {
affichageListeTypeUniteCharge();
}
else if (CMD_LST_CHRG_VOIT.equals(cmd)) {
affichageListeChargeVoiture();
}
else if (CMD_LST_REC.equals(cmd)) {
AffichageListeRecette();
}
else if (CMD_LST_STAT_REC.equals(cmd)) {
affichageGrapheStatistiqueRecette();
}
else if (CMD_LST_STAT_DEP.equals(cmd)) {
affichageGrapheStatistiqueDepense();
}
else if (CMD_LST_STAT_CHIFFAF.equals(cmd)) {
affichageGrapheStatistiqueChiffreAffaire();
}
else if (CMD_CLOSE.equals(cmd)) {
desactiveMenu();
for (JInternalFrame frame :MainWindow.desktop().getAllFrames()) {
frame.dispose();
}
MainWindow.desktop().setBackground(new java.awt.Color(170, 207, 249));
setUtilisateurConnect�("");
JOptionPane.showMessageDialog(null,"Connexion ANNULER.","Attention !",JOptionPane.ERROR_MESSAGE);
}
}
catch (Exception e) {
e.printStackTrace();
MessageBox(MainWindow.desktop(), e.getMessage(), "Erreur");
}
}
/**
* Cr�e et met en place des diff�rents composants constituants l'interface
* graphique de l'application.
*/
protected void CreationInterfaceUtilisateur() {
JFrame.setDefaultLookAndFeelDecorated(true);
// Mettre image arri�re plan
JPanel imagePanel = new JPanel() {
public void paint(Graphics g) {
try {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("images/ph6.jpg");
BufferedImage image = ImageIO.read(inputStream);
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
}
catch (IOException e) {
e.printStackTrace();
}
}
};
imagePanel.setBounds(new Rectangle(250, 200, 1000, 450));
//Image arri�re plan taxis
MainWindow.desktop().setBackground(new java.awt.Color(170, 207, 249));
MainWindow.desktop().add(imagePanel);
//Image logo soci�t�
MainWindow.desktop().add(getPanelImageLogo(), BorderLayout.NORTH);
//panel alerte: affiche le nom d'utilisateur connect�
panelAlerte = new JPanel();
utilisateurConnect�Area = new JLabel("");
utilisateurConnect�Area.setFont(new Font("monotype corsiva", 1, 19));
utilisateurConnect�Area.setForeground(new java.awt.Color(255, 255, 255));
panelAlerte.setBounds(new Rectangle(50, 730, 1450, 40));
panelAlerte.setBackground(new java.awt.Color(170, 207, 249));
panelAlerte.add(utilisateurConnect�Area);
MainWindow.desktop().add(panelAlerte , BorderLayout.SOUTH);
int inset = 10;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//Positionnement de la fen�tre
MainWindow.cadrePrincipal().setBounds(inset, inset, screenSize.width - inset * 2, screenSize.height - inset * 6);
MainWindow.cadrePrincipal().getContentPane().add(MainWindow.desktop(), BorderLayout.CENTER);
MainWindow.cadrePrincipal().setJMenuBar(CreationMenuBar());// Insertion
// d'une
// barre de
// menu.
MainWindow.cadrePrincipal().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainWindow.cadrePrincipal().setVisible(true);
}
void setUtilisateurConnect�(String utilisateurConnect�) {
if (utilisateurConnect� != null && !utilisateurConnect�.equals("")) {
utilisateurConnect�Area.setText("L'utilisateur connect� est : " + utilisateurConnect�);
} else {
utilisateurConnect�Area.setText("");
}
}
}