Writing Extension Modules (Plugins) for JAS 3 Mark Donszelmann Tony Johnson Victor Serbo Max Turri CHEP2004, 27 september-1 october 2004, Interlaken, Switzerland.

Slides:



Advertisements
Similar presentations
Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
Advertisements

Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Building Great Looking.
© by Pearson Education, Inc. All Rights Reserved.
Victor Serbo, CHEP071 JAIDA, JAS3, WIRED4 and the AIDA tag library - experience and new developments DONSZELMANN, Mark (SLAC)DONSZELMANN, Mark JOHNSON,
Resource Discovery Module DigiTool Version 3.0. Resource Discovery 2 Deposit Approval Search & Index Dispatcher & Viewers Single & Bulk Web Services DigiTool.
Eclipse Architecture Dwight Deugo Nesa Matic
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
JAS – Distributed Data Analysis Grid Enabled Analysis Workshop Caltech - June 23-25, 2003.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Introduction To Form Builder
New UI Changes for Endpoint Security in LDMS 9.6 SP2.
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
Victor Serbo, SLAC30 September 2004, Interlaken, Switzerland JASSimApp plugin for JAS3: Interactive Geant4 GUI Serbo, Victor (SLAC) - presenter Donszelmann,
Exmouth House 3–11 Pine Street London EC1R 0JH T F E W ASCE – Railway Hazard Log Technical.
ICS 665 Jesse Abdul. jQuery UI Overview  jQuery UI javascript library Includes all UI component functionality  jQuery UI CSS framework Includes standard.
Creating a Console Application with Visual Studio
Lesley Bross, August 25, 2010 ArcGIS 10 Add-In Components and Controls.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Written by Liron Blecher
MVC pattern and implementation in java
JAS3 – Current Status and Prospects by Victor Serbo, SLAC.
EMu New Features 2015 Ian Brown. EMu 4.2 Edit in a single language 4.2 (Previously for multi-lingual systems all languages had to be edited simultaneously)
FreeHEP Java Library Mark Dönszelmann, SLAC CHEP, La Jolla, March 2003.
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
JAIDA, AIDA-JNI, JAS3 Status and Plans Mark Dönszelmann, Tony Johnson, Joseph Perl, Victor Serbo, Max Turri AIDA Workshop CERN July 2003.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Arc: AddIns Dr Andy Evans. Java Direct access to ArcObjects Framework inside and outside Arc. Ability to add components to the GUI. Ability to communicate.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
LLRP GUI Client User Guide
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
JAS/Wired + Geant 4 Tony Johnson July Contents What is JAS? What is WIRED? –Future Directions JAS+AIDA+GAG+Wired + Geant 4= ? Making it easy to.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
ICALEPCS, “jddd” a Java DOOCS Data Display for the XFEL Editor for a Graphical User Interface of DOOCS & TINE and Runtime Engine Elke Sombrowski.
Graphical User Interface Concepts - Part 2 Session 09 Mata kuliah: M0874 – Programming II Tahun: 2010.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
1 Chapter 12: Form Builder Objects and Flexible Code.
JAS3 - A general purpose data analysis framework for HENP and beyond Tony Johnson, Victor Serbo, Max Turri, Mark Dönszelmann, Joseph Perl SLAC.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Chapter 2 – Introduction to the Visual Studio .NET IDE
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
WIRED 4 An extensible generic Event Display Mark Donszelmann SLAC, Stanford, U.S.A. CHEP2004, 27 september – 1 october Interlaken, Switzerland.
AIDA Web Interface Tony Johnson, Victor Serbo, Max Turri AIDA Workshop, CERN, July 2003.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
CHAPTER:08 JAVA IDE PROGRAMMING-III Prepared By Prepared By : VINAY ALEXANDER ( विनय अलेक्सजेंड़र ) PGT(CS),KV JHAGRAKHAND.
Visualization of Geant4 Data: Exploiting Component Architecture through AIDA, HepRep, JAS and WIRED Geant4 Workshop, CERN - 2 October 2002 Joseph Perl.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
FreeHEP, JAS and WIRED Mark Dönszelmann, CERN/IT Charles Loomis, UC, Santa Cruz ATLAS Software Week, 30 November 2000.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
JAS and JACO – Status Report Atlas Graphics Group August 2000 Tony Johnson.
Giulio Eulisse, Northeastern University CHEP’04, Interlaken, 27th Sep - 1st Oct, 2004 CHEP’04 IGUANA Interactive Graphics Project:
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Customizing Menus and Toolbars CHAPTER 12 Customizing Menus and Toolbars.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Potential use of JAS/JAIDA etc. SAS J2EE Review
WIRED 4 Event Display Linear Collider Simulation Workshop
Presentation transcript:

Writing Extension Modules (Plugins) for JAS 3 Mark Donszelmann Tony Johnson Victor Serbo Max Turri CHEP2004, 27 september-1 october 2004, Interlaken, Switzerland.

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland2 Content JAS 3 and the FreeHEP Application Framework Plugins Management Menus, Command Processing and Pages Communication, Services Tree Comparison to Other Frameworks Simple Event Display plugin Conclusions

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland3 JAS 3 Based on the FreeHEP Application Framework, Empty Framework into which extension modules (plugins) can be loaded. JAS3 IS just a set of built-in plugin modules Provides General functionality: Top-level GUI: windows, menus, status bar, etc… Help System Storage/retrieval of user preferences Customizable by adding, removing or replacing plugin modules. Plugins Data Analysis and other functionality is provided by a set of plugins. Plugins are (in general) only loosely coupled. Provide a set of services and events  available to JAS  and extensible by new plugin modules. Communication  restricted to service interfaces and notification events. Can be added, removed, upgraded independently Present seamless interface to user, for instance by merging functionality into existing menus

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland4 Example Plugin: BaBar’s Ambient Data Explorer

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland5 Example Plugin: FermiLab’s Accelerator Control

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland6 Management of Plugin Modules Plugin Types: Built-in modules (cannot be removed) System modules (come standard with JAS) User modules (individual or group based) PluginManager in JAS to handle installation and removal Semi-Automatic download of updated plugins based on version numbers Plugins can be published on the Web as jar files with an embedded XML description file Dependencies and versions can be specified

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland7 Built-in and System modules Built-in modules Console Data Source File Opener Plotter Plugin Manager Preferences Save/Restore Status Bar Tree Web Browser System modules AIDA Compiler Excel Jython PAW for AIDA Pnuts Record Loop Root for AIDA Simple Editor SpreadSheet Tuple Explorer

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland8 Instantiation and Initialization Plugins inherit from the Plugin class. Plugins are constructed after which the init() and postInit() methods are called. Plugins may implement a set of standard or plugin defined services. Plugins make themselves known to the system in the init() method. Plugins should look for other plugins in the postInit() method or afterwards.

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland9 Menu and ToolBar Plugins can add their own menus to the Menubar in any position to any submenus in any position Plugins can add their own toolbars to the general toolbar toolbars automatically hide themselves if functionality is temporarily unavailable Menus and Toolbars can be added statically, using an XML description file dynamically by the plugin at runtime

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland10 Command Processing Actions from menus and toolbars hook up to a command processor Handles enabling and disabling of menu/toolbar buttons Handles state of checkbox or radio buttons Handles the dispatching of actions to multiple listeners

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland11 Pages Pages can be used by plugins to display any content (Histograms, Events, …) PageManager handles the display of pages. as tabbed pages as internal windows ManagedPage service allows you to handle page notifications page displayed page selected page iconized …

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland12 Find others and be found Lookup system Lookup services by class or interface Lookup services by name Publish Register by class and name

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland13 Services Standard services FileHandler / URLHandler DataSource ManagedPage PreferencesManager … Plugin-defined for others to look up and use

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland14 Tree - a point of contact Plugins can add/remove nodes on the tree A node is defined by a type (java Class) and can contain multiple objects Any plugin can attach objects to a given node Plugins can add behavior to any type of node A node’s behavior is defined by its type (by inheritance) Node adapters are registered with the tree for a given type and with a given priority A node adapter controls: Single and Double click Popup menu Icon Text Drag & Drop … Plugins modify the tree by sending it Notifications The trees feedback to the plugins is sent via Events Plugins can modify behaviour of nodes created by other plugins

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland15 Via the Root plugin we open a root file The content of the root file is presented in the tree by the AIDA plugin: histograms and tuples are shown The TupleExplorer plugin modifies the appearance and behavior of a tuple by adding extra functionality: the internal structure is displayed. Ex.: the tooltip text is modified. Tree - Root Example

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland16 Comparison to other Frameworks Other similar framework available for Java IDEs Netbeans JAS uses some utilities from netbeans and will likely adopt other modules (editor, window manager) in future Eclipse Newer plugin architecture, architected for fast startup (e.g. plugins not loaded until used) Eclipse is SWT based (not Swing like Netbeans, JAS) Open source Java Plugin Framework Encapsulates feature of eclipse plugins without SWT Maybe useful for future release of JAS JAS is a much lighter framework than full IDE JAS base plugins provide plotting, data analysis capabilities.

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland17 Simple Event Display (real life example) Suppose you want to read a file with an event per line format like this: eventLabel run#.event# weight Ecm[GeV] zVertex[cm] objectType1 (mass)[GeV] pT[GeV] eta phi[degrees] … mad_ttbar-e+vemu-vm-b-b e mu j j uncl ; and display the events in WIRED 4, with all its functionality:

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland18 Simple Event Display Plugin Give the file an extension Create a FileHandler for it Parse the file and provides its lines as Records in a RecordSource Each Record needs to be converted (on the fly) into a HepRep Provide to WIRED 4. Green = Part of JAS/FreeHEP Pink = Provided by plugin implementer

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland19 Conclusion JAS 3 is a configuration of plugin modules used in the lightweight FreeHEP Application Framework. It can be easily extended by writing fairly independent plugin modules Plugin modules can communicate with JAS and other modules via services and events.

30 September 2004Mark Donszelmann, CHEP 2004, Interlaken, Switzerland20 References JAS 3 – Documentation on JAS 3 and how to write extension modules. Forums – Discussions on JAS 3, FreeHEP and WIRED 4.