1 / 14

Graphics Editor in ROOT

Graphics Editor in ROOT. I l ka Antcheva*, René Brun, Fons Rademakers CERN, Geneva, Switzerland * funded by PPARK, Swindon, UK. ACAT05. 23 May 2005. Overview. Main Goals Design Solution The “Look” The “Feel” Conceptual Elements Editor Usability

terig
Download Presentation

Graphics Editor in ROOT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graphics Editor in ROOT Ilka Antcheva*, René Brun, Fons Rademakers CERN, Geneva, Switzerland * funded by PPARK, Swindon, UK ACAT05 23 May 2005

  2. Overview • Main Goals • Design Solution • The “Look” • The “Feel” • Conceptual Elements • Editor Usability • Focus on Users • Next Steps I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  3. Main Goals (1) I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  4. Main Goals (2) • Object orientation of the editor design – keeps users focused on objects, not on how to carry out actions. • Managing GUI complexity by splitting the graphics editor into discrete units of so-called object editors. • Editor responds dynamically and presents the right GUI at the right time according to the selected object in the canvas. • Easy-to-use. • Require minimal user’s training. • Protect users from obvious errors. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  5. Design Solution (1) • 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. • TArrow TAttMarker TCurlyArc TH1 TPad • TAttFill TAttText TCurlyLine TH2 TPaveStats • TAttLine TAxis TFrame TGraph I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  6. Design Solution (2) • Signals/slots communication mechanism handles GUI actions. • Canvas sends a signal which object is selected. • Corresponding object editor is activated and ready for use. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  7. Design Solution (3) 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 in a ROOT session. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  8. The “Look” • Color choice to point user’s attention to selected object. • Font choices – by default. • GUI elements: buttons, combo boxes, number and text entries, etc. • Overall visual impression - layout shows the visual hierarchy, consistency and balance. • Additional redundant texts and labels are avoided by grouping elements. • Tooltip based help. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  9. The “Feel” • GUI widget choice – its behavior matches functionality. • GUI element location – related to the task flow. • Navigation and freedom of movement. • Minimize total number of clicks • No jumps between panels • Appropriate feedback for each user action. • GUI text – list of reserved words in use, brief messages. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  10. Conceptual Elements (1) • Easy-to-use. • Recognition over recall determines design choices. • Power of each GUI action – same things work same way; full and continuous feedback on the action result. • Flexibility for change – only information relative to the current task is presented; other GUI parts are hidden. • Capacity for growth. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  11. Conceptual Elements (2) • 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::fClassEditorsin the end of its constructor. • Use signals/slots communication mechanism for event processing. • Implement SetModel method where to set GUI widgets according to the object’s attributes. • Implement all necessary slots and connect them to appropriate widget signals. I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  12. Editor Usability • To reduce… • Visual work • Movements • Intellectual work • Memory work • Benefits • Higher productivity • Overall validation • Users’ confidence I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  13. Focus on Users • 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 I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

  14. Next Steps • To include ROOT commands in tooltips of the GUI widgets • Hide/Show objects • New object editors • Help • HowTo design object editors • Undo/Redo • Style Manager • Fit Panel GUI root[9] gPad->SetLogy(1); I. Antcheva, R. Brun, F. Rademakers ACAT05 DESY, Zeuthen

More Related