Listing 3. Main Program

/** EXTRACTS FROM JabberPoint Main Program */
public class JPMain {
   /** The Frame for the View */
   Frame frame;
   /** The model */
   static JPModel model;
   /** The view */
   static View view;
   /** The Real Main Program */
   public static void main(String av[]) {
      JPMain jp = new JPMain();
      // if (argv.length == 0)
         // run a demo program
         jp.doDemo();
      // else read and parse a slideshow file
      // Start view at first page
      jp.model.setPage(0);
   }
   /** Construct a JPMain Program */
   JPMain() {
      model = new JPModel();         // model,
      view = new View();
      model.addObserver(view);      // view,
      frame = new Frame("JabberPoint 0.0");// GUI
        frame.addWindowListener(
            new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
         }
      });
      frame.add(view);
      frame.pack();
      frame.setVisible(true);
      frame.addKeyListener(new
         KeyController(model)); // and controller
      // construct other stuff like Styles here.
   }
   /** Run a demo for testing */
   public void doDemo() {
      Slide s = new Slide();
      model.append(s);
      s.append(0,
        "JabberPoint Slide Styles Demonstration");
      s.append(1, "Main Point");
      s.append(2, "Sub Point");
      s.append(1, "A Far Point");
      s.append(1, "A Powerful Point");
      s.append(1, "A Jabberful Point");
      s.append(2, "Sub Point");
      s.append(3, "SubSub Point");
      s.append(4, "SubSubSub Point");
      // Page 2
      s = new Slide();
      model.append(s);
      s.append(0, "Slide The Second");
      s.append(1, "Main Point of Slide 2");
   }
}