proyecto_venta_boletos/ProyectoVentaBoletos/src/main/java/controller/MenuController.java

93 lines
3.8 KiB
Java

package controller;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.Evento;
import model.ModeloSQL;
import view.Menu;
import view.MenuSala;
public class MenuController extends WindowAdapter implements ActionListener, ItemListener {
private Menu menu;
private MenuSala menuSala;
private ModeloSQL modeloSQL;
private String seleccionEventoComboBox;
private ArrayList<Evento> arrayListEventos;
public MenuController(Menu menu){
this.menu = menu;
this.modeloSQL = new ModeloSQL();
arrayListEventos = new ArrayList<>();
obtenerEventosDefaultComboBoxMoldel();
}
@Override
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
// Si se presiona el boton de visualizar
if(o.equals(menu.jButtonVisualizar)){
// Si se ha seleccionado un evento del comboBox
if(seleccionEventoComboBox != null && seleccionEventoComboBox != "Seleccione un evento"){
System.out.println("controller.MenuController.actionPerformed(): visualizar evento de " + seleccionEventoComboBox);
menuSala = new MenuSala(obtenerIdEventoSeleccionado(seleccionEventoComboBox), seleccionEventoComboBox);
menu.jPanelMenuSala.removeAll(); // Limpiar panel
menu.jPanelMenuSala.add(menuSala, BorderLayout.CENTER); // Agrega el nuevo JPanel
menu.jPanelMenuSala.revalidate(); // Reorganiza los componentes
menu. jPanelMenuSala.repaint(); // Redibuja la interfaz
} else {
menu.mensaje("Debe seleccionar un evento.");
}
}
}
public void itemStateChanged(ItemEvent e) {
// Obtener evento musical seleccionado del ComboBox
if (e.getStateChange() == ItemEvent.SELECTED) {
seleccionEventoComboBox = (String) menu.jComboBoxEventos.getSelectedItem();
System.out.println("controller.MenuController.itemStateChanged: seleccionó " + seleccionEventoComboBox);
}
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("controller.MenuController.windowClosing(): cerrar.");
ConexionSingleton.closeConnection();
}
// Obtener ResultSet de ModeloSQL y añádir eventos al ComboBoxModel del ComboBox de eventos
public void obtenerEventosDefaultComboBoxMoldel(){
ResultSet rs = modeloSQL.obtenerEventos();
menu.defaultComboBoxModel.addElement("Seleccione un evento");
try {
while ( rs.next() ){
arrayListEventos.add(new Evento(rs.getInt("idEvento"), rs.getString("nombre"), rs.getDate("fecha")));
menu.defaultComboBoxModel.addElement(rs.getString("nombre"));
System.out.println("MenuController.obtenerEventosDefaultComboBoxMoldel(): + " + rs.getString("nombre"));
}
} catch (SQLException ex) {
System.out.println("MenuController.obtenerEventosDefaultComboBoxMoldel(): error " + ex);
}
}
public int obtenerIdEventoSeleccionado(String nombreEvento){
int idEvento = 0;
for(Evento evento: arrayListEventos){
if(evento.getNombre().equals(nombreEvento)){
idEvento = evento.getIdEvento();
System.out.println("MenuController.obtenerIdEventoSeleccionado: " + nombreEvento + " id: " + idEvento );
}
}
return idEvento;
}
}