X-Git-Url: https://xp-dev.com/git/ISBets21MAUBRY/blobdiff_plain/cbae1464e51d90bc80afc97083afd6462fd3c54f..3cf4057e97448d401b49261033b8ab566105944e:/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AdministrationGUI.java diff --git a/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AdministrationGUI.java b/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AdministrationGUI.java new file mode 100644 index 0000000..141e15f --- /dev/null +++ b/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AdministrationGUI.java @@ -0,0 +1,383 @@ +package gui; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.Rectangle; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Vector; + +import javax.swing.DefaultListModel; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JTable; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; + +import businessLogic.BLFacade; +import domain.AdminUser; +import domain.Bet; +import domain.Event; +import domain.Question; +import domain.RegularUser; +import domain.User; + +public class AdministrationGUI extends JFrame { + + private static BLFacade facade = LoginGUI.getBusinessLogic(); + private DefaultListModel modelopreguntas = new DefaultListModel(); + private Vector preguntas = new Vector(); + private DefaultListModel modeloPronosticos = new DefaultListModel(); + private Event eventoSeleccionado; + private Question preguntaSeleccionada; + private DefaultListModel modelousuarios = new DefaultListModel(); + private Vector usuarios = facade.getAllUsers(); + private AdminUser userlog = null; + private JButton btnAtras; + private DefaultListModel modeloApuestas = new DefaultListModel(); + private Vector apuestas = new Vector(); + private JScrollPane scrollPaneApuestas = new JScrollPane(); + private JTable tablaApuestas; + private String[] nombresColumnasApuestas = { "Fecha", "Evento", "Pregunta", "Apuesta a ", "Cant. apostada", "Cuota", + "Estado", "Usuario" }; + + private DefaultTableModel tableModelApuestas = new DefaultTableModel(null, nombresColumnasApuestas) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + private JScrollPane scrollPaneEventos = new JScrollPane(); + private JTable tablaEventos; + private String[] nombresColumnasEventos = { "Id", "Fecha", "Evento" }; + + private DefaultTableModel tableModelEventos = new DefaultTableModel(null, nombresColumnasEventos) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + private String[] nombresColumnasPreguntas = { "Id", "Pregunta", "Evento" }; + private JScrollPane scrollPanePreguntas = new JScrollPane(); + private JTable tablaPreguntas; + private DefaultTableModel tableModelPreguntas = new DefaultTableModel(null, nombresColumnasPreguntas) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + private String[] nombresColumnas = { "Username", "UserPass", "FirstName", "LastName ", "BirthDate", "Email", + "BankAccount", "PhoneNumber", "Address", "Balance" }; + private JScrollPane scrollPaneUsuarios = new JScrollPane(); + private JTable tabla; + private DefaultTableModel tableModelUsuarios = new DefaultTableModel(null, nombresColumnas) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + private JLabel lblInfo; + private JLabel lblInfo2; + private JLabel lblIcono; + private JSeparator separator; + private JLabel lblApuestas; + private JLabel lblPreguntas; + private JLabel lblUsuarios; + private JLabel lblEventos; + + public static void setBusinessLogic(BLFacade pfacade) { + facade = pfacade; + } + + public static BLFacade getBusinessLogic() { + return facade; + } + + public AdministrationGUI(AdminUser u) { + getContentPane().setBackground(Color.WHITE); + + userlog = u; + +// this.setTitle(ResourceBundle.getBundle("Etiquetas").getString("MainAdminGUI.buttonAdmin.text")); + this.setTitle("buttonAdmin"); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + setBounds(100, 100, 1600, 650); + getContentPane().setLayout(null); + + Vector eventos = facade.getAllEvents(); + + for (Event e : eventos) { + + Vector row = new Vector(); + row.add(e.getEventNumber()); + row.add(e.getEventDate().toString().substring(0, 11)); + row.add(e.getDescription()); + + tableModelEventos.addRow(row); + + } + + tablaEventos = new JTable(tableModelEventos) { + @Override + public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { + Component component = super.prepareRenderer(renderer, row, column); + int rendererWidth = component.getPreferredSize().width; + TableColumn tableColumn = getColumnModel().getColumn(column); + tableColumn.setPreferredWidth( + Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth())); + return component; + } + + }; + + tablaEventos.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, + boolean hasFocus, int row, int column) { + final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, + column); + + c.setBackground(row % 2 != 0 ? new Color(233, 233, 233) : Color.WHITE); + + return c; + } + }); + + scrollPaneEventos.setBounds(new Rectangle(865, 165, 503, 119)); + scrollPaneEventos.setViewportView(tablaEventos); + this.getContentPane().add(scrollPaneEventos); + + for (User user : usuarios) { + if (user instanceof RegularUser) { + Vector apuestasUsuario = facade.getApuestasByUser((RegularUser) user); + + for (Bet bet : apuestasUsuario) { + + Vector row = new Vector(); + row.add(bet.getForecast().getQuestion().getEvent().getEventDate().toString().substring(0, 11)); + row.add(bet.getForecast().getQuestion().getEvent().getDescription()); + row.add(bet.getForecast().getQuestion().getQuestion()); + row.add(bet.getForecast().getForecast()); + row.add(bet.getAmount()); + row.add(bet.getForecast().getFee()); + row.add(bet.getEstadoApuesta()); + row.add(bet.getUser().getUserName()); + tableModelApuestas.addRow(row); + + } + + } + + } + + tablaApuestas = new JTable(tableModelApuestas) { + @Override + public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { + Component component = super.prepareRenderer(renderer, row, column); + int rendererWidth = component.getPreferredSize().width; + TableColumn tableColumn = getColumnModel().getColumn(column); + tableColumn.setPreferredWidth( + Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth())); + return component; + } + + }; + + tablaApuestas.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, + boolean hasFocus, int row, int column) { + final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, + column); + + c.setBackground(row % 2 != 0 ? new Color(233, 233, 233) : Color.WHITE); + + return c; + } + }); + + scrollPaneApuestas.setBounds(new Rectangle(40, 355, 774, 119)); + scrollPaneApuestas.setViewportView(tablaApuestas); + this.getContentPane().add(scrollPaneApuestas); + + preguntas = facade.getAllQuestions(); + for (Question q : preguntas) { + modelopreguntas.addElement(q); + } + + btnAtras = new JButton("Atrás"); + btnAtras.setFont(new Font("Dialog", Font.BOLD, 14)); + btnAtras.setForeground(Color.WHITE); + btnAtras.setBackground(SystemColor.controlShadow); +// btnAtras.setText(ResourceBundle.getBundle("Etiquetas").getString("Close")); + btnAtras.setText("Close"); + + btnAtras.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + + JFrame a = new MainAdminGUI(userlog); + a.setAlwaysOnTop(true); + a.setVisible(true); + dispose(); + + } + }); + btnAtras.setBounds(40, 550, 99, 26); + getContentPane().add(btnAtras); + modelousuarios.addElement("Usuarios:\n"); + modelousuarios.addElement("\n"); + usuarios = facade.getAllUsers(); + for (User e : usuarios) { + modelousuarios.addElement(e.toString()); + } + + for (User us : usuarios) { + + Vector row = new Vector(); + + if (us instanceof AdminUser) { + + row.add(us.getUserName()); + row.add(us.getUserPass()); + row.add(us.getFirstName()); + row.add(us.getLastName()); + tableModelUsuarios.addRow(row); + + } else if (us instanceof RegularUser) { + row.add(us.getUserName()); + row.add(us.getUserPass()); + row.add(us.getFirstName()); + row.add(us.getLastName()); + row.add(((RegularUser) us).getBirthDate()); + row.add(((RegularUser) us).getEmail()); + row.add(((RegularUser) us).getBankAccount()); + row.add(((RegularUser) us).getPhoneNumb()); + row.add(((RegularUser) us).getAddress()); + row.add(((RegularUser) us).getBalance() + "€"); + + tableModelUsuarios.addRow(row); + } + + } + tabla = new JTable(tableModelUsuarios) { + @Override + public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { + Component component = super.prepareRenderer(renderer, row, column); + int rendererWidth = component.getPreferredSize().width; + TableColumn tableColumn = getColumnModel().getColumn(column); + tableColumn.setPreferredWidth( + Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth())); + return component; + } + + }; + + tabla.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, + boolean hasFocus, int row, int column) { + final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, + column); + + c.setBackground(row % 2 != 0 ? new Color(233, 233, 233) : Color.WHITE); + + return c; + } + }); + + scrollPaneUsuarios.setBounds(new Rectangle(40, 165, 774, 119)); + scrollPaneUsuarios.setViewportView(tabla); + + this.getContentPane().add(scrollPaneUsuarios); + + Vector preguntas = facade.getAllQuestions(); + + for (Question q : preguntas) { + + Vector row = new Vector(); + row.add(q.getQuestionNumber()); + row.add(q.getQuestion()); + row.add(q.getEvent().getDescription()); + + tableModelPreguntas.addRow(row); + + } + + tablaPreguntas = new JTable(tableModelPreguntas) { + @Override + public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { + Component component = super.prepareRenderer(renderer, row, column); + int rendererWidth = component.getPreferredSize().width; + TableColumn tableColumn = getColumnModel().getColumn(column); + tableColumn.setPreferredWidth( + Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth())); + return component; + } + + }; + + tablaPreguntas.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, + boolean hasFocus, int row, int column) { + final Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, + column); + + c.setBackground(row % 2 != 0 ? new Color(233, 233, 233) : Color.WHITE); + + return c; + } + }); + + scrollPanePreguntas.setBounds(new Rectangle(865, 355, 689, 113)); + scrollPanePreguntas.setViewportView(tablaPreguntas); + this.getContentPane().add(scrollPanePreguntas); + + lblInfo = new JLabel("Panel de control del administrador."); + lblInfo.setBounds(58, 34, 544, 16); + getContentPane().add(lblInfo); + + lblInfo2 = new JLabel( + "Se pueden ver todos los usuarios registrados, todas las apuestas realizadas, todos los eventos y todas las preguntas."); + lblInfo2.setBounds(58, 63, 746, 16); + getContentPane().add(lblInfo2); + + ImageIcon icon = new ImageIcon("imagenes/info.png"); + lblIcono = new JLabel(icon); + lblIcono.setBounds(27, 27, 30, 30); + getContentPane().add(lblIcono); + + separator = new JSeparator(); + separator.setBounds(58, 91, 672, 16); + getContentPane().add(separator); + + lblApuestas = new JLabel("Apuestas:"); + lblApuestas.setBounds(40, 327, 73, 16); + getContentPane().add(lblApuestas); + + lblPreguntas = new JLabel("Preguntas:"); + lblPreguntas.setBounds(865, 327, 73, 16); + getContentPane().add(lblPreguntas); + + lblUsuarios = new JLabel("Usuarios:"); + lblUsuarios.setBounds(40, 137, 55, 16); + getContentPane().add(lblUsuarios); + + lblEventos = new JLabel("Eventos:"); + lblEventos.setBounds(865, 137, 73, 16); + getContentPane().add(lblEventos); + + } +}