ROOT Users Workshop 28-30 September 2005 Ilka Antcheva GUI Status and Development.

Slides:



Advertisements
Similar presentations
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,
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.
MP IP Strategy Stateye-GUI Provided by Edotronik Munich, May 05, 2006.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
XP New Perspectives on Microsoft Office Word 2003 Tutorial 1 1 Microsoft Office Word 2003 Tutorial 1 – Creating a Document.
Using the Visual Basic Editor Visual Basic for Applications 1.
XP 1 Microsoft Office Word 2003 Tutorial 1 – Creating a Document.
Command Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Introduction To Form Builder
ModelBuilder at ArcGIS 9.2 Lyna Wiggins Rutgers University May 2008.
What is so good about Archie and RevMan 5
Exploring the Basics of Windows XP
Access Tutorial 10 Automating Tasks with Macros
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.
- Circle markers produced by TAsimage: They do not match was is produced on screen. The line width is too thick. Some other markers need to be tune a bit.
6 Copyright © 2004, Oracle. All rights reserved. Working with Data Blocks and Frames.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
Introducing Dreamweaver MX 2004
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
Microsoft Office 2007 Word Chapter 1 Creating and Editing a Word Document.
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.
Workbench Overview Dwight Deugo Nesa Matic
Microsoft Word 2007 Getting Started. Menus These features below contain many of the functions that were in the menu of previous versions of Word. –The.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
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.
ATN GIS Support ArcGIS: ArcMap Data View.
Copyright © 2010 Wolters Kluwer Health | Lippincott Williams & Wilkins Introduction to Windows Chapter 2.
XP 1 Microsoft Access 2003 Introduction To Microsoft Access 2003.
William H. Bowers – High Level Design Torres 16.
Key Applications Module Lesson 21 — Access Essentials
© ABB University - 1 Revision C E x t e n d e d A u t o m a t i o n S y s t e m x A Chapter 4 Engineering Workplace Course T314.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Introduction to Microsoft publisher
VAPOR 3.0 Architecture Overview. Purpose of this document Provide understandable overview of 3.0 architecture Enable the development team to maintain.
By Felixberto Dominic B. Eruela.  Using a computer to create, edit, and print documents. Of all computer applications, word processing is the most common.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
Object-Oriented Application Development Using VB.NET 1 Chapter 10 VB.NET GUI Components Overview.
Exploring Office 2003 Vol 1 2/e - Grauer and Barber 1 Committed to Shaping the Next Generation of IT Experts. Getting Started with Windows® XP Robert Grauer.
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,
Graphics Editor in ROOT I l ka Antcheva*, René Brun, Fons Rademakers CERN, Geneva, Switzerland CERN, Geneva, Switzerland * funded by PPARK, Swindon, UK.
User Interface Design Patterns Part II Presented by: Mohammed CS2310 April 15, 2008.
Chapter 2 Using Selection Tools and Shortcut Keys
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.
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.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
1 Chapter 6: Creating Oracle Data Block Forms. 2 Forms  Application with a graphical user interface that looks like a paper form  Used to insert, update,
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
DB Implementation: MS Access Forms. MS Access Forms: Purpose Data entry, editing, & viewing data in Tables Forms are user-friendlier to end-users than.
Fundamentals of Windows Mouse n 4 Basic Operations: –Pointing –Clicking –Double Clicking –Dragging.
Working with Data Blocks and Frames
Working in the Forms Developer Environment
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
DB Implementation: MS Access Forms
DB Implementation: MS Access Forms
The Basic Usage and The Event Handling in Glade.
Presentation transcript:

ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development

2 Ilka Antcheva ROOT Users Workshop September 2005 Overview Status GUI Classes Graphics Editor Style Manager GUI Builder Next Steps GUI Classes Feb-04Jun-04Dec-04 Sep-05 GUI Builder Jul-05 Style Manager Graphics Editor Dockable Frames MDI

3 Ilka Antcheva ROOT Users Workshop September 2005 Status (1) Cross-platform GUIs – consistent look everywhere All machine dependent low graphics calls abstracted via TVirtualX X11 Win32GDK - solved problems with not thread safe gdk environment Qt layer - standard ROOT “plug-in” shared library, allows to be turned on/off at run time with no changes of the user’s code 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. No need to implement specific code for each platform.

4 Ilka Antcheva ROOT Users Workshop September 2005 Status (2) ROOT and Qt ( see the talk about Qt & ROOT by Valeri Fine ) Qt controls the event loop via QApplication::exec() TQtWidget class provides the embedded ROOT canvas ROOT controls the event loop via TApplication::Run() Transformed QEvent into Event_t structure allows event piping

5 Ilka Antcheva ROOT Users Workshop September 2005 GUI Classes (1) TGDockableFrame widget - allows the undocking/docking of menus, tool or status bars, or the collapsing of these bars. MDI (Multiple Document Interface) widgets

6 Ilka Antcheva ROOT Users Workshop September 2005 GUI Classes (2) Cleanup methods ‘Pseudo-windows' concept allows to draw & scroll > items TGListView TGListBox TGListTree TGComboBox TGCompositeFrame *fr = new TGCompositeFrame(this, 80, 20, kHorizontalFrame); fr->AddFrame(new TGLabel(fr, "Size:“), new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 3, 0, 1, 1)); // all objects (frames and layout hints) must be unique... fr->Cleanup();

7 Ilka Antcheva ROOT Users Workshop September 2005 GUI Classes (3) TGListTree checkboxes on the tree nodes turn on/off pieces of the tree hierarchy

8 Ilka Antcheva ROOT Users Workshop September 2005 GUI Classes (4) Canvas interface Menus - restructured to better follow standard conventions; give access to new developed GUIs. Tool bar is dockable and provides shortcuts for menu’s and buttons for primitive drawing Editor frame – provides GUIs for objects drawn in the canvas window Editor Frame Menu Bar Toolbar Status bar

9 Ilka Antcheva ROOT Users Workshop September 2005 GUI Classes (5) SaveAs file dialog gives a choice for automatically overwriting existing files WinNT.*.Print.Command: AcroRd32.exe Unix.*.Print.Command: xprint -P%p %f Print.Printer: 32-rb205-hp Print.Directory:. Print command is enabled and pops-up a simple print dialog. Both parameters can be set via the new Print.Command and Print.Printer resources:

10 Ilka Antcheva ROOT Users Workshop September 2005 Graphics Editor (1) Object orientation of editor design Manage GUI complexity by object editors Presents the right GUI at the right time according to the selected object in the canvas Easy-to-use Capacity for growth

11 Ilka Antcheva ROOT Users Workshop September 2005 Graphics Editor (2) Signals/Slots communication mechanism handles GUI actions: Canvas sends a signal identifying which object is selected Corresponding object editor is activated and ready for use

12 Ilka Antcheva ROOT Users Workshop September 2005 Graphics Editor (3) Global – has own application window and can be connected to any created canvas in a ROOT session. ROOT graphics editor can be: Embedded – connected only with the canvas in the application window

13 Ilka Antcheva ROOT Users Workshop September 2005 Modular – it loads the corresponding object editor objEditor according to the selected object obj in the canvas respecting the class inheritance. Algorithm: Search for a class name objEditor (correct naming is important). Check that this class derives TGedFrame (the editor base class). Make an instance of the object editor using TROOT::ProcessLine method. Scan all base classes for corresponding object editors. Graphics Editor (4) TArrow TAttMarker TCurlyArc TH1 TPad TAttFill TAttText TCurlyLine TH2 TPaveStats TAttLine TAxis TFrame TGraph...

14 Ilka Antcheva ROOT Users Workshop September 2005 Can be extended easily by any user-defined object editor - this makes GUI design easier and adaptive to the users’ profiles. Rules to follow: Derive in the code from the base editor class TGedFrame. Correct naming convention: the name of the object editor should be the object class name + 'Editor’. Register the new object editor in the list TClass::fClassEditors at the end of its constructor. Use signals/slots communication mechanism for event processing. Implement SetModel method to set GUI widgets according to the object’s attributes. Implement all necessary slots & connect them to appropriate widget signals. Graphics Editor (5)

15 Ilka Antcheva ROOT Users Workshop September 2005 Top level interface Manage a collection of TStyle objects Create a new style Delete a selected style Import from a canvas / a C++ macro Export to a C++ macro Apply on all canvases or a selected object Activate the style editor Preview window Show the predicted results On line update or by request Placed in front of the selected canvas Style Editor Style Manager (1)

16 Ilka Antcheva ROOT Users Workshop September 2005 To edit the selected TStyle object Every data member can be edited Protect users from errors– they can go back to a previous saved state easily Update the Preview by request Help Only information relative to the current task is presented; other GUI parts are hidden. Full and continuous feedback on the action result. GUI elements are grouped according to the task flow. Style Manager (2)

17 Ilka Antcheva ROOT Users Workshop September 2005 GUI Builder (1) GUI Builder simplifies the process of designing GUIs based on the ROOT widget classes. Using Ctrl+S or SaveAs dialog, users can generate C++ code in a macro that can be edited and executed via 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(); }

18 Ilka Antcheva ROOT Users Workshop September 2005 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 widget palette with combo/list boxes, double sliders, list view, list tree, shutters, button group, etc. To develop tools for signals/slots communication mechanism. To provide examples for several basic types of GUIs (as tutorials)

19 Ilka Antcheva ROOT Users Workshop September 2005 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: to create instances of so-called command objects for all editing actions. 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.

20 Ilka Antcheva ROOT Users Workshop September 2005 Next Steps (1) New object editors Undo/Redo tools Fit Panel New GUI widgets GUI Builder ROOT commands in tool tips Help GUI Tutorials Documentation root[9] gPad->SetLogy(1);

21 Ilka Antcheva ROOT Users Workshop September 2005 Next Steps (2) GUI Classes Oct-05Dec-05Mar-06 Undo/Redo Tools Jul-06 Object Editors Fit Panel Style Manager GUI Builder Table Widget

22 Ilka Antcheva ROOT Users Workshop September 2005