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;
}