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