93 lines
3.8 KiB
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;
|
|
}
|
|
}
|