001 /*
002 * Whiteboard.java
003 * Part of the Scribble problem set.
004 *
005 * Developed for "Rethinking CS101", a project of Lynn Andrea Stein's AP Group.
006 * For more information, see http://www.ai.mit.edu/projects/cs101, the
007 * CS101 homepage or email las@ai.mit.edu.
008 *
009 * Copyright (C) 1998 Massachusetts Institute of Technology.
010 * Please do not redistribute without obtaining permission.
011 */
012
013 package scribble;
014
015 import java.awt.event.*;
016 import java.awt.*;
017
018 /**
019 * Whiteboard is the base Frame object. It sets up the color selector
020 * and clear button, but does not connect them to it's SmartCanvas.
021 *
022 * <P>Copyright (c) 1998 Massachusetts Institute of Technology
023 *
024 * @author Lynn Andrea Stein, las@ai.mit.edu
025 * @author Todd C. Parnell, tparnell@ai.mit.edu
026 * @version $Id: Whiteboard.java,v 1.1.1.1 2002/06/05 21:56:35 root Exp $
027 *
028 * @see SmartCanvas
029 */
030 public class Whiteboard extends Frame {
031 /** the Canvas users draw on */
032 protected SmartCanvas drawingArea;
033 protected Button clearButton;
034 /** drop down color list */
035 protected Choice colorChoice;
036
037 /** Constructs a Whiteboard with a new SmartCanvas. */
038 public Whiteboard() {
039 this(new SmartCanvas());
040 }
041
042 /**
043 * Constructs a Whiteboard with the given SmartCanvas. Sets up the
044 * color selector and clear buttons.
045 */
046 public Whiteboard(SmartCanvas drawingArea) {
047 this.drawingArea = drawingArea;
048 this.clearButton = new Button ("Clear");
049
050 this.colorChoice = new Choice ();
051 this.colorChoice.addItem("Black");
052 this.colorChoice.addItem("Red");
053 this.colorChoice.addItem("Green");
054 this.colorChoice.addItem("Blue");
055 this.colorChoice.addItem("Yellow");
056 this.colorChoice.addItem("Cyan");
057 this.colorChoice.addItem("Magenta");
058 this.colorChoice.addItem("White");
059 this.colorChoice.addItem("Orange");
060 this.colorChoice.addItem("Pink");
061
062 this.colorChoice.select("Black");
063
064 this.setTitle("CS101 Scribbler");
065
066 this.setLayout(new BorderLayout(10, 10));
067
068 // all control widgets go in buttonArea (to simplify layout)
069 Panel buttonArea = new Panel();
070 buttonArea.setLayout(new FlowLayout());
071 buttonArea.add(this.colorChoice);
072 buttonArea.add(this.clearButton);
073
074 this.add("North", buttonArea);
075 this.add("Center", this.drawingArea);
076
077 this.addWindowListener(new WindowAdapter() {
078 public void windowClosing(WindowEvent we) {
079 Whiteboard.this.setVisible(false);
080 Whiteboard.this.dispose();
081 System.exit(0);
082 }
083 });
084
085 this.pack();
086 this.show();
087 }
088 }
089
090 /*
091 * $Log: Whiteboard.java,v $
092 * Revision 1.1.1.1 2002/06/05 21:56:35 root
093 * CS101 comes to Olin finally.
094 *
095 * Revision 1.1 2000/05/06 22:30:58 mharder
096 * Moved to scribble subdirectory.
097 *
098 * Revision 1.5 1998/07/24 16:44:53 tparnell
099 * Placate new javadoc behavior
100 *
101 * Revision 1.4 1998/07/21 19:05:50 tparnell
102 * added more javadoc
103 *
104 * Revision 1.3 1998/07/21 14:09:04 tparnell
105 * minor bugfixes necessary b/c 1.2 complier is more picky
106 *
107 * Revision 1.2 1998/07/20 18:55:33 tparnell
108 * Added javadoc and logging. Minor code mods for greater consistency
109 * between files.
110 *
111 */
112
113
114
115
116
117
118
119