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