/home/sjenks/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 interporeter can recognize and respond to are:
 5  * - BLUE: paint a blue dot
 6  * - RED: paint a red dot
 7  * - HELP: show a list of the commands in a dialog message box
 8  * - EXIT: terminate the program
 9  */
10 package interpreters;
11 
12 import java.awt.Color;
13 import static javafx.scene.input.KeyCode.O;
14 import javax.swing.JOptionPane;
15 import javax.swing.SwingUtilities;
16 import painter.SPainter;
17 import shapes.SCircle;
18 
19 /**
20  *
21  * @author sjenks
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 TAK A COMMAND FROM AN INPUT DIALOG BOX AND TNTERPRET IT
33         while (true) {
34             String command = JOptionPane.showInputDialog(null, "Command?");
35             if (command == null) {
36                 command = "exit";
37             } //user clicked on Cancel
38             if (command.equalsIgnoreCase("blue")) {
39                 miro.setColor(Color.BLUE);
40                 miro.paint(dot);
41             } else if ( command.equalsIgnoreCase("red")) {
42                 miro.setColor(Color.RED);
43                 miro.paint(dot);
44             } else if (command.equalsIgnoreCase("help")) {
45                 JOptionPane.showMessageDialog(null, "Valid commands are: "
46                         + "RED | BLUE | HELP | EXIT ");
47             } else if (command.equalsIgnoreCase("exit")) {
48                 miro.end();
49                 System.out.println("Thank you for viewing the dots ...");
50                 break;
51             } else {
52                 JOptionPane.showMessageDialog(null, "Unrecognizable command: "
53                         + command.toUpperCase());
54             }
55         }
56     }
57 
58 //INFRASTRUCTURE FOR SOME SIMPLE PAINTING
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