LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.

Slides:



Advertisements
Similar presentations
What Was I Thinking??. Key Terms 1. Control 1. Control 2. Design Mode 2. Design Mode 3. Event 3. Event 4. Form 4. Form 5. Interface 5. Interface 6. Properties.
Advertisements

CIMCO Integration Software Products
Designing a Graphical User Interface (GUI) 10 IST – Topic 6.
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,
AA high level programming language. IIt is created by Microsoft. UUses a graphical environment called the Integrated Development Environment (IDE).
1 Windows CIS*2450 Advancing Computing Techniques.
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
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.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Automating Tasks With Macros
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
A Tour of Visual Basic BACS 287. Early History of Basic Beginners All-Purpose Symbolic Instruction Code An “Interpreted” teaching language English-like.
Chapter 3 Introduction to Event Handling and Windows Forms Applications.
Systems Analysis and Design in a Changing World, 6th Edition
Lecture Set 3 Introduction to Visual Basic Concepts Part A – User Interfaces and Windows Forms – The Toolbox.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Systems Analysis and Design in a Changing World, 6th Edition
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
June 2001ROOT 2001 FNAL1 What Else is New Since ROOT 2000? Fons Rademakers.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
An Introduction to Visual Basic
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Chapter 8: Writing Graphical User Interfaces
IE 411/511: Visual Programming for Industrial Applications
Java Software Solutions Lewis and Loftus Chapter 10 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Graphical User Interfaces --
Chapter 8: Writing Graphical User Interfaces Visual Basic.NET Programming: From Problem Analysis to Program Design.
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.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Microsoft Access 2010 Chapter 8 Advanced Form Techniques.
CC111 Lec7 : Visual Basic 1 Visual Basic(1) Lecture 7.
C# GUI - Basics. Objectives.NET supports two types: WinForms, traditional, desktop GUI apps. WebForms – newer, for Web apps. Visual Studio.NET supports.
Chapter 2 – Introduction to the Visual Studio .NET IDE
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.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 6 – Graphical User Interfaces Java Foundations: Introduction to Programming.
Object-Oriented Application Development Using VB.NET 1 Chapter 10 VB.NET GUI Components Overview.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
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.
CMPF114 Computer Literacy Chapter 3 The Visual Basic Environment 1.
Design Phase intro & User Interface Design (Ch 8)
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
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.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 2 The Visual Basic.NET Integrated Development Environment.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
Chapter 9: Graphical User Interfaces
Introduction to Computer CC111
Chapter 8: Writing Graphical User Interfaces
Chapter 2 – Introduction to the Visual Studio .NET IDE
Unit 2 User Interface Design.
1. Introduction to Visual Basic
Chapter 2 – Introduction to the Visual Studio .NET IDE
Development The Foundation Window.
Presentation transcript:

LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 2 ROOT GUI Classes TVirtualX Widgets Layout Managers Signals/Slots Communication Developing a GUI GUI Code Generation Pad Editor General Features Focus on Users Next Steps Overview

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 3 Provide standard components for a GUI environment Based on the XClass library from Hector Peraza Containers - use of ROOT container classes for fast object look up Controls / widgets Layout managers Object-oriented, event-driven programming model Can be extended via inheritance Signals/slots communication Conventional model Important classes TGClient – sets up the graphics system TGResourcePool – global resource manager ROOT GUI Classes

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 4 TVirtualX TVirtualX TGWin32TGX11TGWin32GDKTGQt TVirtualPad TPad User/Root GUI and graphics classes Applications see only abstract interfaces Low level screen graphics High level pad graphics TG..?

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 5 Base classes TGObject – window identifier; connection to the graphics system TGWidget – important for event processing TGWindow – creates a new window with common characteristics TGFrame – base class for simple widgets GUI widgets Buttons: text, picture, check, radio Menus: menu bar, menu title, popup menu, tool bar Containers: combo box, list box, tabs, shutter Text widgets: label, text entry, number entry, text edit, tool tip Color: color selector, dialog, palette Whiteboard: canvas, list tree Miscellaneous: slider, splitter, scroll bar, spin box, progress bar, 3 Dlines Widgets (1)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 6 Widgets (2)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 7 Widgets (3)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 8 Laying out the GUI components Control the arrangement of components within a container Parent-children relationship between widgets Different managers Layout hints specify a widget position in the container Layout Managers Horizontal Layout Matrix Layout Vertical Layout

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 9 Signals and slots pioneered by Trolltech Qt GUI toolkit Integrated into the ROOT core TQObject, TQConnection, TQClass Facilitates the programming since it allows a total independence of the interacting classes Classes emit signals whenever they change a significant state that others might be interested in Signals/Slots Communication (1)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 10 Widgets send out various signals Event senders Object methods can be used as slots Event receivers Signals and slots can be connected together Use the dictionary information and CINT interpreter to connect signals to slots Signals/Slots Communication (2) fLogX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogX(Bool_t)"); virtual void Toggled(Bool_t on) { Emit("Toggled(Bool_t)", on); } // *SIGNAL* void TPadEditor::DoLogX(Bool_t on) { fPadPointer->SetLogx(on); Update(); }

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 11 Signals/Slots Communication (3) virtual void Toggled(Bool_t on) { Emit("Toggled(Bool_t)", on); } // *SIGNAL* void TPadEditor::DoLogY(Bool_t on) { fPadPointer->SetLogy(on); Update(); } fLogX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogY(Bool_t)");

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 12 Selecting widgets provided by ROOT GUI classes Rich set for standard application functionality Intuitive naming conventions SavePrimitive() methods Laying out the GUI components Parent-children relationship between widgets Different layout managers Programming the components to perform actions Signals/slots mechanism Conventional model of event processing Running the GUI Developing a GUI

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 13 Methods SavePrimitive() generate automatically a macro after Ctrl+s Executing this macro brings back the GUI widgets with their attributes and keeps the layout without the action handling based on the process event or signals/slots mechanism Saving a running application: TGMainFrame::SaveSource("macro.C","") Saving a dialog: TGTransientFrame::SaveSource("dialogMacro.C","") GUI Code Generation (1)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 14 Type Ctrl+s anywhere on the application frame to generate C++ code in a macro; then do: root[0].x guisave.C GUI Code Generation (2)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 15 Examples (1)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 16 Examples (2)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 17 Examples (3) Option tabs Status information Canvas Pads Object information Input modes Zoom controls

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 18 Old Pad Editor

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 19 Visual composition draws attention clearly and quickly Consistency – related actions work the same way Direct manipulation and immediate feedback Forgiveness – prevent/inform about dangerous steps Persistence – keep the same environment look Control – one possible thing to do (the right one) Efficiency – minimize users’ work Recognition, not recall Three mouse clicks Predictability - reduce short-term memory load Miller's law of 7 New Pad Editor (1)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 20 New Pad Editor (2)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 21 New Pad Editor (3)

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 22 Novices (for a short time) Theoretical understanding, no practical experience with ROOT Impatient with learning concepts; patient with performing tasks Advanced beginners (many people remain at this level) Focus on a few tasks and learn more on a need-to-do basis Perform several given tasks well Competent performers (fewer then previous class) Know and perform complex tasks that require coordinated actions Interested in solving problems and tracking down errors Experts (identified by others) Ability to find solution in complex functionality Interested in theories behind the design Interested in interacting with other expert systems Focus on Users

Ilka Antcheva LCG AA Meeting 30 June 2004 Slide 23 GUI for editing objects in ROOT Histogram editor & fitter by Carsten Hof Graphics primitives Improve the design according to the users’ feedback Modify and iterate as much as necessary Integrate all system components Software Documentation Help functions Training tools Next Steps