/home/jfernan6/NetBeansProjects/CSX/src/interpreters/Interpreter3.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  * - RANDOM: paint a dot of a random color
 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 jfernan6
23  */
24 public class Interpreter3 {
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 == null) {command = "exit";} //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("green")){
44                  miro.setColor(Color.GREEN);
45                  miro.paint(dot);
46           } else if (command.equalsIgnoreCase("yellow")){
47                  miro.setColor(Color.YELLOW);
48                  miro.paint(dot);
49           } else if (command.equalsIgnoreCase("RANDOM")){
50               miro.setColor(randomColor());
51               miro.paint(dot);
52           } else if (command.equalsIgnoreCase("help")){
53              JOptionPane.showMessageDialog(null,"Valid commands are: "
54                      + "RED | BLUE | GREEN | YELLOW | RANDOM | HELP | EXIT");            
55          } else if (command.equalsIgnoreCase("exit")){
56              miro.end();
57              System.out.println("Thank you for viewing the dots ...");
58              break;
59          } else { 
60              JOptionPane.showMessageDialog(null, "Unrecognizable command: " + command.toUpperCase());
61              
62          }
63              
64       }
65            
66         
67         
68         
69         
70   }
71     
72   // INFRASTRUCTURE FOR SOME SOMPLE PAINTING
73     public Interpreter3() {
74         interpreter();
75     }
76     
77     /**
78      * @param args the command line arguments
79      */
80     public static void main(String[] args) {
81         SwingUtilities.invokeLater(new Runnable() {
82             public void run(){
83                 new Interpreter3();
84             }
85         });
86     }
87 
88     private static Color randomColor() {
89         int rv = (int) (Math.random()*256);
90         int gv = (int) (Math.random()*256);
91         int bv = (int) (Math.random()*256);
92         return new Color(rv,gv,bv);   
93    }
94     }
95     
96 
97