X-Git-Url: https://xp-dev.com/git/ISBets21MAUBRY/blobdiff_plain/cbae1464e51d90bc80afc97083afd6462fd3c54f..3cf4057e97448d401b49261033b8ab566105944e:/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AnularApuestaGUI.java diff --git a/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AnularApuestaGUI.java b/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AnularApuestaGUI.java new file mode 100644 index 0000000..1b9e550 --- /dev/null +++ b/eclipse-workspace/ISBets21MAUBRY/src/main/java/gui/AnularApuestaGUI.java @@ -0,0 +1,239 @@ +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.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.Vector; + +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +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.Bet; +import domain.RegularUser; + +public class AnularApuestaGUI extends JFrame { + + private JPanel contentPane; + private JScrollPane scrollPaneApuestas = new JScrollPane(); + private JTable tabla; + private String[] nombresColumnas = { "Fecha", "Evento", "Pregunta", "Apuesta a ", "Cant. apostada", "Cuota", "" }; + private DefaultTableModel tableModelApuestas = new DefaultTableModel(null, nombresColumnas) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + private static BLFacade facade = LoginGUI.getBusinessLogic(); + + private RegularUser userlog; + private JButton btnAtras; + private JLabel lblApuestas; + private JLabel lblInfo; + private JSeparator separator; + private JLabel lblSaldo; + private RegularUser newUserActualizado; + private JLabel lblNewLabel_1; + + public AnularApuestaGUI(RegularUser ru) { + getContentPane().setBackground(Color.WHITE); + userlog = ru; + newUserActualizado = ru; + +// setTitle(ResourceBundle.getBundle("Etiquetas").getString("MainGUI.btnAnularApuesta.text") +// + " " + userlog.getUserName()); + setTitle("btnAnularApuesta" + + " " + + userlog.getUserName()); + + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + setBounds(100, 100, 1100, 500); + getContentPane().setLayout(null); + + JButton btnEliminar = new JButton("Anular"); + btnEliminar.setName("Anular"); + Vector apuestasUsuario = facade.getApuestasAbiertas(userlog); + Vector apuestasAbiertas = new Vector(); + for (Bet bet : apuestasUsuario) { + if (bet.getEstadoApuesta().equals("Pendiente")) { + 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.addElement(btnEliminar); + apuestasAbiertas.addElement(bet); + tableModelApuestas.addRow(row); + } + } + + // OVERRIDE DE METODO PARA QUE SE AJUSTEN AUTOMATICAMENTE LAS COLUMNAS DE LA + // TABLA SEGUN EL CONTENIDO + tabla = 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; + } + + }; + + 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; + } + }); + + tabla.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent ev) { + + int column = tabla.getColumnModel().getColumnIndexAtX(ev.getX()); + int row = ev.getY() / tabla.getRowHeight(); + + if (row < tabla.getRowCount() && row >= 0 && column < tabla.getColumnCount() && column >= 0) { + Object value = tabla.getValueAt(row, column); + if (value instanceof JButton) { + ((JButton) value).doClick(); + JButton boton = (JButton) value; + try { + int i = tabla.getSelectedRow(); + Bet apu = apuestasAbiertas.get(i); + +// int dialogButton = JOptionPane.YES_NO_OPTION; +// JOptionPane.showConfirmDialog(getContentPane(), "¿Seguro que quieres anular la apuesta?", +// "CUIDADO!", dialogButton); +// if (dialogButton == JOptionPane.YES_OPTION) { +// System.out.println("CLIC EN SI"); + + System.out.println("Anulando la apuesta: " + apu.getForecast().getForecast() + " / " + + apu.getForecast().getQuestion() + " / " + + apu.getForecast().getQuestion().getEvent().getDescription() + "de la tabla"); + tableModelApuestas.removeRow(row); + apuestasAbiertas.remove(i); + if (facade.anularApuesta(apu)) { + + JOptionPane.showMessageDialog(getContentPane(), + "La apuesta a " + apu.getForecast().getForecast() + + " ha sido anulada. \nEl importe de " + apu.getAmount() + "€" + + " será reintegrado inmediatamente..."); + + System.out.println("APUESTA ANULADA"); +// lblSaldo.setText(ResourceBundle.getBundle("Etiquetas").getString("MainGUI.lblSaldo") +// + " " + (newUserActualizado.getBalance() + apu.getAmount()) + "€"); + lblSaldo.setText( + "Balance" + " " + (newUserActualizado.getBalance() + apu.getAmount()) + "€"); + } + +// } +// if (dialogButton == JOptionPane.NO_OPTION) { +// System.out.println("CLIC EN NO"); +// remove(dialogButton); +// } + + newUserActualizado = facade.getRegularUserByUsername(userlog.getUserName()); + + } catch (Exception e) { + } + + } + } + + } + }); + + tabla.setDefaultRenderer(Object.class, new Render()); + + scrollPaneApuestas.setBounds(new Rectangle(40, 190, 996, 119)); + scrollPaneApuestas.setViewportView(tabla); + this.getContentPane().add(scrollPaneApuestas); + + btnAtras = new JButton(); + btnAtras.setForeground(Color.WHITE); + btnAtras.setFont(new Font("Dialog", Font.BOLD, 14)); + btnAtras.setBackground(SystemColor.controlShadow); +// btnAtras.setText(ResourceBundle.getBundle("Etiquetas").getString("Close")); + btnAtras.setText("Close"); + + btnAtras.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + + RegularUser usuarioActualizado = facade.getRegularUserByUsername(userlog.getUserName()); + + JFrame a = new MainGUI(usuarioActualizado); + a.setAlwaysOnTop(true); + a.setVisible(true); + dispose(); + + } + }); + btnAtras.setBounds(52, 376, 99, 26); + getContentPane().add(btnAtras); + + lblApuestas = new JLabel("Apuestas abiertas:"); + lblApuestas.setBounds(40, 156, 135, 16); + getContentPane().add(lblApuestas); + + lblInfo = new JLabel( + "Aquí podrás cancelar una apuesta que aún sigue en curso. Se te devolverá el dinero apostado."); + lblInfo.setBounds(66, 48, 666, 47); + getContentPane().add(lblInfo); + + separator = new JSeparator(); + separator.setBounds(64, 94, 535, 26); + getContentPane().add(separator); + + JPanel panel = new JPanel(); + panel.setBackground(new Color(0, 0, 128)); + panel.setBounds(655, 26, 136, 36); + getContentPane().add(panel); + panel.setLayout(null); + +// lblSaldo = new JLabel(ResourceBundle.getBundle("Etiquetas").getString("MainGUI.lblSaldo") //$NON-NLS-1$ //$NON-NLS-2$ +// + " " + userlog.getBalance() + "€"); + lblSaldo = new JLabel("Balance" //$NON-NLS-1$ //$NON-NLS-2$ + + " " + userlog.getBalance() + "€"); + lblSaldo.setBounds(10, 8, 197, 19); + panel.add(lblSaldo); + lblSaldo.setFont(new Font("Tahoma", Font.BOLD, 14)); + lblSaldo.setForeground(Color.WHITE); + + ImageIcon icon = new ImageIcon("imagenes/info.png"); + lblNewLabel_1 = new JLabel(icon); + lblNewLabel_1.setBounds(23, 48, 55, 40); + getContentPane().add(lblNewLabel_1); + + } +}