package org.prevayler.demos.demo2.gui;
import java.awt.Container;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.prevayler.Prevayler;
import org.prevayler.demos.demo2.business.Account;
import org.prevayler.demos.demo2.business.transactions.Transfer;
class TransferFrame extends AccountFrame {
private static final long serialVersionUID=-3037927508242313124L;
private final Account account;
private JTextField sourceField;
private JTextField destinationField;
private JTextField amountField;
TransferFrame( Account account, Prevayler prevayler, Container container){
super("Transfer",prevayler,container);
this.account=account;
sourceField.setText(account.numberString());
setBounds(50,50,200,194);
}
protected void addFields( Box fieldBox){
fieldBox.add(labelContainer("From Account"));
sourceField=new JTextField();
sourceField.setEnabled(false);
fieldBox.add(sourceField);
fieldBox.add(gap());
fieldBox.add(labelContainer("To Account"));
destinationField=new JTextField();
fieldBox.add(destinationField);
fieldBox.add(gap());
fieldBox.add(labelContainer("Amount"));
amountField=new JTextField();
fieldBox.add(amountField);
}
protected void addButtons( JPanel buttonPanel){
buttonPanel.add(new JButton(new OKAction()));
}
private class OKAction extends RobustAction {
private static final long serialVersionUID=7431901563750307402L;
OKAction(){
super("OK");
}
public void action() throws Exception {
long destinationNumber=parse(destinationField.getText());
long amount=parse(amountField.getText());
_prevayler.execute(new Transfer(account.number(),destinationNumber,amount));
dispose();
}
}
}