diff --git a/Asiento.java b/Asiento.java index d2bcfa2..8b24610 100644 --- a/Asiento.java +++ b/Asiento.java @@ -3,6 +3,7 @@ public class Asiento { private int y; private String zona; private boolean disponibilidad; + private int id; public Asiento(int x, int y, String zona, boolean disponibilidad) { this.x = x; @@ -11,6 +12,14 @@ public class Asiento { this.disponibilidad = disponibilidad; } + public Asiento(int id, int x, int y, String zona, boolean disponibilidad){ + this.id = id; + this.x = x; + this.y = y; + this.zona = zona; + this.disponibilidad = disponibilidad; + } + public int getX() { return x; } diff --git a/GestiónBotónSeleccionarSala.java b/GestiónBotónSeleccionarSala.java new file mode 100644 index 0000000..5cde46f --- /dev/null +++ b/GestiónBotónSeleccionarSala.java @@ -0,0 +1,18 @@ +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; + +public class GestiónBotónSeleccionarSala implements ItemListener { + + SeleccionarAsientoV ventana; + + public GestiónBotónSeleccionarSala(SeleccionarAsientoV ventana) { + this.ventana = ventana; + } + + @Override + public void itemStateChanged(ItemEvent e) { + String seleccion = ventana.salas.getSelectedItem().toString(); + ventana.obtenerAsientos(Integer.valueOf(seleccion)); + ventana.actualizarCeldas(); + } +} diff --git a/SeleccionarAsientoV.java b/SeleccionarAsientoV.java index 61b024e..a2dd73b 100644 --- a/SeleccionarAsientoV.java +++ b/SeleccionarAsientoV.java @@ -31,24 +31,14 @@ public class SeleccionarAsientoV extends JPanel { private Asiento [][] asientos; List asientosSeleccionados = new ArrayList(); - public SeleccionarAsientoV(Asiento [][] parAsientos) throws HeadlessException { - this.setLayout(new BorderLayout()); - - asientos = parAsientos; - - agregarComponentes(); - añadirListeners(); - - crearCeldas(7,10); - } public SeleccionarAsientoV() throws HeadlessException { this.setLayout(new BorderLayout()); - llenarAsientos(); + //llenarAsientos(); + obtenerAsientos(1); agregarComponentes(); - añadirListeners(); crearCeldas(7,10); } @@ -58,6 +48,7 @@ public class SeleccionarAsientoV extends JPanel { pSuperior.add(lSeleccionar); pSuperior.add(this.cbSalas); this.llenarSalas(); + cbSalas.addItemListener(new GestiónBotónSeleccionarSala(this)); pInferior.add(this.lTotal); pInferior.add(this.bSeleccionar); @@ -66,10 +57,6 @@ public class SeleccionarAsientoV extends JPanel { this.add(pInferior,BorderLayout.SOUTH); } - public void llenarSalas(){ - - } - public void crearCeldas(int parX, int parY){ GridBagConstraints con = new GridBagConstraints(); @@ -118,10 +105,32 @@ public class SeleccionarAsientoV extends JPanel { this.add(pSala,BorderLayout.CENTER); } - public void añadirListeners(){ - //bRegresar.addActionListener(new GestiónBotónCambiarVentana(this,new ventana2().panelV2)); + public void actualizarCeldas(){ + String zona; + for(int i = 0; i < 7; i++){ + for(int j = 0; j < 10; j ++){ + if( ( (j >= 2) && (j <= 7) ) && ( (i >= 2) && (i <= 6) ) ){ + bAsientos[i][j].setBackground(Color.PINK); + zona = "A"; + bAsientos[i][j].setText("200$"); + } + if( ((i == 1) && (j > 0) && (j < 9)) || ((j == 1) && (i > 0)) || ((j == 8) && (i > 0)) ){ + bAsientos[i][j].setBackground(Color.ORANGE); + zona = "B"; + bAsientos[i][j].setText("130$"); + } + if( (i == 0) || (j == 0) || (j == 9)){ + bAsientos[i][j].setBackground(Color.YELLOW); + zona = "C"; + bAsientos[i][j].setText("65$"); + } + if(asientos[i][j].isDisponibilidad()){ + bAsientos[i][j].setBackground(Color.DARK_GRAY); + bAsientos[i][j].setText("ND"); + } + } + } } - public void llenarAsientos(){ asientos = new Asiento[7][10]; String zona = ""; @@ -191,13 +200,72 @@ public class SeleccionarAsientoV extends JPanel { lTotal.setText("Total: " + total + "$"); } - public void obtenerDatos(){ - ConexionBD con = new ConexionBD(); - Connection connection; - PreparedStatement ps; + public void obtenerAsientos(int salaSeleccionada){ + Connection conexion = null; ResultSet rs; Statement st; - String consulta = "SELECT * FROM ASIENTOS WHERE idFkZona INNER JOIN"; + String consulta = "SELECT disponibilidad, ubicacion, idAsiento FROM asientos WHERE fksala = "+salaSeleccionada; + + asientos = new Asiento[7][10]; + String zona = ""; + + try { + conexion = ConexionBD.getConnection(); + st = conexion.createStatement(); + rs = st.executeQuery(consulta); + while(rs.next()){ + + String isDisponible = String.valueOf(rs.getShort("disponibilidad")); + + boolean disponibilidad = false; + + if(isDisponible.equals("0")){ + disponibilidad = true; + } + + int i = Character.getNumericValue(rs.getString("ubicacion").charAt(0)); + int j = Character.getNumericValue(rs.getString("ubicacion").charAt(2)); + + int id = rs.getInt("idAsiento"); + + if( ( (j >= 2) && (j <= 7) ) && ( (i >= 2) && (i <= 6) ) ){ + zona = "A"; + } + if( ((i == 1) && (j > 0) && (j < 9)) || ((j == 1) && (i > 0)) || ((j == 8) && (i > 0)) ){ + zona = "B"; + } + if( (i == 0) || (j == 0) || (j == 9)){ + zona = "C"; + } + + Asiento aux = new Asiento(id,i,j,zona,disponibilidad); + asientos[i][j] = aux; + } + conexion.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } } + + public void llenarSalas() { + Connection conexion = null; + ResultSet rs; + Statement st; + String consulta = "SELECT idSala FROM sala"; + + try { + conexion = ConexionBD.getConnection(); + st = conexion.createStatement(); + rs = st.executeQuery(consulta); + while(rs.next()){ + salas.addElement(rs.getInt("idSala")); + } + conexion.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + } diff --git a/out/production/mezontleTeam/Asiento.class b/out/production/mezontleTeam/Asiento.class index d02a4f8..ecd5c97 100644 Binary files a/out/production/mezontleTeam/Asiento.class and b/out/production/mezontleTeam/Asiento.class differ diff --git a/out/production/mezontleTeam/SeleccionarAsientoV.class b/out/production/mezontleTeam/SeleccionarAsientoV.class index bbbdb61..f7b83c2 100644 Binary files a/out/production/mezontleTeam/SeleccionarAsientoV.class and b/out/production/mezontleTeam/SeleccionarAsientoV.class differ