/home/jfernan6/NetBeansProjects/CSX/src/interpreters/Interpreter2.java
 1 /*
 2  * This interpreter is intended to paint different colored dots in a window.
 3  * The commands that the interpreter can recognize and respond to are:
 4  * - BLUE: paint a blue dot
 5  * - RED: paint a red dot
 6  * - GREEN: paint a green dot
 7  * - YELLOW: paint a yellow dot
 8  * - HELP: show a list of the commands in a dialog message box
 9  * - EXIT; terminate the program
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 jfernan6
22  */
23 public class Interpreter2 {
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("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: " + command.toUpperCase());
57              
58          }
59              
60       }
61            
62         
63         
64         
65         
66   }
67     
68   // INFRASTRUCTURE FOR SOME SOMPLE PAINTING
69     public Interpreter2() {
70         interpreter();
71     }
72     
73     /**
74      * @param args the command line arguments
75      */
76     public static void main(String[] args) {
77         SwingUtilities.invokeLater(new Runnable() {
78             public void run(){
79                 new Interpreter2();
80             }
81         });
82     }
83     
84 }
85