/home/rkanin/NetBeansProjects/CS1/src/interpreters/Interpreter1.java
 1 /*
 2  * This interpreter is intented to paint different colored 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 liste of 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 rkanin
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 ) { command = "exit"; } // user clicked on Cancel
35        if ( command.equalsIgnoreCase("blue")) {
36            miro.setColor(Color.BLUE);
37            miro.paint(dot);
38        } else if ( command.equalsIgnoreCase("red")) {
39            miro.setColor(Color.RED);
40            miro.paint(dot);
41        } else if ( command.equalsIgnoreCase("help")) {
42            JOptionPane.showMessageDialog(null,"Valid commands are: " + "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     // INFRASTRUCTURE FOR SOME SIMPLE PAINTING
55     
56     public Interpreter1() { 
57         interpreter();
58     }
59  
60     public static void main(String[] args) {
61         SwingUtilities.invokeLater(new Runnable() {
62             public void run() {
63                 new Interpreter1();
64             }
65         });
66         
67     }
68     
69 }
70