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