import java.awt.*;
import javax.swing.*;
/**
* Vista per il modello ContoCorrente
*
* @author Antonio Terreno
* @created 20 giugno 2002
*/
public class ContoCorrenteView extends JPanel implements ContoCorrenteInterfaceView {
/**
*Costruttore per l'oggetto ContoCorrenteView
*
* @param model Modello
*/
public ContoCorrenteView(ContoCorrente[] model) {
setLayout(new BorderLayout());
conto = model;
JPanel panelNorth = new JPanel(new FlowLayout());
labelName = new JLabel("Nome Correntista:");
panelNorth.add(labelName);
add(panelNorth, BorderLayout.NORTH);
textName = new JTextField("");
textName.setColumns(10);
textName.setBorder(BorderFactory.createEtchedBorder());
textName.setEnabled(false);
panelNorth.add(textName);
add(panelNorth, BorderLayout.NORTH);
labelCC = new JLabel("Numero Conto:");
panelNorth.add(labelCC);
add(panelNorth, BorderLayout.NORTH);
textCC = new JTextField("");
textCC.setColumns(10);
textCC.setBorder(BorderFactory.createEtchedBorder());
textCC.setEnabled(true);
panelNorth.add(textCC);
add(panelNorth, BorderLayout.NORTH);
JPanel panelEast = new JPanel(new FlowLayout());
textPrelievo = new JTextField("0");
textPrelievo.setColumns(4);
textPrelievo.setEnabled(false);
textPrelievo.setBorder(BorderFactory.createEtchedBorder());
panelEast.add(textPrelievo);
add(panelEast, BorderLayout.EAST);
JPanel panelWest = new JPanel(new FlowLayout());
textVersamento = new JTextField("0");
textVersamento.setColumns(4);
textVersamento.setEnabled(false);
textVersamento.setBorder(BorderFactory.createEtchedBorder());
panelWest.add(textVersamento);
add(panelWest, BorderLayout.WEST);
bottoni = new ContoCorrenteControl(conto, this);
JPanel panelCenter = new JPanel(new BorderLayout());
panelCenter.add(bottoni);
add(panelCenter, BorderLayout.CENTER);
JPanel panelSouth = new JPanel(new BorderLayout());
textInfo = new JTextArea("");
textInfo.setLineWrap(true);
textInfo.setEditable(false);
textInfo.setBorder(BorderFactory.createEtchedBorder());
panelSouth.add(textInfo);
add(panelSouth, BorderLayout.SOUTH);
updateView();
}
/**
* Aggiorna la vista
*/
public void updateView() {
textInfo.setText(answer);
setName();
}
/**
* Setta l'attributo name dell'oggetto conto corrente vista
*/
public void setName() {
try {
name = ContoCorrente.getNomeCorrentista(this.getTextCC());
} catch (MovimentoErrato me) {
setError(me.getErr());
} catch (RuntimeException re) {}
textName.setText(name);
}
/**
* Visualizza il credito disponibile
*
* @param nome Nome del correntista
*/
public void displaySaldo(String nome) {
try {
answer = "Credito Disponibile: " + ContoCorrente.getSaldo(nome);
} catch (MovimentoErrato me) {
setError(me.getErr());
}
}
/**
* Visualizza il credito disponibile
*
* @param numConto Numero del conto corrente
*/
public void displaySaldo(int numConto) {
try {
answer = "Credito Disponibile: " + ContoCorrente.getSaldo(numConto);
} catch (MovimentoErrato me) {
setError(me.getErr());
}
}
/**
* Setta l'answer dell'oggetto ContoCorrenteView con err
*
* @param err Il nuovo valore dell'error
*/
public void setError(String err) {
answer = err;
}
/**
* Setta a val true/false i JTextField della vista
*
* @param val Editable/Not Editable
*/
public void setFields(boolean val) {
textCC.setEnabled(!val);
textPrelievo.setEnabled(val);
textVersamento.setEnabled(val);
}
/**
* Restituisce il valore di textName dell'oggetto ContoCorrenteView
*
* @return Il valore di textName
*/
public String getTextName() {
return (textName.getText()).trim();
}
/**
* Restituisce il valore di textCC dell'oggetto ContoCorrenteView
*
* @return Il valore di textCC
*/
public int getTextCC() {
return Integer.parseInt((textCC.getText()).trim());
}
/**
* Restituisce il valore di textPrelievo dell'oggetto ContoCorrenteView
*
* @return Il valore di textPrelievo
*/
public int getTextPrelievo() {
return Integer.parseInt((textPrelievo.getText()).trim());
}
/**
* Restituisce il valore di textVersamento dell'oggetto ContoCorrenteView
*
* @return Il valore di textVersamento
*/
public int getTextVersamento() {
return Integer.parseInt((textVersamento.getText()).trim());
}
private ContoCorrente[] conto;
private JLabel labelName;
private JLabel labelCC;
private JTextField textName;
private JTextField textCC;
private JTextField textPrelievo;
private JTextField textVersamento;
private JTextArea textInfo;
private String inputString;
private int inputInt;
private String name;
private String answer;
private ContoCorrenteControl bottoni;
}