/home/ffrigin/NetBeansProjects/CS1/src/interpreters/Interpreter1.java
 1 /*
 2  * This interpreter is intended to paint different colored dots in a window.
 3 
 4  * The commands that the interpreter can recongnize and respond to are:
 5  * - BLUE: paint a blue dot
 6  * - RED: paint a red dot
 7  * - HELP: show a list of commands in the dialog message box
 8  * - EXIT: terminate the program
 9  */
10 package interpreters;
11 
12 import java.awt.Color;
13 import javax.swing.JOptionPane;
14 import javax.swing.SwingUtilities;
15 import painter.SPainter;
16 import shapes.SCircle;
17 
18 /**
19  *
20  * @author ffrigin
21  */
22 public class Interpreter1 {
23 
24     private void interpreter(){
25         
26         // CREATE OBJECTS TO THINK WITH
27         SPainter miro = new SPainter("Dot Thing", 400,400);
28         miro.setScreenLocation(0,0);
29         SCircle dot = new SCircle(180);
30         
31         // REPEATEDLY TAKE A COMMAND FROM AN INPUT DIALOG BOX AND INTERPRET IT
32         while ( true ) {
33             String command = JOptionPane.showInputDialog(null,"Command?");
34             if ( command == null) { command = "exit"; } // user clicked on cancel
35             if ( command.equalsIgnoreCase("blue") ) {
36                 miro.setColor(Color.BLUE);
37                 miro.paint(dot);
38             } else if ( command.equalsIgnoreCase("red")) {
39                 miro.setColor(Color.RED);
40                 miro.paint(dot);
41             } else if ( command.equalsIgnoreCase("help") ) {
42                 JOptionPane.showMessageDialog(null,"Valid commands are: "
43                         + "RED | BLUE | HELP | EXIT ");
44             } else if ( command.equalsIgnoreCase("exit") ) {
45                 miro.end();
46                 System.out.println("Thank you for viewing the dots ...");
47                 break;
48             } else {
49                 JOptionPane.showMessageDialog(null, "Unrecognizable command: "
50                         + command.toUpperCase());
51             }
52         }
53     }
54     
55     // INFRASTRUCTURE FOR SOME SIMPLE PAINTING 
56     
57     public Interpreter1() {
58         interpreter();
59     }
60     
61     public static void main(String[] args) {
62         SwingUtilities.invokeLater(new Runnable() {
63             public void run() {
64                 new Interpreter1();
65         }
66     });
67   }
68     
69 }
70