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