Iteración 3(Versión sin idiomas)
[ISBets21MAUBRY] / 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 (file)
index 0000000..141e15f
--- /dev/null
@@ -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<Question> preguntas = new Vector<Question>();
+       private DefaultListModel modeloPronosticos = new DefaultListModel();
+       private Event eventoSeleccionado;
+       private Question preguntaSeleccionada;
+       private DefaultListModel modelousuarios = new DefaultListModel();
+       private Vector<User> usuarios = facade.getAllUsers();
+       private AdminUser userlog = null;
+       private JButton btnAtras;
+       private DefaultListModel modeloApuestas = new DefaultListModel();
+       private Vector<Bet> apuestas = new Vector<Bet>();
+       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<Event> eventos = facade.getAllEvents();
+
+               for (Event e : eventos) {
+
+                       Vector<Object> row = new Vector<Object>();
+                       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<Bet> apuestasUsuario = facade.getApuestasByUser((RegularUser) user);
+
+                               for (Bet bet : apuestasUsuario) {
+
+                                       Vector<Object> row = new Vector<Object>();
+                                       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<Object> row = new Vector<Object>();
+
+                       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<Question> preguntas = facade.getAllQuestions();
+
+               for (Question q : preguntas) {
+
+                       Vector<Object> row = new Vector<Object>();
+                       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);
+
+       }
+}