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