/home/btamang/NetBeansProjects/cs1/src/interpreters/Interpreter1.java
 1 /*
 2  * This interpreter is intended to paint different coloured dots 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 * - 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 javax.swing.JOptionPane;
14 import javax.swing.SwingUtilities;
15 import painter.SPainter;
16 import shapes.SCircle;
17 
18 /**
19  *
20  * @author btamang
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) {
35                 command = "exit";
36             } // user clicked on cancel
37             if (command.equalsIgnoreCase("blue")) {
38                 miro.setColor(Color.BLUE);
39                 miro.paint(dot);
40             } else if (command.equalsIgnoreCase("red")) {
41                 miro.setColor(Color.RED);
42                 miro.paint(dot);
43             } else if (command.equalsIgnoreCase("help")) {
44                 JOptionPane.showMessageDialog(null, "Valid commands are: " + "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, "Unrecognizable command:" + command.toUpperCase());
51             }
52         }
53     }
54 
55     // INFRASTRUCTURE FOR SOME SIMPLE PAINTING
56     public Interpreter1() {
57         interpreter ();
58 
59     }
60 
61     /**
62      * @param args the command line arguments
63      */
64     public static void main(String[] args) {
65         SwingUtilities.invokeLater(new Runnable() {
66             public void run() {
67                 new Interpreter1();
68             }
69         });
70     }
71 }