/*
* 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;
}
}