SlideShare a Scribd company logo
1 of 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

More Related Content

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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#
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

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