Print

Print


Commit in lcsim/src/org/lcsim/plugin on MAIN
LCSim.java+37added 1.1
LCSimPlugin.java+13-91.5 -> 1.6
+50-9
1 added + 1 modified, total 2 files
Utilities for accessing events from script console

lcsim/src/org/lcsim/plugin
LCSim.java added at 1.1
diff -N LCSim.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ LCSim.java	21 Mar 2006 19:47:27 -0000	1.1
@@ -0,0 +1,37 @@
+package org.lcsim.plugin;
+
+import org.freehep.record.loop.SequentialRecordLoop;
+import org.freehep.util.FreeHEPLookup;
+import org.lcsim.event.EventHeader;
+
+/**
+ * The methods in this class are made available to scripts via the <code>lcsim</code>
+ * variable.
+ * @author tonyj
+ */
+public class LCSim
+{
+   private final FreeHEPLookup lookup;
+   /** Creates a new instance of LCSim */
+   LCSim(FreeHEPLookup lookup)
+   {
+      this.lookup = lookup;
+   }
+   /**
+    * Get the current event.
+    * @return The event, or <code>null</code> if event not available
+    */
+   public EventHeader getCurrentEvent()
+   {
+      try
+      {
+         SequentialRecordLoop loop = (SequentialRecordLoop) lookup.lookup(SequentialRecordLoop.class); 
+         Object event = loop.getRecordSource().getCurrentRecord();
+         return (event instanceof EventHeader) ? (EventHeader) event : null;
+      }
+      catch (Exception x)
+      {
+         return null;
+      }
+   }
+}

lcsim/src/org/lcsim/plugin
LCSimPlugin.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- LCSimPlugin.java	22 Sep 2005 22:03:07 -0000	1.5
+++ LCSimPlugin.java	21 Mar 2006 19:47:27 -0000	1.6
@@ -12,9 +12,10 @@
 import org.freehep.jas.event.ClassLoadEvent;
 import org.freehep.jas.event.ClassLoadedEvent;
 import org.freehep.jas.event.ClassUnloadEvent;
+import org.freehep.jas.event.ScriptEvent;
+import org.freehep.jas.services.ScriptEngine;
 import org.freehep.jas.services.WebBrowser;
 import org.freehep.record.loop.SequentialRecordLoop;
-import org.freehep.util.commanddispatcher.BooleanCommandState;
 import org.freehep.util.commanddispatcher.CommandProcessor;
 import org.freehep.util.template.Template;
 import org.freehep.xml.menus.XMLMenuBuilder;
@@ -28,7 +29,7 @@
 /**
  *
  * @author tonyj
- * @version $Id: LCSimPlugin.java,v 1.5 2005/09/22 22:03:07 jeremy Exp $
+ * @version $Id: LCSimPlugin.java,v 1.6 2006/03/21 19:47:27 tonyj Exp $
  */
 
 public class LCSimPlugin extends Plugin implements StudioListener, PageListener
@@ -36,6 +37,7 @@
     protected void init() throws SAXException, IOException
     {        
         Studio app = getApplication();
+        lcsim = new LCSim(app.getLookup());
         
         XMLMenuBuilder builder = app.getXMLMenuBuilder();
         URL xml = getClass().getResource("LCSim.menus");
@@ -46,9 +48,11 @@
         
         // Listen for any drivers to be loaded
         app.getEventSender().addEventListener(this,ClassLoadEvent.class);
+        // Register to receive scriptEvents
+        app.getEventSender().addEventListener(this, ScriptEvent.class);
         
         // Register the command processsor
-        app.getCommandTargetManager().add(commands = new LCSimCommands());
+        app.getCommandTargetManager().add(new LCSimCommands());
         
         LCSimEventBrowser.registerTableModels(app.getLookup());
         
@@ -79,7 +83,6 @@
             Class x = ((ClassLoadedEvent) event).getLoadedClass();
             try
             {
-                System.out.println("Loaded"+x+" "+Driver.class.isAssignableFrom(x));
                 if (Driver.class.isAssignableFrom(x))
                 {
                     Driver driver = (Driver) x.newInstance();
@@ -117,13 +120,17 @@
         {
             // Record loop takes care of this
         }
+        else if (event instanceof  ScriptEvent)
+        {
+            ScriptEngine engine = ((ScriptEvent) event).getScriptEngine();
+            engine.registerVariable("lcsim", lcsim);
+        }
     }
     public void pageChanged(PageEvent e)
     {
         PageContext page = (PageContext) e.getSource();        
         if (e.getID() == e.PAGESELECTED)
         {
-            //            if (page == eventBrowser)
             if ( page.getPage() instanceof LCSimEventBrowser )
             {
                 getApplication().getCommandTargetManager().add(((LCSimEventBrowser) page.getPage()).getCommands());
@@ -131,7 +138,6 @@
         }
         else if (e.getID() == e.PAGEDESELECTED)
         {
-            //if (page == eventBrowser)
             if ( page.getPage() instanceof LCSimEventBrowser )
             {
                 getApplication().getCommandTargetManager().remove(((LCSimEventBrowser) page.getPage()).getCommands());
@@ -139,7 +145,7 @@
         }
     }
     
-    private LCSimCommands commands;
+    private LCSim lcsim;
     
     class LCSimCommands extends CommandProcessor
     {
@@ -147,8 +153,6 @@
         {
             SequentialRecordLoop loop = (SequentialRecordLoop) getApplication().getLookup().lookup(SequentialRecordLoop.class);
             LCSimEventBrowser tree  = new LCSimEventBrowser(getApplication(),loop);
-            //            eventBrowser = getApplication().getPageManager().openPage(tree,"LCSim Event",null);
-            //            eventBrowser.addPageListener(LCSimPlugin.this);
             getApplication().getPageManager().openPage(tree,"LCSim Event",null);
             setChanged();
         }
CVSspam 0.2.8