1 | package org.expeditee.actions;
|
---|
2 |
|
---|
3 | import java.awt.Color;
|
---|
4 | import java.io.BufferedReader;
|
---|
5 | import java.io.InputStreamReader;
|
---|
6 |
|
---|
7 | import org.expeditee.agents.WriteTree;
|
---|
8 | import org.expeditee.gui.DisplayIO;
|
---|
9 | import org.expeditee.gui.Frame;
|
---|
10 | import org.expeditee.gui.MessageBay;
|
---|
11 |
|
---|
12 | public class IDE {
|
---|
13 | public static void CompileClass() {
|
---|
14 | Frame source = DisplayIO.getCurrentFrame();
|
---|
15 | String title = source.getTitleItem().getText();
|
---|
16 | String[] tokens = title.split("\\s+");
|
---|
17 | String className = tokens[tokens.length - 1];
|
---|
18 | String fileName = "expeditee/src/" + className + ".java";
|
---|
19 | WriteTree wt = new WriteTree("java", fileName);
|
---|
20 | if (wt.initialise(source, null)) {
|
---|
21 | wt.run();
|
---|
22 | try {
|
---|
23 | Runtime.getRuntime().exec("javac -d expeditee/bin " + fileName);
|
---|
24 | MessageBay.displayMessage("Compiled " + fileName, Color.darkGray);
|
---|
25 | } catch (Exception e) {
|
---|
26 | MessageBay.errorMessage("Could not compile class!");
|
---|
27 | }
|
---|
28 | } else {
|
---|
29 | MessageBay.errorMessage("Could not initialise agent!");
|
---|
30 | }
|
---|
31 | }
|
---|
32 |
|
---|
33 | public static String getClassName(Frame source) {
|
---|
34 | return source.getTitleItem().getText().trim();
|
---|
35 | //String title = source.getTitle().getTextNoList();
|
---|
36 | //String[] tokens = title.split(" ");
|
---|
37 | //return tokens[tokens.length - 1];
|
---|
38 | }
|
---|
39 |
|
---|
40 | public static void RunClass() {
|
---|
41 | Frame source = DisplayIO.getCurrentFrame();
|
---|
42 | String className = getClassName(source);
|
---|
43 | try {
|
---|
44 | Process p = Runtime.getRuntime().exec("java -cp expeditee/bin " + className);
|
---|
45 | BufferedReader stdInput = new BufferedReader(new InputStreamReader(
|
---|
46 | p.getInputStream()));
|
---|
47 | BufferedReader stdError = new BufferedReader(new InputStreamReader(
|
---|
48 | p.getErrorStream()));
|
---|
49 | String message = "";
|
---|
50 | while ((message = stdInput.readLine()) != null) {
|
---|
51 | MessageBay.displayMessage(message);
|
---|
52 | }
|
---|
53 | while ((message = stdError.readLine()) != null) {
|
---|
54 | MessageBay.errorMessage(message);
|
---|
55 | }
|
---|
56 | } catch (Exception e) {
|
---|
57 | MessageBay.errorMessage("Could not run class!");
|
---|
58 | }
|
---|
59 | }
|
---|
60 |
|
---|
61 | public static void CompileAndRunClass() {
|
---|
62 | CompileClass();
|
---|
63 | RunClass();
|
---|
64 | }
|
---|
65 | }
|
---|