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