Skip to content

Commit f10fc98

Browse files
authored
Merge pull request #46 from UCSDOalads/connectCommandWindowAndScriptInterpreter
connect command window and interpreter
2 parents f31943e + 77bf072 commit f10fc98

File tree

2 files changed

+22
-29
lines changed

2 files changed

+22
-29
lines changed

src/script/InterpreterAddLazyJavaClass.java

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import javax.swing.JOptionPane;
44

5+
import actions.AddLazyJavaClassAction;
56
import actions.edit.undoredo.SharedUndoRedoActionManager;
67
import actions.edit.undoredo.UndoRedoableInterface;
78
import paintcomponents.PaintComponent;
@@ -21,32 +22,9 @@ public InterpreterAddLazyJavaClass(Tokenizer tokenizer, PaintPanel panel)
2122
}
2223

2324
private PaintComponent performAddJavaClassAction() {
24-
String className = JOptionPane.showInputDialog("Please specify the name of the Java Class");
25-
try {
26-
Class classObj = Class.forName(className);
27-
ClassPaintComponent comp = new ClassPaintComponent(classObj, panel.getWidth() / 2, panel.getHeight() / 2);
28-
panel.addPaintComponent(comp);
29-
// add action to undo redo manager
30-
SharedUndoRedoActionManager.getSharedInstance().pushUndoableAction(new UndoRedoableInterface() {
31-
32-
@Override
33-
public void undoAction() {
34-
comp.remove(panel);
35-
panel.repaint();
36-
}
37-
38-
@Override
39-
public void redoAction() {
40-
panel.addPaintComponent(comp);
41-
panel.repaint();
42-
}
43-
});
44-
panel.repaint();
45-
return comp;
46-
} catch (ClassNotFoundException e) {
47-
e.printStackTrace();
48-
JOptionPane.showMessageDialog(panel, className + " :: Class Not Found");
49-
return null;
50-
}
25+
26+
AddLazyJavaClassAction action = new AddLazyJavaClassAction(panel);
27+
action.performAction();
28+
return panel.getPaintComponents().get(panel.getPaintComponents().size() -1);
5129
}
5230
}

src/ui/KeyHandler.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,29 @@
33
import java.awt.event.KeyEvent;
44

55
import paintcomponents.TextPaintComponent;
6+
import script.ExecutionErrorException;
7+
import script.Interpreter;
68

79
public class KeyHandler {
810

11+
private static final int VERTICAL_OFFSET = 5;
912
private PaintPanel paintPanel;
1013
private String pendingCommand;
1114
private boolean inCommandMode;
1215
private TextPaintComponent component;
13-
16+
Interpreter interpreter ;
1417
public KeyHandler(PaintPanel paintPanel) {
1518
pendingCommand = "";
1619
this.paintPanel = paintPanel;
20+
21+
//initialize text component
1722
this.component = new TextPaintComponent("", 0, 0);
1823
this.paintPanel.addPaintComponent(this.component);
24+
25+
interpreter = new Interpreter(paintPanel);
26+
27+
28+
//not in command
1929
inCommandMode = false;
2030
}
2131

@@ -55,6 +65,11 @@ public void keyPressed(KeyEvent e) {
5565

5666
private void executeCommand(String pendingCommand2) {
5767

68+
try {
69+
interpreter.interpreteLine(pendingCommand2);
70+
} catch (ExecutionErrorException e) {
71+
e.printStackTrace();
72+
}
5873
}
5974

6075
private void update() {
@@ -67,7 +82,7 @@ private void update() {
6782
int height = paintPanel.getHeight();
6883
int rowHeight = component.getRowHeight();
6984
component.setX(0);
70-
component.setY(height - rowHeight);
85+
component.setY(height - rowHeight - VERTICAL_OFFSET);
7186
paintPanel.repaint();
7287
}
7388

0 commit comments

Comments
 (0)