Home | History | Annotate | Download | only in impl
      1 /*
      2  *******************************************************************************
      3  * Copyright (C) 1997-2010, International Business Machines Corporation and    *
      4  * others. All Rights Reserved.                                                *
      5  *******************************************************************************
      6  */
      7 
      8 package com.ibm.icu.dev.demo.impl;
      9 
     10 import java.awt.Button;
     11 import java.awt.Color;
     12 import java.awt.Dimension;
     13 import java.awt.Frame;
     14 import java.awt.event.ActionEvent;
     15 import java.awt.event.ActionListener;
     16 
     17 public abstract class DemoApplet extends java.applet.Applet {
     18     private static final long serialVersionUID = -8983602961925702071L;
     19     private Button   demoButton;
     20     private Frame    demoFrame;
     21     private static int demoFrameCount = 0;
     22 
     23     protected abstract Frame createDemoFrame(DemoApplet applet);
     24     protected Dimension getDefaultFrameSize(DemoApplet applet, Frame f) {
     25         return new Dimension(700, 550);
     26     }
     27 
     28     //Create a button that will display the demo
     29     public void init()
     30     {
     31         setBackground(Color.white);
     32         demoButton = new Button("Demo");
     33         demoButton.setBackground(Color.yellow);
     34         add( demoButton );
     35 
     36         demoButton.addActionListener( new ActionListener() {
     37              public void actionPerformed(ActionEvent e) {
     38                 if (e.getID() == ActionEvent.ACTION_PERFORMED) {
     39                     demoButton.setLabel("loading");
     40 
     41                     if (demoFrame == null) {
     42                        demoFrame = createDemoFrame(DemoApplet.this);
     43                        showDemo();
     44                     }
     45 
     46                     demoButton.setLabel("Demo");
     47                 }
     48              }
     49         } );
     50     }
     51 
     52     public void showDemo()
     53     {
     54         demoFrame = createDemoFrame(this);
     55         demoFrame.doLayout();
     56         Dimension d = getDefaultFrameSize(this, demoFrame);
     57         demoFrame.setSize(d.width, d.height);
     58         demoFrame.show();
     59         demoFrameOpened();
     60     }
     61 
     62     public void demoClosed()
     63     {
     64         demoFrame = null;
     65         demoFrameClosed();
     66     }
     67 
     68     public static void demoFrameOpened() {
     69         demoFrameCount++;
     70         System.err.println("DemoFrameOpened, now at:"+demoFrameCount);
     71     }
     72     public static void demoFrameClosed() {
     73         if (--demoFrameCount == 0) {
     74             System.err.println("DemoFrameClosed, now at:"+demoFrameCount + " - quitting");
     75             System.exit(0);
     76         }
     77         System.err.println("DemoFrameClosed, now at:"+demoFrameCount);
     78     }
     79 }
     80 
     81