Interface.Stats.java Source code

Java tutorial

Introduction

Here is the source code for Interface.Stats.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Interface;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.scene.chart.Axis;
import javafx.scene.chart.BarChart;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
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 org.jfree.data.xy.XYDataset;
import org.jfree.ui.RefineryUtilities;
import projet.Connexion;

/**
 * Classe correspondant au module de reporting permettant d'afficher des rponse 
 * a des requetes de manire cohrente avec le type de requete
 * @author mathieuchebassier
 */
public class Stats {

    private static Stats fenetre = null;
    private static JPanel p1, p2, p3, p4;

    /**
     *
     * @param f 
     */
    private Stats(JFrame f) {
        // On initialise les boutons
        JButton valider = new JButton("Valider");
        JButton retour = new JButton("Retour");
        JComboBox combo = new JComboBox();

        // On initialise et remplit la combobox
        combo.setPreferredSize(new Dimension(400, 30));
        combo.addItem("Nombre de patient par service");
        combo.addItem("Salaire moyen des employs");
        combo.addItem("Nombre d'intervention par mdecin");

        // On initialise les JLabels
        JLabel texte = new JLabel("Veuillez selectionner la requete  envoyer");

        // On change le bouton de forme
        valider.setPreferredSize(new Dimension(200, 30));
        valider.setOpaque(false);
        retour.setPreferredSize(new Dimension(200, 30));
        retour.setOpaque(false);

        // On initialise les Jpanels
        p1 = new JPanel();
        p1.setPreferredSize(new Dimension(600, 100));
        p1.add(texte);
        p1.setOpaque(false);

        p2 = new JPanel();
        p2.add(combo);
        p2.setOpaque(false);

        p4 = new JPanel();
        p4.add(retour);
        p4.add(valider);
        p4.setOpaque(false);

        // Gestion des boutons
        retour.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Accueil.getFenetre(f);
            }
        });

        valider.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                if (combo.getSelectedItem().equals("Nombre de patient par service")) {

                    System.out.println(
                            "Nb de patients en REA : " + Connexion.getInstance().nb_malade_services("\"REA\""));
                    System.out.println(
                            "Nb de patients en ORL : " + Connexion.getInstance().nb_malade_services("\"ORL\""));
                    System.out.println(
                            "Nb de patients en CHG : " + Connexion.getInstance().nb_malade_services("\"CHG\""));

                    //      new Camembert(f, Connexion.getInstance().nb_malade_services("\"REA\""), Connexion.getInstance().nb_malade_services("\"ORL\""), Connexion.getInstance().nb_malade_services("\"CHG\""));
                    JPanel panel_camemb = Camembert.cCamembert(f,
                            Connexion.getInstance().nb_malade_services("\"REA\""),
                            Connexion.getInstance().nb_malade_services("\"ORL\""),
                            Connexion.getInstance().nb_malade_services("\"CHG\""));
                    ;

                    f.setContentPane(new ImagePanel(new ImageIcon("fond66.jpg").getImage())); // Met l'image en background
                    f.add(p1);
                    f.add(p2);
                    f.add(p4);
                    f.add(panel_camemb);

                    f.setVisible(true);

                } else if (combo.getSelectedItem().equals("Salaire moyen des employs")) {
                    JLabel jf_doc, jf_inf, jf_emp;
                    JTextField jtf_doc, jtf_inf, jtf_emp;
                    JPanel p5, p6, p7;

                    // On initialise les JF
                    jf_doc = new JLabel("Salaire moyen des docteurs");
                    jf_inf = new JLabel("Salaire moyen des infirmiers");
                    jf_emp = new JLabel("Salaire moyen de tous les employs");

                    // On initialise les JTF
                    jtf_doc = new JTextField();
                    jtf_doc.setPreferredSize(new Dimension(200, 30));
                    jtf_doc.setText(Float.toString(Connexion.getInstance().moyenne_salaired()) + " ");

                    jtf_inf = new JTextField();
                    jtf_inf.setPreferredSize(new Dimension(200, 30));
                    jtf_inf.setText(Float.toString((Connexion.getInstance().moyenne_salairei())) + " ");

                    jtf_emp = new JTextField();
                    jtf_emp.setPreferredSize(new Dimension(160, 30));
                    jtf_emp.setText(Float.toString((Connexion.getInstance().moyenne_salaire())) + " ");

                    // On cre les JPanels
                    p5 = new JPanel();
                    p5.add(jf_doc);
                    p5.add(jtf_doc);
                    p5.setOpaque(false);

                    p6 = new JPanel();
                    p6.add(jf_inf);
                    p6.add(jtf_inf);
                    p6.setOpaque(false);

                    p7 = new JPanel();
                    p7.add(jf_emp);
                    p7.add(jtf_emp);
                    p7.setOpaque(false);

                    f.setContentPane(new ImagePanel(new ImageIcon("fond66.jpg").getImage())); // Met l'image en background
                    f.add(p1);
                    f.add(p2);
                    f.add(p4);
                    f.add(p5);
                    f.add(p6);
                    f.add(p7);

                    f.setVisible(true);
                    f.setSize(new Dimension(600, 600));
                } else if (combo.getSelectedItem().equals("Nombre d'intervention par mdecin")) {
                    ArrayList liste = null;
                    try {
                        // ICI !!!!!!!!!!
                        liste = Connexion.getInstance().reporting(
                                "SELECT e.nom , COUNT(d.no_docteur) FROM hospitalisation h, docteur d , employe e WHERE (h.no_docteur= d.no_docteur) AND e.no_employe = d.no_docteur  GROUP BY e.nom");
                    } catch (SQLException ex) {
                        Logger.getLogger(Stats.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    if (liste != null) {
                        JPanel panel_camemb = Camembert.cCamembert(f, liste);

                        f.setContentPane(new ImagePanel(new ImageIcon("fond66.jpg").getImage())); // Met l'image en background
                        f.add(p1);
                        f.add(p2);
                        f.add(p4);
                        f.add(panel_camemb);

                        f.setVisible(true);
                    }

                }
            }
        });
    }

    /**
    * Sous programme permettant de vrifier que chaque 
    * fentre n'est cre qu'une fois puis uniquement rutilise
    * @param f
    * @return type de la classe
    */
    public static Stats getFenetre(JFrame f) {

        if (fenetre == null) {
            fenetre = new Stats(f);
        }

        f.setContentPane(new ImagePanel(new ImageIcon("fond66.jpg").getImage())); // Met l'image en background
        f.add(p1);
        f.add(p2);
        f.add(p4);

        f.setVisible(true);
        f.setSize(new Dimension(600, 600));

        return fenetre;
    }

}