package org.prevayler.demos.demo2.gui;
import org.prevayler.Prevayler;
import org.prevayler.foundation.Cool;
import javax.swing.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class BankFrame extends JFrame {
private static final long serialVersionUID = 936051923275473259L;
private final Prevayler _prevayler;
public BankFrame(Prevayler prevayler) {
super("Bank");
_prevayler = prevayler;
setDefaultCloseOperation(EXIT_ON_CLOSE);
JDesktopPane desktop = new JDesktopPane();
setContentPane(desktop);
new AllAccountsFrame(prevayler, desktop);
desktop.add(new RobustnessFrame());
desktop.add(new MatchFrame(prevayler));
setBounds(40,40,550,420);
setVisible(true);
refreshClock();
}
private void refreshClock() {
Thread clockRefresher = new Thread() {
public void run() {
while (true) {
DateFormat format = new SimpleDateFormat("hh:mm:ss");
setTitle("Bank - " + format.format(_prevayler.clock().time()));
Cool.sleep(500);
}
}
};
clockRefresher.setDaemon(true);
clockRefresher.start();
}
private static class RobustnessFrame extends JInternalFrame {
private static final long serialVersionUID = -3548833894524605027L;
RobustnessFrame() {
super("Robustness Reminder", false, false, false, true);
setContentPane(Box.createVerticalBox());
addLine(" You can kill this process at any time. ");
addLine(" When you run the application again, ");
addLine(" you will see that nothing was lost. ");
setBackground(new java.awt.Color(204,204,204));
setBounds(300,300,235,90);
setVisible(true);
}
private void addLine(String line) {
JLabel label = new JLabel(line);
label.setAlignmentX(0.5f);
getContentPane().add(label);
}
}
}