import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * Classe Control * * @author Antonio Terreno * @created 21 giugno 2002 */ public class ContoCorrenteControl extends JPanel implements ActionListener { /** *Costruttore della classe ContoCorrenteControl * * @param cc Conto Corrente * @param cv Conto Corrente Vista */ public ContoCorrenteControl(ContoCorrente[] cc, ContoCorrenteInterfaceView cv) { super(new FlowLayout()); conto = cc; contoVista = cv; buttonLogout = new JButton("Logout"); buttonLogout.setEnabled(false); buttonLogout.addActionListener(this); buttonLogin = new JButton("Login"); buttonLogin.addActionListener(this); button25 = new JButton("Preleva 25"); button25.setEnabled(false); button25.addActionListener(this); button50 = new JButton("Preleva 50"); button50.setEnabled(false); button50.addActionListener(this); buttonPreleva = new JButton("Preleva"); buttonPreleva.setEnabled(false); buttonPreleva.addActionListener(this); button100 = new JButton("Preleva 100"); button100.setEnabled(false); button100.addActionListener(this); button150 = new JButton("Preleva 150"); button150.setEnabled(false); button150.addActionListener(this); buttonVersa = new JButton("Versa"); buttonVersa.setEnabled(false); buttonVersa.addActionListener(this); add(button25); add(button50); add(button100); add(button150); add(buttonVersa); add(buttonPreleva); add(buttonLogout); add(buttonLogin); } /** * Setta a true/false i bottoni dell'oggetto ContoCorrenteControl * * @param value Il nuovo valore dei bottoni */ public void setButtons(boolean value) { button25.setEnabled(value); button50.setEnabled(value); button100.setEnabled(value); button150.setEnabled(value); buttonLogout.setEnabled(value); buttonPreleva.setEnabled(value); buttonVersa.setEnabled(value); contoVista.setFields(value); } /** * Cattura l'azione * * @param event Evento Azione */ public void actionPerformed(ActionEvent event) { Object source = event.getSource(); if (source == buttonLogin) { try { buttonLogin.setEnabled(false); setButtons(true); loginCC = contoVista.getTextCC(); contoVista.displaySaldo(loginCC); } catch (RuntimeException err) { contoVista.setError(err.getMessage()); } } else if (source == buttonLogout) { buttonLogin.setEnabled(true); setButtons(false); } else if (source == button25) { try { ContoCorrente.preleva(25, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } else if (source == button50) { try { ContoCorrente.preleva(50, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } else if (source == button100) { try { ContoCorrente.preleva(100, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } else if (source == button150) { try { ContoCorrente.preleva(150, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } else if (source == buttonPreleva) { int valore = contoVista.getTextPrelievo(); try { ContoCorrente.preleva(valore, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } else if (source == buttonVersa) { int valore = contoVista.getTextVersamento(); try { ContoCorrente.deposita(valore, loginCC); contoVista.displaySaldo(loginCC); } catch (MovimentoErrato me) { contoVista.setError(me.getErr()); } } contoVista.updateView(); } private ContoCorrente[] conto; private ContoCorrenteInterfaceView contoVista; private JButton button25; private JButton button50; private JButton button100; private JButton button150; private JButton buttonLogin; private JButton buttonLogout; private JButton buttonPreleva; private JButton buttonVersa; private int loginCC; private String loginName; }