/home/sjenks/NetBeansProjects/CS1/src/interpreters/Interpreter3.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  * - YELLOW: paint a yellow dot
 8  * - GREEN: paint a green dot
 9  * - RANDOM: paint a random dot
10  * - HELP: show a list of the commands in a dialog message box
11  * - EXIT: terminate the program
12  */
13 package interpreters;
14 
15 import java.awt.Color;
16 import static javafx.scene.input.KeyCode.O;
17 import javax.swing.JOptionPane;
18 import javax.swing.SwingUtilities;
19 import painter.SPainter;
20 import shapes.SCircle;
21 
22 /**
23  *
24  * @author sjenks
25  */
26 public class Interpreter3 {
27 
28     private void interpreter() {
29 
30         //CREATE OBJECTS TO THINK WITH
31         SPainter miro = new SPainter("Dot Thing", 400, 400);
32         miro.setScreenLocation(0, 0);
33         SCircle dot = new SCircle(180);
34 
35         //REPEATEDLY TAK A COMMAND FROM AN INPUT DIALOG BOX AND TNTERPRET IT
36         while (true) {
37             String command = JOptionPane.showInputDialog(null, "Command?");
38             if (command == null) {
39                 command = "exit";
40             } //user clicked on Cancel
41             if (command.equalsIgnoreCase("blue")) {
42                 miro.setColor(Color.BLUE);
43                 miro.paint(dot);
44             } else if ( command.equalsIgnoreCase("red")) {
45                 miro.setColor(Color.RED);
46                 miro.paint(dot);
47             } else if ( command.equalsIgnoreCase("green")) {
48                 miro.setColor(Color.GREEN);
49                 miro.paint(dot);
50             } else if ( command.equalsIgnoreCase("yellow")) {
51                 miro.setColor(Color.YELLOW);
52                 miro.paint(dot);
53             } else if ( command.equalsIgnoreCase("random")) {
54                 miro.setColor(randomColor());
55                 miro.paint(dot);
56             } else if (command.equalsIgnoreCase("help")) {
57                 JOptionPane.showMessageDialog(null, "Valid commands are: "
58                         + "RED | BLUE | GREEN | YELLOW | RANDOM | HELP | EXIT ");
59             } else if (command.equalsIgnoreCase("exit")) {
60                 miro.end();
61                 System.out.println("Thank you for viewing the dots ...");
62                 break;
63             } else {
64                 JOptionPane.showMessageDialog(null, "Unrecognizable command: "
65                         + command.toUpperCase());
66             }
67         }
68     }
69 
70 //INFRASTRUCTURE FOR SOME SIMPLE PAINTING
71     public Interpreter3() {
72         interpreter();
73     }
74 
75     public static void main(String[] args) {
76         SwingUtilities.invokeLater(new Runnable() {
77             public void run() {
78                 new Interpreter3();
79 
80             }
81         });
82     }
83 
84     private Color randomColor() {
85         int rv = (int) (Math.random()*256);
86         int gv = (int) (Math.random()*256);
87         int bv = (int) (Math.random()*256);
88         return new Color (rv,gv,bv); 
89     }
90 }
91 
92