SlideShare une entreprise Scribd logo
1  sur  11
Patrick Ruzand, IBM September 16th, 2011 Advanced Symbology with GFX
2 Advanced Symbology with Gfx Agenda Use Case Layout Managers for Gfx Templating Data Binding Conclusion
3 Advanced Symbology with Gfx Use Case Create a data- aware, interactive Diagram visualization component  displays a graphical representation of a static or dynamic data model. enables the user to interact with the graphical representation and the underlying data model  “visualization component” : dijit with rich graphic rendering Example: Visualize an Org Chart, Network monitoring, etc. Symbol = the graphical representation of a data item. a composite shape (complex representation made of multiple shapes) dynamic (dynamic data) logic/behavior May have multiple representations
4 Advanced Symbology with Gfx What we have in gfx, what we need A cross-browser 2D Graphic API Input events support Persistence Composite shapes Layout Template Data Binding
5 Advanced Symbology with Gfx Layout for gfx : overview A mechanism to automatically arrange shapes (position and size) in a container according to a set of constraints Dynamic => bbox changes trigger a new layout Transparent to the user 2 General purpose layout algorithms: Stack and Grid Size and Position set by constraints: H/V alignment: left, center, right, stretch Layout specific: column/row span, padding, gap
6 Advanced Symbology with Gfx Layout for gfx : Layouts Grid Arranges children of a container as grid elements. Properties: padding, margins, h/v alignments Row/column span Stack Arranges children of a container in a horizontal or a vertical stack.  Properties: padding, gap, margins, h/v alignments
7 Advanced Symbology with Gfx Layout for gfx : new API + gfx extensions New API : Layout Algorithm class hierarchy Shape preferred size vs explicit size Invalidate state (default: push invalidate up in the hierarchy, container: request a layout) Layout Engine to handle layout requests Gfx extensions: Text: Multiline text Metrics Auto-wrapping BBox Changed notification BBox caching
8 Advanced Symbology with Gfx Layout for gfx : How it works A Layout Engine Receives the layout requests from containers Layout requests are put in a queue “When available”, processes the pending layout requests Layout process in 2 phases: Compute the children size according to their preferred size and the layout algo. and constraints (bottom to top) layout the children in the available space Demo: gfxpad foo Layout Engine text.setShape({text:’Longer Text’}); text.invalidate() cont.invalidate() Engine.postInvalidate(cont) queue.add(cont) requestUpdate() layoutQueue() cont.layoutMgr.computeSize() text.computePreferredSize() rect.computePreferredSize() cont.layoutMgr.doLayout() text.applyLayout(newBBox) rect.applyLayout(newBBox) Longer Text
9 Advanced Symbology with Gfx Template in gfx Allows to separate the symbol logic/behavior from the graphical representation Based on gfx serialization  + dojoAttachPoint : contract between the logic and the graphic {children:[   { dojoAttachPoint:‘background’;     shape: { type:’rect’}   }, ... ]} + extended attribute Demo container.background.connect(…)
10 Advanced Symbology with Gfx Data Binding The ability to bind a gfx shape property to an object attribute Supports dojo.data, dojo.store and generic object (+ bindable properties) A 2-ways binding Based on DTL engine + extensions for gfx defaultNodeTemplate = [{ shape:{         width:80, height:40, r: "5”,type:'rect'     }, fill: '{{backgroundColor}}',     stroke: {'color': '{{borderColor}}', 'width': 2 }, },{ shape:{         type:’text‘, text:'{{data.label}}', align:'middle'     } }]; Demo: gfxpad
11 Advanced Symbology with Gfx Questions Q&A Contact: patrick.ruzand@fr.ibm.com

Contenu connexe

En vedette

dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.pruzand
 
7 continents - Hebrew Profile
7 continents - Hebrew Profile7 continents - Hebrew Profile
7 continents - Hebrew Profileשבע יבשות
 
Projected av materials
Projected av materialsProjected av materials
Projected av materialsErnani Agulto
 
שחרור סחורה ממכס
שחרור סחורה ממכסשחרור סחורה ממכס
שחרור סחורה ממכסשבע יבשות
 
Projected av materials
Projected av materialsProjected av materials
Projected av materialsErnani Agulto
 
dojox.gfx: what's next, after, later
dojox.gfx: what's next, after, laterdojox.gfx: what's next, after, later
dojox.gfx: what's next, after, laterpruzand
 
מסמכים בסחר חוץ
מסמכים בסחר חוץמסמכים בסחר חוץ
מסמכים בסחר חוץשבע יבשות
 
Kfa investor presentation-march2010
Kfa investor presentation-march2010Kfa investor presentation-march2010
Kfa investor presentation-march2010linkinabhishek12
 

En vedette (9)

dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.
 
7 continents - Hebrew Profile
7 continents - Hebrew Profile7 continents - Hebrew Profile
7 continents - Hebrew Profile
 
Projected av materials
Projected av materialsProjected av materials
Projected av materials
 
שחרור סחורה ממכס
שחרור סחורה ממכסשחרור סחורה ממכס
שחרור סחורה ממכס
 
Projected av materials
Projected av materialsProjected av materials
Projected av materials
 
dojox.gfx: what's next, after, later
dojox.gfx: what's next, after, laterdojox.gfx: what's next, after, later
dojox.gfx: what's next, after, later
 
שטר מטען
שטר מטעןשטר מטען
שטר מטען
 
מסמכים בסחר חוץ
מסמכים בסחר חוץמסמכים בסחר חוץ
מסמכים בסחר חוץ
 
Kfa investor presentation-march2010
Kfa investor presentation-march2010Kfa investor presentation-march2010
Kfa investor presentation-march2010
 

Similaire à Create interactive data visualization with GFX layout, templating and data binding

Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUGIF
 
Spatial Data Integrator - Software Presentation and Use Cases
Spatial Data Integrator - Software Presentation and Use CasesSpatial Data Integrator - Software Presentation and Use Cases
Spatial Data Integrator - Software Presentation and Use Casesmathieuraj
 
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)Oleksii Prohonnyi
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overviewjimliddle
 
Guide to InDesign scripts for enhancing 508 accessibility of pdfs
Guide to InDesign scripts for enhancing 508 accessibility of pdfsGuide to InDesign scripts for enhancing 508 accessibility of pdfs
Guide to InDesign scripts for enhancing 508 accessibility of pdfsMatthew Mariani
 
Web and Android App Development
Web and Android App DevelopmentWeb and Android App Development
Web and Android App DevelopmentGaurav Gopal Gupta
 
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptxRamanathanSabesan
 
Optimizing Flex Applications
Optimizing Flex ApplicationsOptimizing Flex Applications
Optimizing Flex Applicationsdcoletta
 
CAD STANDARDS - SMART MANUFACTURING MECH
CAD STANDARDS - SMART MANUFACTURING MECHCAD STANDARDS - SMART MANUFACTURING MECH
CAD STANDARDS - SMART MANUFACTURING MECHRAJESHS631800
 
GWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTGWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTniloc132
 
Dynamic Graph Plotting with WPF
Dynamic Graph Plotting with WPFDynamic Graph Plotting with WPF
Dynamic Graph Plotting with WPFIJERD Editor
 
GanttChart for IBM Rational ClearQuest ver 1.3.1
GanttChart for IBM Rational ClearQuest ver 1.3.1GanttChart for IBM Rational ClearQuest ver 1.3.1
GanttChart for IBM Rational ClearQuest ver 1.3.1CM-Consult
 
GanttChart for ClearQuest 1.4 and 1.3.1
GanttChart for ClearQuest 1.4 and 1.3.1GanttChart for ClearQuest 1.4 and 1.3.1
GanttChart for ClearQuest 1.4 and 1.3.1Alexander Novichkov
 
Class[3][5th jun] [three js]
Class[3][5th jun] [three js]Class[3][5th jun] [three js]
Class[3][5th jun] [three js]Saajid Akram
 
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DB
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DBBuilding event-driven Serverless Apps with Azure Functions and Azure Cosmos DB
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DBMicrosoft Tech Community
 
Concepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsConcepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsMohammad Liton Hossain
 

Similaire à Create interactive data visualization with GFX layout, templating and data binding (20)

Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
 
Spatial Data Integrator - Software Presentation and Use Cases
Spatial Data Integrator - Software Presentation and Use CasesSpatial Data Integrator - Software Presentation and Use Cases
Spatial Data Integrator - Software Presentation and Use Cases
 
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
 
Synopsis
SynopsisSynopsis
Synopsis
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
 
Guide to InDesign scripts for enhancing 508 accessibility of pdfs
Guide to InDesign scripts for enhancing 508 accessibility of pdfsGuide to InDesign scripts for enhancing 508 accessibility of pdfs
Guide to InDesign scripts for enhancing 508 accessibility of pdfs
 
Web and Android App Development
Web and Android App DevelopmentWeb and Android App Development
Web and Android App Development
 
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx
2GKS, Open GL and IGES_Video Lect Given by Renjin.pptx
 
Optimizing Flex Applications
Optimizing Flex ApplicationsOptimizing Flex Applications
Optimizing Flex Applications
 
CAD STANDARDS - SMART MANUFACTURING MECH
CAD STANDARDS - SMART MANUFACTURING MECHCAD STANDARDS - SMART MANUFACTURING MECH
CAD STANDARDS - SMART MANUFACTURING MECH
 
GWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTGWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXT
 
Dynamic Graph Plotting with WPF
Dynamic Graph Plotting with WPFDynamic Graph Plotting with WPF
Dynamic Graph Plotting with WPF
 
GanttChart for IBM Rational ClearQuest ver 1.3.1
GanttChart for IBM Rational ClearQuest ver 1.3.1GanttChart for IBM Rational ClearQuest ver 1.3.1
GanttChart for IBM Rational ClearQuest ver 1.3.1
 
GanttChart for ClearQuest 1.4 and 1.3.1
GanttChart for ClearQuest 1.4 and 1.3.1GanttChart for ClearQuest 1.4 and 1.3.1
GanttChart for ClearQuest 1.4 and 1.3.1
 
Class[3][5th jun] [three js]
Class[3][5th jun] [three js]Class[3][5th jun] [three js]
Class[3][5th jun] [three js]
 
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DB
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DBBuilding event-driven Serverless Apps with Azure Functions and Azure Cosmos DB
Building event-driven Serverless Apps with Azure Functions and Azure Cosmos DB
 
CGI by rj
CGI by rjCGI by rj
CGI by rj
 
Concepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsConcepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into Maps
 
IRW 2004
IRW  2004IRW  2004
IRW 2004
 
Learning with F#
Learning with F#Learning with F#
Learning with F#
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Create interactive data visualization with GFX layout, templating and data binding

  • 1. Patrick Ruzand, IBM September 16th, 2011 Advanced Symbology with GFX
  • 2. 2 Advanced Symbology with Gfx Agenda Use Case Layout Managers for Gfx Templating Data Binding Conclusion
  • 3. 3 Advanced Symbology with Gfx Use Case Create a data- aware, interactive Diagram visualization component displays a graphical representation of a static or dynamic data model. enables the user to interact with the graphical representation and the underlying data model “visualization component” : dijit with rich graphic rendering Example: Visualize an Org Chart, Network monitoring, etc. Symbol = the graphical representation of a data item. a composite shape (complex representation made of multiple shapes) dynamic (dynamic data) logic/behavior May have multiple representations
  • 4. 4 Advanced Symbology with Gfx What we have in gfx, what we need A cross-browser 2D Graphic API Input events support Persistence Composite shapes Layout Template Data Binding
  • 5. 5 Advanced Symbology with Gfx Layout for gfx : overview A mechanism to automatically arrange shapes (position and size) in a container according to a set of constraints Dynamic => bbox changes trigger a new layout Transparent to the user 2 General purpose layout algorithms: Stack and Grid Size and Position set by constraints: H/V alignment: left, center, right, stretch Layout specific: column/row span, padding, gap
  • 6. 6 Advanced Symbology with Gfx Layout for gfx : Layouts Grid Arranges children of a container as grid elements. Properties: padding, margins, h/v alignments Row/column span Stack Arranges children of a container in a horizontal or a vertical stack.  Properties: padding, gap, margins, h/v alignments
  • 7. 7 Advanced Symbology with Gfx Layout for gfx : new API + gfx extensions New API : Layout Algorithm class hierarchy Shape preferred size vs explicit size Invalidate state (default: push invalidate up in the hierarchy, container: request a layout) Layout Engine to handle layout requests Gfx extensions: Text: Multiline text Metrics Auto-wrapping BBox Changed notification BBox caching
  • 8. 8 Advanced Symbology with Gfx Layout for gfx : How it works A Layout Engine Receives the layout requests from containers Layout requests are put in a queue “When available”, processes the pending layout requests Layout process in 2 phases: Compute the children size according to their preferred size and the layout algo. and constraints (bottom to top) layout the children in the available space Demo: gfxpad foo Layout Engine text.setShape({text:’Longer Text’}); text.invalidate() cont.invalidate() Engine.postInvalidate(cont) queue.add(cont) requestUpdate() layoutQueue() cont.layoutMgr.computeSize() text.computePreferredSize() rect.computePreferredSize() cont.layoutMgr.doLayout() text.applyLayout(newBBox) rect.applyLayout(newBBox) Longer Text
  • 9. 9 Advanced Symbology with Gfx Template in gfx Allows to separate the symbol logic/behavior from the graphical representation Based on gfx serialization + dojoAttachPoint : contract between the logic and the graphic {children:[ { dojoAttachPoint:‘background’; shape: { type:’rect’} }, ... ]} + extended attribute Demo container.background.connect(…)
  • 10. 10 Advanced Symbology with Gfx Data Binding The ability to bind a gfx shape property to an object attribute Supports dojo.data, dojo.store and generic object (+ bindable properties) A 2-ways binding Based on DTL engine + extensions for gfx defaultNodeTemplate = [{ shape:{ width:80, height:40, r: "5”,type:'rect' }, fill: '{{backgroundColor}}', stroke: {'color': '{{borderColor}}', 'width': 2 }, },{ shape:{ type:’text‘, text:'{{data.label}}', align:'middle' } }]; Demo: gfxpad
  • 11. 11 Advanced Symbology with Gfx Questions Q&A Contact: patrick.ruzand@fr.ibm.com