1 30 package com.genimen.djeneric.tools.scriptengine.core.nodes; 31 32 import java.util.ArrayList ; 33 34 import com.genimen.djeneric.tools.scriptengine.core.DjScriptParserEngine; 35 import com.genimen.djeneric.tools.scriptengine.core.EditorEventDefinition; 36 import com.genimen.djeneric.tools.scriptengine.core.ScriptRunnerContainer; 37 import com.genimen.djeneric.tools.scriptengine.core.SimpleNode; 38 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptCompileTimeScope; 39 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptExecutionException; 40 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptExecutionTimeScope; 41 42 public class DispatchNode extends SimpleNode 43 { 44 String _customDispatcherClass = null; 45 46 public DispatchNode(int i) 47 { 48 super(i); 49 } 50 51 public DispatchNode(DjScriptParserEngine p, int i) 52 { 53 super(p, i); 54 } 55 56 public String getName() 57 { 58 return "dispatch"; 59 } 60 61 public String toString() 62 { 63 return getName(); 64 } 65 66 public void execute(DjScriptExecutionTimeScope context) throws DjScriptExecutionException 67 { 68 EventDefinitionNode events[] = (EventDefinitionNode[]) getChildren(EventDefinitionNode.class) 69 .toArray(new EventDefinitionNode[0]); 70 71 EditorEventDefinition[] eventDefs = new EditorEventDefinition[events.length]; 72 for (int i = 0; i < eventDefs.length; i++) 73 { 74 eventDefs[i] = new EditorEventDefinition(events[i].getEventName(), events[i].getEventTitle(), events[i] 75 .getOption()); 76 } 77 78 ScriptRunnerContainer container = context.getContainer(); 79 80 ActionNode actionNode = (ActionNode) getParent(ActionNode.class); 81 String title = actionNode.getTitle(); 82 if (title == null) title = actionNode.getActionName(); 83 84 container.dispatch(getCustomDispatcherClass(), eventDefs, title, actionNode.getActionName()); 85 } 86 87 public String getCustomDispatcherClass() 88 { 89 return _customDispatcherClass; 90 } 91 92 public void setCustomDispatcherClass(String string) 93 { 94 _customDispatcherClass = string; 95 } 96 97 public void collectEvents(DjScriptCompileTimeScope ctxt, ArrayList ev) throws DjScriptExecutionException 98 { 99 doCollectEvents(ctxt, ev); 100 } 101 102 } | Popular Tags |