Menu

[r66]: / ls / graph / script / GraphScriptEngine.java  Maximize  Restore  History

Download this file

90 lines (77 with data), 2.9 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package ls.graph.script;
import java.awt.Color;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.script.ScriptException;
import ls.graph.ControlListener;
import ls.graph.Controller;
import ls.graph.ui.ScriptableVertexPaintFunction;
import ls.script.ConfigurableScriptEngine;
import ls.script.ScriptUtils;
public class GraphScriptEngine
extends ConfigurableScriptEngine
implements ControlListener
{
public void graphChanged(ScriptableGraph sg)
{
configureScriptEngine(); //refresh the engine configuration
}
private ScriptUIUtils scriptUIUtils = null;
private Controller controller = null;
public GraphScriptEngine(Controller c)
{
super();
this.controller = c;
this.controller.addListener(this);
this.init();
//getScriptEngine(); //make sure it's initalized and configured
//configureScriptEngine();
}
@Override
protected void configureScriptEngine(/*ScriptEngine eng*/)
{
Map<String, Object> bindings = new HashMap<String, Object>();
ScriptableGraph graph = controller.getGraph();
bindings.put(graph.getBindingName(), graph);
List<AlgorithmListener> algListeners =
this.scriptUIUtils == null ?
null : this.scriptUIUtils.getAlgorithmListeners();
this.scriptUIUtils =
new ScriptUIUtils(
graph,
new ScriptableVertexPaintFunction(Color.RED),
new ScriptableVertexStringer());
if (algListeners != null)
for (AlgorithmListener l : algListeners)
this.scriptUIUtils.addAlgorithmListener(l);
bindings.put(scriptUIUtils.getBindingName(), scriptUIUtils);
bindings.put(VertexColors.BLACK.getBindingName(), VertexColors.BLACK);
bindings.put(VertexColors.RED.getBindingName(), VertexColors.RED);
bindings.put(VertexColors.GREY.getBindingName(), VertexColors.GREY);
bindings.put(VertexColors.WHITE.getBindingName(), VertexColors.WHITE);
bindings.put(VertexColors.BLUE.getBindingName(), VertexColors.BLUE);
// Algorithm alg = new Algorithm();
// bindings.put(alg.getBindingName(), alg);
ScriptUtils su = new ScriptUtils();
bindings.put(su.getBindingName(), su);
this.setBindings(bindings);
this.packageImport("edu.uci.ics.jung.graph");
//eng.javaImport("edu.uci.ics.jung.graph.visualization");
this.packageImport("Packages.ls.graph.script"); //For ScriptUIUtils, VertexColors
this.classImport("Packages.ls.graph.script.AlgorithmStep");
this.classImport("Packages.ls.graph.script.Algorithm");
}
public ScriptUIUtils getScriptUIUtils()
{
return scriptUIUtils;
}
public void invokeScriptFunc(String funcName)
throws NoSuchMethodException,ScriptException
{
super.invokeScriptFunc(funcName);
}
public void graphLoaded(File graphFile) {/* NOP */}
public void scriptLoaded(File scriptFile, String scriptText) {/* NOP*/}
} //end of GraphScriptEngine class
MongoDB Logo MongoDB