SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Flex Enterprise & Data Visualization:
     Going one step further with
          IBM ILOG Elixir


                                                                       May 18, 2009

                                                                    Christophe Jolif
                                                        christophe.jolif@fr.ibm.com
                                             http://blogs.ilog.com/elixir/author/cjolif

               © ILOG, All rights reserved
Agenda

        IBM ILOG Elixir in Nutshell
        IBM ILOG Elixir Tips & Tricks:
              From 2D to 3D Charts
              Building a Custom Gauge
              Expand/Collapse on the OrgChart
              Create a custom Map dashboard
              Your Google Calendar in AIR
              Density Heatmap of Flickr photos
              Display scheduling information from MS Project
        What’s Next?
              Building on top of Flex 4
              Leveraging Flash Player 10
              What do you need from us?
        Resources


05/14/2009                             © ILOG, All rights reserved   2
IBM ILOG Elixir in a Nutshell

        Provide every Flex & AIR developer with custom Flex UI
         components useful for complementing Adobe offering
         for all type of applications from data visualization to
         enterprise applications
        ILOG Elixir 1.0 released in Feb 2008 based on Flex
         3.0.0
              patch 1 released in May 2008
              patch 2 released in March 2009
        ILOG Elixir 2.0 released in Feb 2009 based on Flex
         3.0.2



05/14/2009                          © ILOG, All rights reserved   3
IBM ILOG Elixir in a Nutshell

        3D Charts (Area, Line,
         Column, Bar & Pie)
                  Demo


        Radar / Spider Chart
                  Demo


        OLAP and Pivot Charts
         (new in 2.0)
                  Demo


05/14/2009                      © ILOG, All rights reserved   4
IBM ILOG Elixir in a Nutshell

        Maps for Dashboards
                            Demo
        Heat Maps


        Gauges and Dials

                             Demo
        Digital Indicators (new in 2.0)




05/14/2009                  © ILOG, All rights reserved   5
IBM ILOG Elixir in a Nutshell

        Calendar (new in 2.0)
                 Demo


        Gantt Resource Chart
                 Demo



        Gantt Task Chart (new in
         2.0)
                 Demo


05/14/2009                       © ILOG, All rights reserved   6
IBM ILOG Elixir in a Nutshell

        Organization Chart
               Demo



        Treemap
               Demo




05/14/2009                © ILOG, All rights reserved   7
IBM ILOG Elixir in a Nutshell

        Flex Builder tight integration:
              design view
              property editing
              code & mxml hinting
              integrated documentation
        Full integration with Flex framework and practices:
              Follow Flex UIComponent convention for events, styling and
               invalidation mechanisms
              Fully localizable, provided with en_US and ja_JP locales
              Keyboard accessibility for most components
              Flex 3.0.2 Marshall Plan support for cross-versioning and cross-
               domain applications (2.0)



05/14/2009                           © ILOG, All rights reserved            8
IBM ILOG Elixir in a Nutshell

        Delivered with code samples and demos
        Learn by examples in                      on
         AIR or on the web at: http://www.adobe.com/
         devnet/flex/tourdeflex/web
        Dedicated forums at http://forums.ilog.com/elixir
         and blog at http://blogs.ilog.com/elixir




05/14/2009                  © ILOG, All rights reserved   9
Tips & Tricks – From 2D to 3D Charts
       Original:
       <mx:ColumnChart id=quot;columnquot; showDataTips=quot;truequot; dataProvider=quot;{medalsAC}quot; >
        <mx:horizontalAxis>
           <mx:CategoryAxis categoryField=quot;Countryquot;/>
         </mx:horizontalAxis>
         <mx:series>
          <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Goldquot; displayName=quot;Goldquot;
            fill=quot;{sc1}quot; stroke=quot;{s1}quot; />
             <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Silverquot; displayName=quot;Silverquot;
              fill=quot;{sc2}quot; stroke=quot;{s2}quot; />
           <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Bronzequot; displayName=quot;Bronzequot;
            fill=quot;{sc3}quot; stroke=quot;{s3}quot; />
         </mx:series>
       </mx:ColumnChart>
       <mx:Legend dataProvider=quot;{column}quot;/>




05/14/2009                                 © ILOG, All rights reserved                10
Tips & Tricks – From 2D to 3D Charts
       Result:
       <ilog:ColumnChart3D id=quot;columnquot; showDataTips=quot;truequot; dataProvider=quot;{medalsAC}quot; >
         <ilog:horizontalAxis>
           <mx:CategoryAxis categoryField=quot;Countryquot;/>
         </ilog:horizontalAxis>
         <ilog:series>
           <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Goldquot; displayName=quot;Goldquot;
              fill=quot;{sc1}quot; stroke=quot;{s1}quot; />
             <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Silverquot; displayName=quot;Silverquot;
                fill=quot;{sc2}quot; stroke=quot;{s2}quot; />
           <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Bronzequot; displayName=quot;Bronzequot;
              fill=quot;{sc3}quot; stroke=quot;{s3}quot; />
         </ilog:series>
       </ilog:ColumnChart3D>
       <mx:Legend dataProvider=quot;{column}quot;/>




05/14/2009                                 © ILOG, All rights reserved                    11
Tips & Tricks – From 2D to 3D Charts




   But we do not provide 3D API for customizing your display,
    so you can't switch itemRenderer just play with styling
    properties (fill, stroke…)
   Also items are not UIComponents, so you must use chart
    specific events & effects like itemClick, showDataEffect …
    not UIComponents events & effects (click, showEffect…)

05/14/2009                 © ILOG, All rights reserved    12
Tips & Tricks – Building a Custom Gauge

        IBM ILOG Elixir provides with with predefined
         Circular, Semi Circular, Horizontal and Vertical
         Gauges
        They fit most simple use-cases but you might want
         more, like mutli-value gauges
        Just assemble MXML elements and you’ll be able to
         achieve what you need using the Gauges framework




05/14/2009                    © ILOG, All rights reserved    13
Tips & Tricks – Building a Custom Gauge
 <ilog:CircularGauge color=quot;0xFFFFFFquot;>
  <ilog:scales>
    <ilog:CircularLinearScale maximum=quot;250quot; id=quot;speedScalequot;
        startAngle=quot;200quot; endAngle=quot;340quot;/>
    <ilog:CircularLinearScale maximum=quot;100quot; id=quot;fuelScalequot;
         startAngle=quot;140quot; endAngle=quot;40quot;
         majorTickInterval=quot;50quot; minorTickInterval=quot;25quot; />
   </ilog:scales>
   <ilog:elements>
     <ilog:CircularGaugeAsset asset=quot;@Embed(source='black_circle.swf')quot;/>
     <ilog:CircularScaleRenderer radius=quot;35%quot; scale=quot;{speedScale}quot;
         labelRadius=quot;102%quot; labelPlacement=quot;outsidequot;
         minorTickLength=quot;10%quot; labelFontSize=quot;12%quot; fontWeight=quot;boldquot;
         majorTickRenderer=quot;{myTickRenderer}quot;
         minorTickRenderer=quot;{myTickRenderer}quot; />
      <ilog:CircularTrackRenderer minimum=quot;150quot; maximum=quot;250quot;
         radius=quot;28%quot; scale=quot;{speedScale}quot;>
         <ilog:gradientEntries>
           <mx:GradientEntry color=quot;0x00DD00quot; ratio=quot;0quot;/>
           <mx:GradientEntry color=quot;0xDDD000quot; ratio=quot;0.5quot;/>
           <mx:GradientEntry color=quot;0xDD0000quot; ratio=quot;1quot;/>
         </ilog:gradientEntries>
      </ilog:CircularTrackRenderer>
      <ilog:NeedleRenderer thickness=quot;7%quot; radius=quot;30%quot;
         value=quot;{speed.value}quot; scale=quot;{speedScale}quot;/>
       <!-- and more -->
    </ilog:elements>
 </ilog:CircularGauge>




05/14/2009                                         © ILOG, All rights reserved   14
Tips & Tricks – Expand/Collapse on the OrgChart

        By default the OrgChart is displaying the entire
         OrgChart hierarchy available in dataProvider
        You might want to display only down to a certain level
         and provide expand/collapse ability
        What you need:
             1.The ability to filter the data depending on whether children are
               expanded or collapsed
             2.The ability for the user to interact with the OrgChart to target an
               expand or a collapse action
        How do you achieve this?
             1.By using a filterFunction on ICollectionView
             2.By providing a custom OrgChartItemRenderer with a +/- button
        Let's take a look at the code & result!

05/14/2009                            © ILOG, All rights reserved             15
Tips & Tricks – Expand/Collapse on the OrgChart




05/14/2009             © ILOG, All rights reserved   16
Tips & Tricks – Create a custom Map dashboard

       Workflow:

       1. Create or get your map in ESRI SHP file format
       2. Import it in IBM ILOG Elixir Custom Map Converter
       3. Set Parameters
       4. Export it as ActionScript
       5. Include it in your Flex Builder Project
       6. Use it in your MXML/AS code to represent dashboard
          data

       Let's do it live!


05/14/2009                   © ILOG, All rights reserved   17
Tips & Tricks – Create a custom Map dashboard




05/14/2009            © ILOG, All rights reserved   18
Tips & Tricks – Your Google Calendar in AIR

        IBM ILOG Elixir Calendar component is taking any Flex data as
         input in a form of a list of quot;eventsquot; with optional recurrence
         information
        That input must be provided as XML or ActionScript object in the
         dataProvider, just a for any data-aware Flex component
        Two approaches:
             1. Reading the iCal feed or exported file from Google Calendar:
                  Allows to mashup from different iCal sources
             2. Using the Google Calendar API
                  More integrated with Google Calendar (authentication etc...)




05/14/2009                                © ILOG, All rights reserved             19
Tips & Tricks – Your Google Calendar in AIR

       Reading iCal feed or exported file
        Google Calendar export to iCal that is a simple
         definition format for events
        Creating a dataProvider from iCal events is a matter of
         reading TXT and creating AS objects
        For the recurrence information it could be a bit more
         complex:
              One can provide any format of recurrence by providing his own
               IRecurrenceDescriptor to the IBM ILOG Elixir Calendar
              However default IRecurrenceDescriptor implementation is
               RFC2445 based so it is not needed to go as far




05/14/2009                          © ILOG, All rights reserved          20
Tips & Tricks – Your Google Calendar in AIR

       Reading iCal feed or exported file
        Google Calendar provides a Web Service API: http://
         code.google.com/apis/calendar/docs/2.0/
         developers_guide_protocol.html
        Create an ActionScript wrapper that calls this web
         service and exposes result as ActionScript objects
        As in previous case, configure the IBM ILOG Elixir
         Calendar with the right dataProvider
        More on this at: http://blogs.ilog.com/elixir/2009/03/16/
         display-google-calendars-using-ilog-elixir



05/14/2009                      © ILOG, All rights reserved     21
Tips & Tricks – Your Google Calendar in AIR




05/14/2009             © ILOG, All rights reserved   22
Tips & Tricks – Density Heatmap of Flickr photos

        The HeatMap principle:
              Displaying the densities or values of data objects using color at given
               location (optionally over a map)
              In our case this is the density of photos taken at given geolocation and
               available on Flickr over a map
        How do you achieve this?
              We create a MapHeatMap with a USStatesMap and a DensityHeatMap
               and configure the heatmap to take location information in longitude &
               latitude properties of the data objects
              We extend Flickr2AS API to manage Flickr quot;Placequot; API
              We request to Flickr photos over a particular quot;Placequot; using that API
               (US in our case)
              We iterate over the results (paged results) and populate the data
               provider of the DensityHeatMap with them as they correctly use
               longitude & latitude properties
              We just look at the result


05/14/2009                              © ILOG, All rights reserved                23
Tips & Tricks – Density Heatmap of Flickr photos




05/14/2009             © ILOG, All rights reserved   24
Tips & Tricks – Display scheduling information from MS Project


        IBM ILOG Elixir TaskChart control displays scheduling information
        MS Project is a widespread tool for building schedules
        How can your Flex/AIR application displays schedule coming from
         MS Project?
        Follow these steps:
             1.   Export from MS Project using their XML format
             2.   Add an IBM ILOG Elixir TaskChart to your application
             3.   Read the XML in your AIR/Flex Application
             4.   Using E4X get information from the XML and populate the TaskChart
                  with it:
                    Activities information
                    Constraints information (which activity must be completed before
                       which one)




05/14/2009                               © ILOG, All rights reserved              25
Tips & Tricks – Display scheduling information from MS Project




05/14/2009                      © ILOG, All rights reserved      26
What's next? - Building on top of Flex 4

        Adobe intends to release Flex 4 in fall 2009
        What could we do?
             1. Use FXG for skinning components/renders
                   You get that for free, check our blog for sample of styling an IBM
                    ILOG Elixir 2.0 Gauge with FXG
             2. Rebuild our components using Spark component model:
                   inheriting from FxComponent or FxDataContainer
                   accepting FXG Group for skins and ItemRenderer (extends
                    Group) for item renderers
             3. Integrate into Flash Catalyst?
                   should not be extensible in its first incarnation, need to wait for
                    future version




05/14/2009                               © ILOG, All rights reserved                 27
What's next? - Leveraging Flash Player 10

        Gumbo will require Flash Player 10 => we can rely on
         Flash Player 10 APIs for Okra
        What can we do?
             1. Use Vector.<> in place of Array:
                   Significant performance improvement on intensive Array-based
                    computations like renderers layout computations (OrgChart)
             2. Use Vector3D in 3D Charts:
                   Remove our own implementation => reduce SWF size, improve
                    performance
             3. Leverage 3D transformations in 3D Charts:
                   Remove several classes => reduce SWF size
                   Significant work compare to previous improvements
             4. Leverage bidi text in all components?
                   Let's see how Adobe integrates bidi in Flex text component and
                    use this
                   Will only be part of Flex 4.1 not 4.0


05/14/2009                             © ILOG, All rights reserved             28
What's next? - What do you need from us?

        You can help!
        Please contribute at http://elixir-bugs.ilog.com
         and http://forums.ilog.com/elixir
        Some external feedback examples taken from
         Jira / forums:
              Resource / Task Chart printing
              Resource Chart activities layout
              Screen reader support
              QTP support


05/14/2009                       © ILOG, All rights reserved   29
Resources

        Get more information & IBM ILOG Elixir 2.0 Free Trial
         on the Developer Center
        http://www.ilog.com/dev/ilogelixir/
        Discuss with other users and IBM ILOG Elixir Team on
         the forum
        http://forums.ilog.com/elixir
        Read IBM ILOG Elixir Team blog for regular updates
         and usage samples
        http://blogs.ilog.com/elixir
        Report issues on our Jira bug base
        http://elixir-bugs.ilog.com

05/14/2009                      © ILOG, All rights reserved   30
Questions & Answers


      Thank You




      © ILOG, All rights reserved

Mais conteúdo relacionado

Semelhante a Christophe Jolif - Flex Data Visualization going one step further with IBM ILOG Elixir

07 Collada Overview
07 Collada Overview07 Collada Overview
07 Collada Overview
johny2008
 
Sergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample SdkSergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample Sdk
Ajax Experience 2009
 
MS Dynamics CRM 2011 Technical
MS Dynamics CRM 2011 TechnicalMS Dynamics CRM 2011 Technical
MS Dynamics CRM 2011 Technical
AnilCSlides
 

Semelhante a Christophe Jolif - Flex Data Visualization going one step further with IBM ILOG Elixir (20)

Ilog Ria2
Ilog Ria2Ilog Ria2
Ilog Ria2
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
07 Collada Overview
07 Collada Overview07 Collada Overview
07 Collada Overview
 
Blueprint talk at Open Hackday London 2009
Blueprint talk at Open Hackday London 2009Blueprint talk at Open Hackday London 2009
Blueprint talk at Open Hackday London 2009
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
 
Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...
 
Expanding a tree node
Expanding a tree nodeExpanding a tree node
Expanding a tree node
 
Sergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample SdkSergey Ilinsky Presentation Ample Sdk
Sergey Ilinsky Presentation Ample Sdk
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
2009 Java One State Of The Open Web
2009 Java One State Of The Open Web2009 Java One State Of The Open Web
2009 Java One State Of The Open Web
 
Looking into HTML5
Looking into HTML5Looking into HTML5
Looking into HTML5
 
JSON Viewer XPATH Workbook
JSON Viewer XPATH WorkbookJSON Viewer XPATH Workbook
JSON Viewer XPATH Workbook
 
20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science20200402 oracle cloud infrastructure data science
20200402 oracle cloud infrastructure data science
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)
 
MS Dynamics CRM 2011 Technical
MS Dynamics CRM 2011 TechnicalMS Dynamics CRM 2011 Technical
MS Dynamics CRM 2011 Technical
 
ITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c featuresITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c features
 
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowHow to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
 
ITALY
ITALYITALY
ITALY
 
HTML5 and Other Modern Browser Game Tech
HTML5 and Other Modern Browser Game TechHTML5 and Other Modern Browser Game Tech
HTML5 and Other Modern Browser Game Tech
 

Mais de 360|Conferences

Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
360|Conferences
 

Mais de 360|Conferences (20)

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
 
Unlocking Android
Unlocking AndroidUnlocking Android
Unlocking Android
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
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
 
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?
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Christophe Jolif - Flex Data Visualization going one step further with IBM ILOG Elixir

  • 1. Flex Enterprise & Data Visualization: Going one step further with IBM ILOG Elixir May 18, 2009 Christophe Jolif christophe.jolif@fr.ibm.com http://blogs.ilog.com/elixir/author/cjolif © ILOG, All rights reserved
  • 2. Agenda  IBM ILOG Elixir in Nutshell  IBM ILOG Elixir Tips & Tricks:  From 2D to 3D Charts  Building a Custom Gauge  Expand/Collapse on the OrgChart  Create a custom Map dashboard  Your Google Calendar in AIR  Density Heatmap of Flickr photos  Display scheduling information from MS Project  What’s Next?  Building on top of Flex 4  Leveraging Flash Player 10  What do you need from us?  Resources 05/14/2009 © ILOG, All rights reserved 2
  • 3. IBM ILOG Elixir in a Nutshell  Provide every Flex & AIR developer with custom Flex UI components useful for complementing Adobe offering for all type of applications from data visualization to enterprise applications  ILOG Elixir 1.0 released in Feb 2008 based on Flex 3.0.0  patch 1 released in May 2008  patch 2 released in March 2009  ILOG Elixir 2.0 released in Feb 2009 based on Flex 3.0.2 05/14/2009 © ILOG, All rights reserved 3
  • 4. IBM ILOG Elixir in a Nutshell  3D Charts (Area, Line, Column, Bar & Pie) Demo  Radar / Spider Chart Demo  OLAP and Pivot Charts (new in 2.0) Demo 05/14/2009 © ILOG, All rights reserved 4
  • 5. IBM ILOG Elixir in a Nutshell  Maps for Dashboards Demo  Heat Maps  Gauges and Dials Demo  Digital Indicators (new in 2.0) 05/14/2009 © ILOG, All rights reserved 5
  • 6. IBM ILOG Elixir in a Nutshell  Calendar (new in 2.0) Demo  Gantt Resource Chart Demo  Gantt Task Chart (new in 2.0) Demo 05/14/2009 © ILOG, All rights reserved 6
  • 7. IBM ILOG Elixir in a Nutshell  Organization Chart Demo  Treemap Demo 05/14/2009 © ILOG, All rights reserved 7
  • 8. IBM ILOG Elixir in a Nutshell  Flex Builder tight integration:  design view  property editing  code & mxml hinting  integrated documentation  Full integration with Flex framework and practices:  Follow Flex UIComponent convention for events, styling and invalidation mechanisms  Fully localizable, provided with en_US and ja_JP locales  Keyboard accessibility for most components  Flex 3.0.2 Marshall Plan support for cross-versioning and cross- domain applications (2.0) 05/14/2009 © ILOG, All rights reserved 8
  • 9. IBM ILOG Elixir in a Nutshell  Delivered with code samples and demos  Learn by examples in on AIR or on the web at: http://www.adobe.com/ devnet/flex/tourdeflex/web  Dedicated forums at http://forums.ilog.com/elixir and blog at http://blogs.ilog.com/elixir 05/14/2009 © ILOG, All rights reserved 9
  • 10. Tips & Tricks – From 2D to 3D Charts Original: <mx:ColumnChart id=quot;columnquot; showDataTips=quot;truequot; dataProvider=quot;{medalsAC}quot; > <mx:horizontalAxis> <mx:CategoryAxis categoryField=quot;Countryquot;/> </mx:horizontalAxis> <mx:series> <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Goldquot; displayName=quot;Goldquot; fill=quot;{sc1}quot; stroke=quot;{s1}quot; /> <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Silverquot; displayName=quot;Silverquot; fill=quot;{sc2}quot; stroke=quot;{s2}quot; /> <mx:ColumnSeries xField=quot;Countryquot; yField=quot;Bronzequot; displayName=quot;Bronzequot; fill=quot;{sc3}quot; stroke=quot;{s3}quot; /> </mx:series> </mx:ColumnChart> <mx:Legend dataProvider=quot;{column}quot;/> 05/14/2009 © ILOG, All rights reserved 10
  • 11. Tips & Tricks – From 2D to 3D Charts Result: <ilog:ColumnChart3D id=quot;columnquot; showDataTips=quot;truequot; dataProvider=quot;{medalsAC}quot; > <ilog:horizontalAxis> <mx:CategoryAxis categoryField=quot;Countryquot;/> </ilog:horizontalAxis> <ilog:series> <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Goldquot; displayName=quot;Goldquot; fill=quot;{sc1}quot; stroke=quot;{s1}quot; /> <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Silverquot; displayName=quot;Silverquot; fill=quot;{sc2}quot; stroke=quot;{s2}quot; /> <ilog:ColumnSeries3D xField=quot;Countryquot; yField=quot;Bronzequot; displayName=quot;Bronzequot; fill=quot;{sc3}quot; stroke=quot;{s3}quot; /> </ilog:series> </ilog:ColumnChart3D> <mx:Legend dataProvider=quot;{column}quot;/> 05/14/2009 © ILOG, All rights reserved 11
  • 12. Tips & Tricks – From 2D to 3D Charts  But we do not provide 3D API for customizing your display, so you can't switch itemRenderer just play with styling properties (fill, stroke…)  Also items are not UIComponents, so you must use chart specific events & effects like itemClick, showDataEffect … not UIComponents events & effects (click, showEffect…) 05/14/2009 © ILOG, All rights reserved 12
  • 13. Tips & Tricks – Building a Custom Gauge  IBM ILOG Elixir provides with with predefined Circular, Semi Circular, Horizontal and Vertical Gauges  They fit most simple use-cases but you might want more, like mutli-value gauges  Just assemble MXML elements and you’ll be able to achieve what you need using the Gauges framework 05/14/2009 © ILOG, All rights reserved 13
  • 14. Tips & Tricks – Building a Custom Gauge <ilog:CircularGauge color=quot;0xFFFFFFquot;> <ilog:scales> <ilog:CircularLinearScale maximum=quot;250quot; id=quot;speedScalequot; startAngle=quot;200quot; endAngle=quot;340quot;/> <ilog:CircularLinearScale maximum=quot;100quot; id=quot;fuelScalequot; startAngle=quot;140quot; endAngle=quot;40quot; majorTickInterval=quot;50quot; minorTickInterval=quot;25quot; /> </ilog:scales> <ilog:elements> <ilog:CircularGaugeAsset asset=quot;@Embed(source='black_circle.swf')quot;/> <ilog:CircularScaleRenderer radius=quot;35%quot; scale=quot;{speedScale}quot; labelRadius=quot;102%quot; labelPlacement=quot;outsidequot; minorTickLength=quot;10%quot; labelFontSize=quot;12%quot; fontWeight=quot;boldquot; majorTickRenderer=quot;{myTickRenderer}quot; minorTickRenderer=quot;{myTickRenderer}quot; /> <ilog:CircularTrackRenderer minimum=quot;150quot; maximum=quot;250quot; radius=quot;28%quot; scale=quot;{speedScale}quot;> <ilog:gradientEntries> <mx:GradientEntry color=quot;0x00DD00quot; ratio=quot;0quot;/> <mx:GradientEntry color=quot;0xDDD000quot; ratio=quot;0.5quot;/> <mx:GradientEntry color=quot;0xDD0000quot; ratio=quot;1quot;/> </ilog:gradientEntries> </ilog:CircularTrackRenderer> <ilog:NeedleRenderer thickness=quot;7%quot; radius=quot;30%quot; value=quot;{speed.value}quot; scale=quot;{speedScale}quot;/> <!-- and more --> </ilog:elements> </ilog:CircularGauge> 05/14/2009 © ILOG, All rights reserved 14
  • 15. Tips & Tricks – Expand/Collapse on the OrgChart  By default the OrgChart is displaying the entire OrgChart hierarchy available in dataProvider  You might want to display only down to a certain level and provide expand/collapse ability  What you need: 1.The ability to filter the data depending on whether children are expanded or collapsed 2.The ability for the user to interact with the OrgChart to target an expand or a collapse action  How do you achieve this? 1.By using a filterFunction on ICollectionView 2.By providing a custom OrgChartItemRenderer with a +/- button  Let's take a look at the code & result! 05/14/2009 © ILOG, All rights reserved 15
  • 16. Tips & Tricks – Expand/Collapse on the OrgChart 05/14/2009 © ILOG, All rights reserved 16
  • 17. Tips & Tricks – Create a custom Map dashboard Workflow: 1. Create or get your map in ESRI SHP file format 2. Import it in IBM ILOG Elixir Custom Map Converter 3. Set Parameters 4. Export it as ActionScript 5. Include it in your Flex Builder Project 6. Use it in your MXML/AS code to represent dashboard data Let's do it live! 05/14/2009 © ILOG, All rights reserved 17
  • 18. Tips & Tricks – Create a custom Map dashboard 05/14/2009 © ILOG, All rights reserved 18
  • 19. Tips & Tricks – Your Google Calendar in AIR  IBM ILOG Elixir Calendar component is taking any Flex data as input in a form of a list of quot;eventsquot; with optional recurrence information  That input must be provided as XML or ActionScript object in the dataProvider, just a for any data-aware Flex component  Two approaches: 1. Reading the iCal feed or exported file from Google Calendar:  Allows to mashup from different iCal sources 2. Using the Google Calendar API  More integrated with Google Calendar (authentication etc...) 05/14/2009 © ILOG, All rights reserved 19
  • 20. Tips & Tricks – Your Google Calendar in AIR Reading iCal feed or exported file  Google Calendar export to iCal that is a simple definition format for events  Creating a dataProvider from iCal events is a matter of reading TXT and creating AS objects  For the recurrence information it could be a bit more complex:  One can provide any format of recurrence by providing his own IRecurrenceDescriptor to the IBM ILOG Elixir Calendar  However default IRecurrenceDescriptor implementation is RFC2445 based so it is not needed to go as far 05/14/2009 © ILOG, All rights reserved 20
  • 21. Tips & Tricks – Your Google Calendar in AIR Reading iCal feed or exported file  Google Calendar provides a Web Service API: http:// code.google.com/apis/calendar/docs/2.0/ developers_guide_protocol.html  Create an ActionScript wrapper that calls this web service and exposes result as ActionScript objects  As in previous case, configure the IBM ILOG Elixir Calendar with the right dataProvider  More on this at: http://blogs.ilog.com/elixir/2009/03/16/ display-google-calendars-using-ilog-elixir 05/14/2009 © ILOG, All rights reserved 21
  • 22. Tips & Tricks – Your Google Calendar in AIR 05/14/2009 © ILOG, All rights reserved 22
  • 23. Tips & Tricks – Density Heatmap of Flickr photos  The HeatMap principle:  Displaying the densities or values of data objects using color at given location (optionally over a map)  In our case this is the density of photos taken at given geolocation and available on Flickr over a map  How do you achieve this?  We create a MapHeatMap with a USStatesMap and a DensityHeatMap and configure the heatmap to take location information in longitude & latitude properties of the data objects  We extend Flickr2AS API to manage Flickr quot;Placequot; API  We request to Flickr photos over a particular quot;Placequot; using that API (US in our case)  We iterate over the results (paged results) and populate the data provider of the DensityHeatMap with them as they correctly use longitude & latitude properties  We just look at the result 05/14/2009 © ILOG, All rights reserved 23
  • 24. Tips & Tricks – Density Heatmap of Flickr photos 05/14/2009 © ILOG, All rights reserved 24
  • 25. Tips & Tricks – Display scheduling information from MS Project  IBM ILOG Elixir TaskChart control displays scheduling information  MS Project is a widespread tool for building schedules  How can your Flex/AIR application displays schedule coming from MS Project?  Follow these steps: 1. Export from MS Project using their XML format 2. Add an IBM ILOG Elixir TaskChart to your application 3. Read the XML in your AIR/Flex Application 4. Using E4X get information from the XML and populate the TaskChart with it:  Activities information  Constraints information (which activity must be completed before which one) 05/14/2009 © ILOG, All rights reserved 25
  • 26. Tips & Tricks – Display scheduling information from MS Project 05/14/2009 © ILOG, All rights reserved 26
  • 27. What's next? - Building on top of Flex 4  Adobe intends to release Flex 4 in fall 2009  What could we do? 1. Use FXG for skinning components/renders  You get that for free, check our blog for sample of styling an IBM ILOG Elixir 2.0 Gauge with FXG 2. Rebuild our components using Spark component model:  inheriting from FxComponent or FxDataContainer  accepting FXG Group for skins and ItemRenderer (extends Group) for item renderers 3. Integrate into Flash Catalyst?  should not be extensible in its first incarnation, need to wait for future version 05/14/2009 © ILOG, All rights reserved 27
  • 28. What's next? - Leveraging Flash Player 10  Gumbo will require Flash Player 10 => we can rely on Flash Player 10 APIs for Okra  What can we do? 1. Use Vector.<> in place of Array:  Significant performance improvement on intensive Array-based computations like renderers layout computations (OrgChart) 2. Use Vector3D in 3D Charts:  Remove our own implementation => reduce SWF size, improve performance 3. Leverage 3D transformations in 3D Charts:  Remove several classes => reduce SWF size  Significant work compare to previous improvements 4. Leverage bidi text in all components?  Let's see how Adobe integrates bidi in Flex text component and use this  Will only be part of Flex 4.1 not 4.0 05/14/2009 © ILOG, All rights reserved 28
  • 29. What's next? - What do you need from us?  You can help!  Please contribute at http://elixir-bugs.ilog.com and http://forums.ilog.com/elixir  Some external feedback examples taken from Jira / forums:  Resource / Task Chart printing  Resource Chart activities layout  Screen reader support  QTP support 05/14/2009 © ILOG, All rights reserved 29
  • 30. Resources  Get more information & IBM ILOG Elixir 2.0 Free Trial on the Developer Center  http://www.ilog.com/dev/ilogelixir/  Discuss with other users and IBM ILOG Elixir Team on the forum  http://forums.ilog.com/elixir  Read IBM ILOG Elixir Team blog for regular updates and usage samples  http://blogs.ilog.com/elixir  Report issues on our Jira bug base  http://elixir-bugs.ilog.com 05/14/2009 © ILOG, All rights reserved 30
  • 31. Questions & Answers Thank You © ILOG, All rights reserved