/home/akc/NetBeansProjects/CS1/src/interpreters/Interpreter1.java
 1 /*
 2  * This interpreter is intended to paint different clored 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 akc
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: "
43                 +"RED | BLUE | HELP | EXIT");
44             }else if(command.equalsIgnoreCase("exit")) {
45              miro.end();
46              System.out.println("Thank you for viewing the dots ...");
47              break;
48             }else{
49                 JOptionPane.showMessageDialog(null, "Unrecognizable command: "
50                         +command.toUpperCase());
51             }
52         }
53     }
54     
55     // INFASTRUCTURE FOR SOME SIMPLE PAINTING
56     
57     public Interpreter1() {
58         interpreter();
59     }
60     
61     public static void main(String[] args) {
62         SwingUtilities.invokeLater(new Runnable() {
63             public void run() {
64                 new Interpreter1();
65             }
66         });
67     }
68 }
69