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