LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.

Slides:



Advertisements
Similar presentations
The New User Interface MEDITECH Training & Education.
Advertisements

Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
Rapid Application Design with the ROOT GUI Classes 24 April 2007 Ilka Antcheva, Bertrand Bellenot, René Brun, Fons Rademakers, Valeriy Onuchin * CERN,
Microsoft Word 2010 Lesson 1: Introduction to Word.
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
Technology Education and Information Design Copyright 2009 MediTech NUI: New User Interface Online Training.
Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,
Office 2003 Post-Advanced Concepts and Techniques M i c r o s o f t Word Project 8 Working with Macros and Visual Basic for Applications (VBA)
Exploring the Basics of Windows XP
Module 3 Productivity Programs Common Features and Commands Microsoft Office 2007.
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
Access Tutorial 10 Automating Tasks with Macros
Chapter 9 Macros, Navigation Forms, PivotTables, and PivotCharts
Microsoft Visual Basic 2012 CHAPTER TWO Program and Graphical User Interface Design.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
ABAP/4 PROGRAMMING Menu Painter Modularization 講 師:呂 昇 燦 2000 年 9 月 28 日.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
DataFlex Web Framework Symposium – Part 2 Web Framework Overview John Tuohy Development Team
Automating Database Processing Chapter 6. Chapter Introduction Design and implement user-friendly menu – Called navigation form Macros – Automate repetitive.
Office  The following are basic components of the MS Office document screens in the Windows environment. Some tabs and/or tools will change depending.
Graphics Movies & Games. Jump In! Feeling sleepy and stupid… Extract the Alice from the zip archive and copy it to C:\Programs.
Workbench Overview Dwight Deugo Nesa Matic
Introduction to MS WORD.
Visual Basic 2005 CHAPTER 2 Program and Graphical User Interface Design.
 2009 Pearson Education, Inc. All rights reserved Introduction to the Visual Basic Express 2008 IDE.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Productivity Programs Common Features and Commands.
Automating Database Processing
Selected Topics in Software Engineering - Distributed Software Development.
XP New Perspectives on Microsoft Windows 2000 Professional Windows 2000 Tutorial 1 1 Microsoft Windows 2000 Professional Tutorial 1 – Exploring the Basics.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Microsoft Access 2010 Chapter 8 Advanced Form Techniques.
Basic Computer and Word Functions, part 1 Read the information and use to answer the questions in the Basic Computer and Word Functions Study Guide.
LCG AA Meeting 30 June 2004 Valeriy Onuchin GUI Builder.
1 Creating Windows GUIs with Visual Studio. 2 Creating the Project New Project Visual C++ Projects Windows Forms Application Give the Project a Name and.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
Oct 021 Outline What is a widget? Buttons Combo boxes Text components Message boxes.
Microsoft Visual Basic 2010 CHAPTER TWO Program and Graphical User Interface Design.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
Graphics Editor in ROOT I l ka Antcheva*, René Brun, Fons Rademakers CERN, Geneva, Switzerland CERN, Geneva, Switzerland * funded by PPARK, Swindon, UK.
Chapter 2 Using Selection Tools and Shortcut Keys
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
1 After completing this lesson, you will be able to: Open a file. Navigate through a document. Scroll through a document. Insert text in a document. Select.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
Intoduction to Andriod studio Environment With a hello world program.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
ROOT Graphical User Interface The Graphical User Interface (GUI) design is an important component of the ROOT framework. Two sets of classes, recently.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
Development of a data acquisition program builder via a user interface F.Fujiwara, N.Tamura, M.Abe, S.Enomoto, G.Iwai, S,Kawabata, A.Manabe,Y.Nagasaka,
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Using Macros Lesson.
Chapter 11 Enhancing an Online Form and Using Macros Microsoft Word 2013.
ROOT Event Recording system
Java Look-and-Feel Design Guidelines
How to automatise the grid production - using model builder in ArcGIS
Distributed object monitoring for ROOT analyses with Go4 v.3
COSC-4840 Software Engineering
User Interface Classes Signals / Slots
The Basic Usage and The Event Handling in Glade.
Presentation transcript:

LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers

LCG AA Internal Review 30 March Overview Main Goals TVirtualX Interface ROOT and Qt Application Example GUI Widgets Graphics Editor GUI Builder Tree Viewer Undo/Redo Tools

LCG AA Internal Review 30 March Main Goals Cross-platform GUIs – consistent look everywhere All machine dependent low graphics calls abstracted via TVirtualX X11 Win32GDK Qt layer - standard ROOT “plug-in” share library, allows to be turned on/off at run timewith no changes of the user’s code No needs to implement specific code for each platform – that simplifies the code maintenance

LCG AA Internal Review 30 March TVirtualX Interface Concrete versions of TVirtualX: X11 (Fons Rademakers) Win32GDK (Bertrand Bellenot, Valeriy Onuchin) – solved the problem with not thread safe gdk environment Qt (Valeri Fine) – gives access to a rich set of ready-to-use GUI Qt-based widgets The benefit of applications running on different platforms is obvious - it increases the program’s robustness, makes their maintenance easier and improves the reusability of the code.

LCG AA Internal Review 30 March ROOT and Qt Qt event loop Qt controls the event loop via QApplication::exec() TQtWidget class provides the embedded ROOT canvas ROOT event loop ROOT controls the event loop via TApplication::Run() Transformed QEvent into Event_t structure allows event piping ROOT as Framework or Toolkit

LCG AA Internal Review 30 March GUI Widgets (1) Current Status Based on the XClass library from Hector Peraza Provide standard components for application environment with windows ‘look and feel’ Object-oriented, event- driven programming model

LCG AA Internal Review 30 March GUI Widgets (3) Next Steps Not finished GUI tasks Keyboard navigation Menu hot keys: + = pops up File menu = Save, pops up a submenu should create c1.ps Dialogs: Enter = OK, Esc = Cancel Combo boxes: Up/Down arrows, Home, End, PgUp, PgDn List view improvements, etc. Cleanup tools F Alt S P

LCG AA Internal Review 30 March GUI Widgets (2) Containers - use of ROOT container classes for fast object look up Any widgets can be extended via inheritance Layout managers Signals/slots communication - uses dictionary information and interpreter to connect signals to slots

LCG AA Internal Review 30 March Data acquisition display Application Example (1)

LCG AA Internal Review 30 March Application Example (2) Statistics on the last 30 min of acquisition

LCG AA Internal Review 30 March Application Example (3) Temperature evolution on the last 30 min

LCG AA Internal Review 30 March GUI Widgets (4) Code optimization Layout algorithms GUI Dialogs Qt layer Validation tests of interaction with ROOT GUI classes with the same ‘look and feel’ To solve problems with so-called "popup widgets", like menus, drop down combo boxes, etc. and actions that require full-scale X11 - like mouse pointer grabbing To complete the reference documentation of GUI classes

LCG AA Internal Review 30 March Graphics Editor (1) ROOT graphics editor can be: Embedded – connected only with the canvas in the application window Global – has own application window and can be connected to any created canvas (under development)

LCG AA Internal Review 30 March Graphics Editor (2) Modular – it loads the corresponding object editor xxxEditor according to the selected object xxx in the canvas respecting the class inheritance. Can be extended easily by any user-defined object editor - this makes GUI design easier and adaptive to the users’ profiles This way the GUI complexity is reduced by hiding some interface elements and revealing them when necessary. Rules to follow: Derive in the code the object editor from the base class TGedFrame Correct naming Register the object editor in the list TClass::fClassEditors

LCG AA Internal Review 30 March Graphics Editor (3) Different object editors

LCG AA Internal Review 30 March Graphics Editor (4) Next Steps To include ROOT commands in tool tips of the GUI widgets Help Global graphics editor To show the related canvas title Close button Hide/Show objects in a canvas New object editors development Style manager – summer student project Fit Panel GUI root[9] gPad->SetLogy(1);

LCG AA Internal Review 30 March GUI Builder (1) GUI Builder greatly simplifies the process of designing GUIs based on ROOT widgets’ classes. Using Ctrl+S or SaveAs dialog, users can generate C++ code in a macro that can be edited and executed via the CINT interpreter: root[0].x example.C // transient frame TGTransientFrame *frame2 = new TGTransientFrame(gClient->GetRoot(),760,590); // group frame TGGroupFrame *frame3 = new TGGroupFrame(frame2,"curve"); TGRadioButton *frame4 = new TGRadioButton(frame3,"gaus",10); frame3->AddFrame(frame4); frame2->SetWindowName(“Fit Panel"); frame2->MapSubwindows(); frame2->Resize(frame2->GetDefaultSize()); frame2->MapWindow(); }

LCG AA Internal Review 30 March GUI Builder (2) Current status Tests and validation of the current version Layout a GUI quickly by dragging widgets, setting layout managers, changing options in the right-click context menus. Final design can be saved as a C++ macro Next steps To complete the GUI widgets’ palette with combo/list boxes, double sliders, list view, list tree, shutters, button group, etc. To develop tools for signals/ slots mechanism of communication. To provide examples for several basic types of GUIs (as tutorials)

LCG AA Internal Review 30 March Tree Viewer Tree Viewer improvements to adapt the user interface to latest TTree developments

LCG AA Internal Review 30 March Undo/Redo Tools Allow users to recover from mistakes - very important part of GUI that will provide: A stack of states/actions to go back Confirmation of destructive actions: overwrite, delete, etc. Main idea: all editing in an application is done by creating instances of so-called command objects Tests and validation of already implemented classes: TQCommand – each command knows how to undo its changes to bring the edited object back to its previous state. TQCommandHistory TQUndoManager – recorder of undo and redo operations; it is the command history list which can be traversed backwards and upwards performing undo/redo operations.