/home/jfernan6/NetBeansProjects/CSX/src/interpreters/Interpreter1.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 ared dot
 6  * - HELP: show a list of the commands in a dialog message box
 7  * - EXIT; terminate the program
 8  */
 9 package interpreters;
10 
11 import java.awt.Color;
12 import javax.swing.JOptionPane;
13 import javax.swing.SwingUtilities;
14 import painter.SPainter;
15 import shapes.SCircle;
16 
17 /**
18  *
19  * @author jfernan6
20  */
21 public class Interpreter1 {
22 
23     private void interpreter(){
24     
25         //CREATE OBJECTS TO THINK WITH
26         SPainter miro = new SPainter("Dot Thing", 400,400);
27         miro.setScreenLocation(0,0);
28         SCircle dot = new SCircle (180);
29         
30         //REPEATEDLY TAKE A COMMAND FROM AN INPUT DIALOG BOX AND INTERPRET IT
31         while(true){
32             String command = JOptionPane.showInputDialog(null,"Command?");
33          if ( command == null) {command = "exit";} //USER CLICKED ON CANCEL
34          if ( command.equalsIgnoreCase("blue")){
35             miro.setColor(Color.BLUE);
36             miro.paint(dot);
37          } else if (command.equalsIgnoreCase("red")) {
38              miro.setColor(Color.RED);
39              miro.paint(dot);
40          } else if (command.equalsIgnoreCase("help")){
41              JOptionPane.showMessageDialog(null,"Valid commands are: "
42                      + "RED | BLUE | HELP | EXIT");            
43          } else if (command.equalsIgnoreCase("exit")){
44              miro.end();
45              System.out.println("Thank you for viewing the dots ...");
46              break;
47          } else { 
48              JOptionPane.showMessageDialog(null, "Unrecognizable command: " + command.toUpperCase());
49              
50          }
51              
52       }
53            
54         
55         
56         
57         
58   }
59     
60   // INFRASTRUCTURE FOR SOME SOMPLE PAINTING
61     public Interpreter1() {
62         interpreter();
63     }
64     
65     /**
66      * @param args the command line arguments
67      */
68     public static void main(String[] args) {
69         SwingUtilities.invokeLater(new Runnable() {
70             public void run(){
71                 new Interpreter1();
72             }
73         });
74     }
75     
76 }
77