/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package GUI; import Database.OracleAccess; import Helpers.SwingUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * * @author Greenlamp */ public class Reservations extends javax.swing.JDialog { /** * Creates new form Reservations */ int idMovie; String name; LinkedList<Integer> copies; LinkedList<Integer> salles; String day; String month; String year; OracleAccess oracle; Main parent; public Reservations(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } Reservations(java.awt.Frame parent, boolean modal, int idMovie, String nameSelected, LinkedList<Integer> copies, LinkedList<Integer> salles, String day, String month, String year, OracleAccess oracle) { super(parent, modal); initComponents(); this.parent = (Main)parent; this.idMovie = idMovie; this.name = nameSelected; this.copies = copies; this.salles = salles; this.day = day; this.month = month; this.year = year; this.oracle = oracle; fillDetails(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); Gid = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); Gdate = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); Gcopie = new javax.swing.JComboBox(); Gsalle = new javax.swing.JComboBox(); jLabel11 = new javax.swing.JLabel(); Gstatus = new javax.swing.JLabel(); Bverifier = new javax.swing.JButton(); Bvalider = new javax.swing.JButton(); Gheure = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Reserver"); jPanel1.setBackground(new java.awt.Color(204, 204, 204)); jLabel1.setText("Id du film: "); Gid.setText("0"); jLabel5.setText("Date: "); Gdate.setText("None"); jLabel7.setText("Heure:"); jLabel9.setText("Copies: "); jLabel10.setText("Salles: "); jLabel11.setText("Status: "); Gstatus.setText("Non vérifier"); Bverifier.setText("Vérifier"); Bverifier.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BverifierActionPerformed(evt); } }); Bvalider.setText("Valider"); Bvalider.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BvaliderActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .add(49, 49, 49) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .add(jLabel1) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(Gid)) .add(jPanel1Layout.createSequentialGroup() .add(jLabel5) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(Gdate)) .add(jPanel1Layout.createSequentialGroup() .add(jLabel11) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(Gstatus)) .add(jPanel1Layout.createSequentialGroup() .add(jLabel7) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(Gheure, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 72, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(jPanel1Layout.createSequentialGroup() .add(21, 21, 21) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(Bvalider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(Bverifier, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 69, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(jPanel1Layout.createSequentialGroup() .add(1, 1, 1) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .add(jLabel9) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(Gcopie, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 72, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(jPanel1Layout.createSequentialGroup() .add(jLabel10) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(Gsalle, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 71, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))) .addContainerGap(67, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jPanel1Layout.createSequentialGroup() .addContainerGap() .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) .add(Gid)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel5) .add(Gdate)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel7) .add(Gheure, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel9) .add(Gcopie, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel10) .add(Gsalle, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(34, 34, 34) .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel11) .add(Gstatus)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(Bverifier) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(Bvalider) .add(37, 37, 37)) ); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addContainerGap(17, Short.MAX_VALUE)) ); pack(); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); java.awt.Dimension dialogSize = getSize(); setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); }// </editor-fold>//GEN-END:initComponents private void BvaliderActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BvaliderActionPerformed if(Gheure.getText().isEmpty()){ JOptionPane.showMessageDialog(this, "Heure vide"); return; } boolean ok = verify(); if(ok){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm"); String chaine = day+"/"+month+"/"+year+" "+Gheure.getText(); Date date = null; try { date = sdf.parse(chaine); } catch (ParseException ex) { Logger.getLogger(Reservations.class.getName()).log(Level.SEVERE, null, ex); } parent.nouvelleReservation(idMovie, Gcopie.getSelectedItem().toString(), date, Gsalle.getSelectedItem().toString()); } }//GEN-LAST:event_BvaliderActionPerformed private void BverifierActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BverifierActionPerformed if(Gheure.getText().isEmpty()){ JOptionPane.showMessageDialog(this, "Heure vide"); return; } boolean ok = verify(); if(ok){ Gstatus.setText("Disponible"); }else{ Gstatus.setText("Non disponible"); } }//GEN-LAST:event_BverifierActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Reservations.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Reservations.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Reservations.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Reservations.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the dialog */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Reservations dialog = new Reservations(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton Bvalider; private javax.swing.JButton Bverifier; private javax.swing.JComboBox Gcopie; private javax.swing.JLabel Gdate; private javax.swing.JTextField Gheure; private javax.swing.JLabel Gid; private javax.swing.JComboBox Gsalle; private javax.swing.JLabel Gstatus; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; // End of variables declaration//GEN-END:variables private void fillDetails() { Gid.setText(String.valueOf(idMovie)); this.setTitle(name); if(Integer.parseInt(day) < 10){ day = "0" + day; } Gdate.setText(day+"/"+month+"/"+year); for(int salle : salles){ SwingUtils.addToComboBox(Gsalle, String.valueOf(salle)); } for(int idCopie: copies){ SwingUtils.addToComboBox(Gcopie, String.valueOf(idCopie)); } } private boolean verify() { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm"); String chaine = day+"/"+month+"/"+year+" "+Gheure.getText(); Date date = null; try { date = sdf.parse(chaine); } catch (ParseException ex) { Logger.getLogger(Reservations.class.getName()).log(Level.SEVERE, null, ex); } oracle.initCallFunc("PACKAGE_PROGRAMMATION", "verifProjection", 4); String message = oracle.doVerifProjection(idMovie, Integer.parseInt(Gcopie.getSelectedItem().toString()), date, Integer.parseInt(Gsalle.getSelectedItem().toString())); boolean ok = false; if(message.equalsIgnoreCase("OK")){ ok = true; }else{ JOptionPane.showMessageDialog(this, message); } return ok; } }