/*
* @(#)DemoFrame.java 1.5 06/10/10
*
* Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*/
package basis;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class DemoFrame extends Frame {
protected static final int DEFAULT_WIDTH = 240;
protected static final int DEFAULT_HEIGHT = 320;
protected static String className = "basis.DemoFrame";
protected static String title = "J2ME Basis";
protected static ArrayList demos = new ArrayList();
protected static Dimension size;
protected Builder builder;
static {
demos.add("basis.demos.GraphicsDemo");
demos.add("basis.demos.FontDemo");
demos.add("basis.demos.EventDemo");
demos.add("basis.demos.MiscDemo");
demos.add("basis.demos.GameDemo");
}
public static void main(String[] args) throws Exception {
parse(args);
Frame frame = new DemoFrame(demos, size);
frame.setVisible(true);
}
protected static void parse(String[] args) {
int width = DEFAULT_WIDTH;
int height = DEFAULT_HEIGHT;
if (args.length > 0) {
for (int i = 0; i < args.length; i++) {
if (args[i].equals("-d")) {
demos = new ArrayList();
demos.add(args[++i]);
continue;
}
if (args[i].equals("-w")) {
try {
width = Integer.parseInt(args[++i]);
} catch (NumberFormatException nfe) {
usage();
System.out.println("Invalid width: " + args[i]);
System.out.println("");
System.exit(1);
}
continue;
}
if (args[i].equals("-h")) {
try {
height = Integer.parseInt(args[++i]);
} catch (NumberFormatException nfe) {
usage();
System.out.println("Invalid height: " + args[i]);
System.out.println("");
System.exit(1);
}
continue;
}
usage();
System.exit(1);
}
}
size = new Dimension(width, height);
}
protected static void usage() {
System.out.println("");
System.out.println("USAGE:");
System.out.println(" cvm " + className + " [-d demo] [-w width] [-h height]");
System.out.println("");
System.out.println("WHERE:");
System.out.println(" demo = Full package name of specific demo");
System.out.println(" width = Width of demo in pixels");
System.out.println(" height = Height of demo in pixels");
System.out.println("");
}
public DemoFrame(ArrayList demos, Dimension size) throws Exception {
builder = new Builder(demos);
builder.build(this);
pack();
setSize(size);
Toolkit toolkit = getToolkit();
Dimension screen = toolkit.getScreenSize();
setLocation((screen.width - size.width) / 2, (screen.height - size.height) / 3);
setTitle(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
}
}