/home/mbilodea/NetBeansProjects/CS1/src/interpreters/Interpreter1.java
 1 /*
 2  * This interpreter is intended 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 list of commands in the 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 mbilodea
21  */
22 public class Interpreter1 {
23     
24     private void interpreter() {
25         
26         // CREATE OBJECTS TO THINK WITH
27         SPainter micro = new SPainter("Dot Thing",400,400);
28         micro.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                 micro.setColor(Color.BLUE);
37                 micro.paint(dot);
38             } else if ( command.equalsIgnoreCase("red") ) {
39                 micro.setColor(Color.RED);
40                 micro.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                 micro.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     // INFRASTRUCTURE 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 }
70