Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package analyseAPosteriori;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.GridLayout;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import java.sql.Date;
- import java.util.Map;
- import java.util.Set;
- import javax.swing.JComboBox;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JSplitPane;
- import javax.swing.JTextField;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartPanel;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.block.CenterArrangement;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.data.category.CategoryDataset;
- import org.jfree.data.category.DefaultCategoryDataset;
- import org.jfree.data.general.Dataset;
- import org.jfree.ui.HorizontalAlignment;
- import simulation.Capteur;
- import simulation.GestionBDD;
- import simulation.Type;
- import simulation.Utils;
- public class AnalyseAPosteriori {
- private GestionBDD gestionBDD;
- private JPanel panelPrincipal, panelDates;
- private JSplitPane panelGauche, panelDroite;
- private ChartPanel chartPanel;
- private JFreeChart chart;
- String sCapt1 = "";
- String sCapt2 = "";
- String sCapt3 = "";
- String date1 = "";
- String date2 = "";
- public AnalyseAPosteriori(GestionBDD gestionBDD) {
- this.gestionBDD = gestionBDD;
- gererPanelGauche();
- gererPanelDroite();
- panelPrincipal = new JPanel(new GridLayout(1, 2));
- panelPrincipal.add(panelGauche);
- panelPrincipal.add(panelDroite);
- }
- private DefaultCategoryDataset createCategoryDataset(String nomC1, Map<String, Double> valeursAPosteriori1,
- String nomC2, Map<String, Double> valeursAPosteriori2, String nomC3, Map<String, Double> valeursAPosteriori3) {
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- for (Map.Entry<String, Double> entry : valeursAPosteriori1.entrySet()) {
- dataset.setValue(entry.getValue(), nomC1 , entry.getKey());
- }
- for (Map.Entry<String, Double> entry : valeursAPosteriori2.entrySet()) {
- dataset.setValue(entry.getValue(), nomC2 , entry.getKey());
- }
- for (Map.Entry<String, Double> entry : valeursAPosteriori3.entrySet()) {
- dataset.setValue(entry.getValue(), nomC3 , entry.getKey());
- }
- return dataset;
- }
- private JFreeChart createChart(DefaultCategoryDataset dataset) {
- JFreeChart chart = ChartFactory.createLineChart("Analyse a Posteriori" , "Date",
- "Valeur", dataset, PlotOrientation.VERTICAL, true, true, false);
- return chart;
- }
- private JFreeChart createEmptyChart() {
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- JFreeChart chart = ChartFactory.createLineChart("Analyse a Posteriori" , "Date",
- "Valeur", dataset, PlotOrientation.VERTICAL, true, true, false);
- return chart;
- }
- public void gererPanelGauche() {
- panelDates = new JPanel(new GridLayout(1, 2));
- // JTextField tfdate1 = new JTextField("yyyy-mm-dd hh:mm:ss"); TODO
- // JTextField tfdate2 = new JTextField("yyyy-mm-dd hh:mm:ss");
- JTextField tfdate1 = new JTextField("2000-00-00 00:00:00");
- JTextField tfdate2 = new JTextField("3000-00-00 00:00:00");
- tfdate1.setHorizontalAlignment(JTextField.CENTER);
- tfdate2.setHorizontalAlignment(JTextField.CENTER);
- tfdate1.addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if(e.getKeyCode() == KeyEvent.VK_ENTER){
- String text = tfdate1.getText();
- if(isFormat(text)) {
- date1 = text;
- generer();
- }
- }
- }
- });
- tfdate2.addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if(e.getKeyCode() == KeyEvent.VK_ENTER){
- String text = tfdate2.getText();
- if(isFormat(text)) {
- date2 = text;
- generer();
- }
- }
- }
- });
- panelDates.add(tfdate1);
- panelDates.add(tfdate2);
- chart = createEmptyChart();
- chartPanel = new ChartPanel(chart);
- panelGauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, panelDates);
- panelGauche.setResizeWeight(0.8);
- panelGauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, panelDates);
- panelGauche.setResizeWeight(0.8);
- }
- public void generer() {
- if (date1 != "" && date2 != "" && (sCapt1 != "" || sCapt2 != "" || sCapt3 != "")) {
- Map<String, Double> map1 = gestionBDD.getValeursAPosteriori(sCapt1, date1, date2);
- Map<String, Double> map2 = gestionBDD.getValeursAPosteriori(sCapt2, date1, date2);
- Map<String, Double> map3 = gestionBDD.getValeursAPosteriori(sCapt3, date1, date2);
- DefaultCategoryDataset dataset = createCategoryDataset(sCapt1, map1, sCapt2, map2, sCapt3, map3);
- chart = createChart(dataset);
- chartPanel.setChart(chart);
- //chartPanel = new ChartPanel(chart);
- System.out.println("test");
- // panelDates = new JPanel(new GridLayout(3,1));
- // panelGauche = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, panelDates);
- // panelGauche.setResizeWeight(0.8);
- // panelPrincipal = new JPanel(new GridLayout(1, 2));
- // panelPrincipal.add(panelGauche);
- // panelPrincipal.add(panelDates);
- }
- }
- public boolean isFormat(String input) {
- return input.matches("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})");
- }
- public void gererPanelDroite(){
- Type[] t = {Type.EAU, Type.ELECTRICITE, Type.TEMPERATURE, Type.AIRCOMPRIME};
- JComboBox<Type> cbType = new JComboBox<>(t);
- JPanel bas = new JPanel(new GridLayout(1,2));
- JPanel basGauche = new JPanel();
- JPanel basDroite = new JPanel(new GridLayout(3,1));
- bas.add(basGauche);
- bas.add(basDroite);
- JComboBox<String> cbC1 = new JComboBox<String>();// cbC1.setVisible(false);
- basDroite.add(cbC1);
- JComboBox<String> cbC2 = new JComboBox<String>();// cbC2.setVisible(false);
- basDroite.add(cbC2);
- JComboBox<String> cbC3 = new JComboBox<String>();// cbC3.setVisible(false);
- basDroite.add(cbC3);
- cbType.addItemListener(new ItemListener(){ //TODO
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- Type type = (Type) e.getItem();
- Set<String> nomCapteurs = gestionBDD.getNomCapteurs(type);
- cbC1.removeAllItems();
- cbC2.removeAllItems();
- cbC3.removeAllItems();
- for (String nomCapteur : nomCapteurs) {
- cbC1.addItem(nomCapteur);
- cbC2.addItem(nomCapteur);
- cbC3.addItem(nomCapteur);
- }
- }
- }
- });
- cbC1.addItemListener(new ItemListener(){
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- sCapt1 = (String) e.getItem();
- generer();
- }
- }
- });
- cbC2.addItemListener(new ItemListener(){
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- sCapt2 = (String) e.getItem();
- generer();
- }
- }
- });
- cbC3.addItemListener(new ItemListener(){
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- sCapt3 = (String) e.getItem();
- generer();
- }
- }
- });
- panelDroite = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cbType, bas);
- panelDroite.setResizeWeight(0.2);
- }
- public void update() {
- }
- public JPanel getPanel() {
- return panelPrincipal;
- }
- public static void main(String[] args) throws InterruptedException {
- GestionBDD gestionBDD = new GestionBDD();
- // gestionBDD.ajouterCapteurABDD(new Capteur("c1", Type.TEMPERATURE, "1A", 0, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c2", Type.AIRCOMPRIME, "2A", 0, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c3", Type.EAU, "3A", 0, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c4", Type.ELECTRICITE, "1A", 2, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c5", Type.TEMPERATURE, "3A", 1, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c6", Type.EAU, "2A", 1, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c7", Type.ELECTRICITE, "2A", 0, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c8", Type.AIRCOMPRIME, "3A", 0, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c9", Type.EAU, "1A", 2, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c10", Type.TEMPERATURE, "3A", 1, ""));
- // gestionBDD.ajouterCapteurABDD(new Capteur("c11", Type.AIRCOMPRIME, "2A", 1, ""));
- //
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c1", "1");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c1", "4");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c1", "7");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c2", "2");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c2", "5");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c2", "8");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c3", "3");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c3", "6");
- // Thread.sleep(1200);
- // gestionBDD.ajouterValeurABDD("c3", "9");
- AnalyseAPosteriori analyseAPosteriori = new AnalyseAPosteriori(gestionBDD);
- JFrame frame = new JFrame();
- frame.add(analyseAPosteriori.getPanel());
- frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
- frame.setVisible(true);
- // 3000-00-00 00:00:00
- // 2000-00-00 00:00:00
- }
- }
Add Comment
Please, Sign In to add comment