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

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
Ernani Agulto
 
Projected av materials
Projected av materialsProjected av materials
Projected av materials
Ernani Agulto
 
Kfa investor presentation-march2010
Kfa investor presentation-march2010Kfa investor presentation-march2010
Kfa investor presentation-march2010
linkinabhishek12
 

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 à Dojoconf 2011:Advanced Symbology with gfx

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
UGIF
 
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
mathieuraj
 
Web and Android App Development
Web and Android App DevelopmentWeb and Android App Development
Web and Android App Development
Gaurav Gopal Gupta
 
GWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTGWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXT
niloc132
 

Similaire à Dojoconf 2011:Advanced Symbology with gfx (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

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Dojoconf 2011:Advanced Symbology with gfx

  • 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