SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
Thursday, November 3, 2011
Ext GWT 3.0
                             Darrell Meyer, Sencha



             darrell@sencha.com                 @darrellmeyer




Thursday, November 3, 2011
Overview
                              Release Goals
                             Feature Overview
                             Release Timeline




Thursday, November 3, 2011
Name Games

                             Google Web Toolkit     “G-W-T”        “Gwit”




                                 Ext GWT          “E-X-T-G-W-T”   “X-Gwit” “G-X-T”




Thursday, November 3, 2011
Ext GWT 3.0 Goals




Thursday, November 3, 2011
Primary Goals

       Leverage the power of GWT and its compiler
       Use GWT API’s where applicable for better interoperability
       Integrate and support best practices of GWT
       Build and release through Maven




Thursday, November 3, 2011
Syncing with GWT

                                          GXT 2.0     GXT 3.0
                     Events & Listeners   Custom        GWT
                             Rendering    Deferred      Direct
                        Interface Based     No           Yes
                              Models      Custom        POJO
                      UiBinder Support      No           Yes
                      SafeHtml Support      No           Yes
                   GWT Based Charts        Flash         Yes
                             Theming      Custom     ClientBundle

Thursday, November 3, 2011
Feature Overview




Thursday, November 3, 2011
Features
                                     Models
                               Stores & Loaders
                                   Templates
                                Widget Changes
                              Cells & Cell Widgets
                                    Layouts
                                    UiBinder
                                     Charts
                             Theming & Appearance


Thursday, November 3, 2011
Models




Thursday, November 3, 2011
Model Support

      2.0
      Forced users to work with GXT Models
      Models kept internal map for data
      Not strongly typed

      3.0
      Full support for any POJO
      Supports RPC, RequestFactory, AutoBeans
      Data Stores take any object type




Thursday, November 3, 2011
Server Communications



                 Transport                   Data Type
                    RPC                       POJOs
              RequestFactory          EntityProxy / AutoBean
        RequestBuilder (XML / JSON)    Interface / AutoBean




Thursday, November 3, 2011
ValueProvider
       Allows access to an object’s property
       Supports string based path
       Supports nested properties
       Can be created directly
       Can be created by generator




Thursday, November 3, 2011
ValueProvider
       Allows access to an object’s property
       Supports string based path
       Supports nested properties
       Can be created directly
       Can be created by generator




Thursday, November 3, 2011
ValueProvider

              interface PostProperties extends PropertyAccess<Post> {

                   ValueProvider<Post, String> username();

                   ValueProvider<Post, String> forum();

                   ValueProvider<Post, Date> date();
              }

              // create properties instance via deferred binding
              PostProperties props = GWT.create(PostProperties.class);

              // use value providers
              new ColumnConfig<Post, String>(props.forum(), 150, "Forum");




Thursday, November 3, 2011
Stores & Loaders




Thursday, November 3, 2011
Stores
      Stores are client-side collections of data
      Filtering and sorting
      Change events
      Accept any object type
      Data widgets are bound to stores



                                         Store




                             ListStore           TreeStore



Thursday, November 3, 2011
Loaders
      Loader: Builds requests, sends to DataProxy
      DataProxy: Makes request to server
      DataReader: Translates wire-format to objects
      DataWriter: Translates objects to wire-format




                                         Loader




                             DataProxy            DataReader




Thursday, November 3, 2011
Loader Interaction




Thursday, November 3, 2011
Loader Interaction


                 Loader




Thursday, November 3, 2011
Loader Interaction


                 Loader      DataProxy




Thursday, November 3, 2011
Loader Interaction


                 Loader      DataProxy   Server




Thursday, November 3, 2011
Loader Interaction


                 Loader      DataProxy   Server




Thursday, November 3, 2011
Loader Interaction


                 Loader      DataProxy   Server




Thursday, November 3, 2011
Loader Interaction


                 Loader                   DataProxy   Server
                             DataReader




Thursday, November 3, 2011
DataProxy Example
   HttpProxy works with GWT RequestBuilder
   The type parameters defines the input and return type




   String path = "data/data.xml";

   RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path);

   HttpProxy<ListLoadConfig> proxy = new HttpProxy<ListLoadConfig>(builder);




Thursday, November 3, 2011
DataReader Example
  Reader “transforms” data
  Most String readers use AutoBeans



   reader = new XmlReader<ListLoadResult<Email>, EmailCollection>(factory,
       EmailCollection.class) {

                protected ListLoadResult<Email> createReturnData(Object loadConfig,
                     EmailCollection records) {
                   return new BaseListLoadResult<Email>(records.getValues());
                };

   };



Thursday, November 3, 2011
DataLoader Example


 loader = new ListLoader<ListLoadConfig, ListLoadResult<Email>>(
         proxy, reader);
 loader.addLoadHandler(new LoadResultListStoreBinding<ListLoadConfig,
                               Email, ListLoadResult<Email>>(store));
 loader.load();




Thursday, November 3, 2011
DataWriter

   Turns logical data into format to be sent back to server
   Reverse behavior of DataReaders
   Example use with LoadConfig object sent to server



                                DataWriter



                              AutoBeanWriter



               JsonWriter    UrlEncodingWriter   XmlWriter


Thursday, November 3, 2011
Templates




Thursday, November 3, 2011
XTemplates
   Provides compile time templating
   Retrieves data from any Java Bean
   Produces SafeHtml




Thursday, November 3, 2011
XTemplates Example Pt. 1


               <p><b>Name:</b> {data.name}</p>
               <p><b>Salary</b>: {data.income:currency}</p>
               <p><b>Kids:</b></p>
               <tpl for="data.kids">
               <tpl if="age < 100"><p>{#}. {parent.name}'s kid - {name} -
               {bday:date("M/d/yyyy")}</p></tpl>
               </tpl>




Thursday, November 3, 2011
XTemplates Example Pt. 2

               public interface DataRenderer extends XTemplates {

                    @XTemplate(source = "template.html")
                    public SafeHtml renderTemplate(Person data);

               }

               DataRenderer renderer = GWT.create(DataRenderer.class);
               HTML text = new HTML(renderer.renderTemplate(person));




Thursday, November 3, 2011
XTemplates Example Pt. 3


           interface ExampleStyle extends CssResource {
             String searchItem();
           }

           interface ExampleTemplate extends XTemplates {
             @XTemplate("<div class='{style.searchItem}'>{post}</div>")
             SafeHtml render(Forum post, ExampleStyle style);
           }




Thursday, November 3, 2011
Widget Changes




Thursday, November 3, 2011
Fields
       Most fields are now cell based
       Allows to be used standalone and in data widgets
       Fields now work with the GWT Editing framework




Thursday, November 3, 2011
State Management
       Sate code moved out of Components themselves
       Supports asynchronous retrieval of data
       HTML Local Storage




Thursday, November 3, 2011
Cells & Cell Widgets




Thursday, November 3, 2011
Cells

      New design and implementation from GWT
      Renders views of data
      Supports events

      Work with both GWT and Ext GWT Cells




Thursday, November 3, 2011
Cells                                  GWT AbstractInputCell


                                           AbstractEventInputCell


                                                  FieldCell



                             ValueBaseFieldCell                   SliderCell



  CheckBoxCell                  TextInputCell     TriggerFieldCell

                                                                               TwinTriggerFieldCell


                                                                                   NumberCell

                                   ComboCell           DateCell
                                                                                SpinnerFieldCell



Thursday, November 3, 2011
Cell Widgets
      Cell support in all data widgets
      Tree, ListView, Grid,TreeGrid
      Replaces Widget support in data widgets from 2.0
      High performance, interactive behavior




Thursday, November 3, 2011
Thursday, November 3, 2011
Cell Example
        ColumnConfig column = new ColumnConfig();
        column.setRenderer(renderer);

        cc1 = new ColumnConfig<Plant, String>(properties.name(), 100, "Name");

        TextButtonCell button = new TextButtonCell();
        button.addSelectHandler(new SelectHandler() {
              @Override
              public void onSelect(SelectEvent event) {
                Context c = event.getContext();
                int row = c.getIndex();
                Plant p = store.get(row);
                Info.display("Event", "The " + p.getName() + " was clicked.");
              }
        });
        cc1.setCell(button);


Thursday, November 3, 2011
UiBinder




Thursday, November 3, 2011
GWT UiBinder

      Declarative user interfaces via Xml
      Separations of duties Java developers and designers
      Supports both widgets and HTML markup
      Supports CSS




Thursday, November 3, 2011
UiBinder


 <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' ...>

   <container:CenterLayoutContainer>
     <gxt:ContentPanel bodyStyle="padding: 6px" headingText="CenterLayout"
 width="200">
       <g:Label text="I should be centered" />
     </gxt:ContentPanel>
   </container:CenterLayoutContainer>

 </ui:UiBinder>




Thursday, November 3, 2011
Layouts




Thursday, November 3, 2011
Layouts
       New optimized layout engine
       UiBinder support including layout data
       Fully typed containers
       Easier to use and understand API




Thursday, November 3, 2011
Layouts
                                 2.0                3.0
                             BorderLayout   BorderLayoutContainer

           Container         CenterLayout   CenterLayoutContainer

                             FlowLayout     FlowLayoutContainer




Thursday, November 3, 2011
Charts




Thursday, November 3, 2011
Draw
      Cross platform drawing API
      SVG / VML / Canvas
      Normalizes differences between engine API syntax
      DrawComponent base component for drawing
      DrawComponent works with GXT layouts




Thursday, November 3, 2011
Charts
       Integrated with GXT Models & Stores
       Full event support for series and legends
       Custom tooltip for series
       All charts support animations via GXT Fx
       Customize appearance of series, axis, legend




Thursday, November 3, 2011
Thursday, November 3, 2011
Appearance & Theming




Thursday, November 3, 2011
2.0 Theming
      Single monolithic gxt-all.css
      Contains CSS for all browsers
      Manual image spriting
      Hard to determine what CSS is applied to a Widget
      No compile time checks




Thursday, November 3, 2011
Appearance Pattern
      Renders the “view” via a SafeHtml string
      Responsible for HTML structure and styles
      Responds to state changes
      Appearance pattern applied to both widgets and cells




                                                    ClientBundle


                Widget       Appearance             CssResource


                                                     XTemplate



Thursday, November 3, 2011
Release Timeline




Thursday, November 3, 2011
Release Timeline
      3.0 Beta 1 Q4 2011
      3.0 GA early 2012




Thursday, November 3, 2011
Road to 3.0
       Weekly snapshot builds to Maven
       Actively helping with 3.0 issue and bugs in forums




Thursday, November 3, 2011
Post 3.0
       ThemeBuilder
       Mobile support




Thursday, November 3, 2011
Questions?




Thursday, November 3, 2011

Contenu connexe

Similaire à Introducing Ext GWT 3.0

Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
jbellis
 
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
Amazon Web Services
 
Time for a REST - .NET Framework v3.5 & RESTful Web Services
Time for a REST - .NET Framework v3.5 & RESTful Web ServicesTime for a REST - .NET Framework v3.5 & RESTful Web Services
Time for a REST - .NET Framework v3.5 & RESTful Web Services
ukdpe
 

Similaire à Introducing Ext GWT 3.0 (20)

TMF meets GMF
TMF meets GMFTMF meets GMF
TMF meets GMF
 
Not Only Drupal
Not Only DrupalNot Only Drupal
Not Only Drupal
 
Hacking Webkit & Its JavaScript Engines
Hacking Webkit & Its JavaScript EnginesHacking Webkit & Its JavaScript Engines
Hacking Webkit & Its JavaScript Engines
 
What's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James PearceWhat's new in HTML5, CSS3 and JavaScript, James Pearce
What's new in HTML5, CSS3 and JavaScript, James Pearce
 
A Look at the Future of HTML5
A Look at the Future of HTML5A Look at the Future of HTML5
A Look at the Future of HTML5
 
WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL Fundamentals
 
Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
Cassandra 1.0 and the future of big data (Cassandra Tokyo 2011)
 
Ext GWT 3.0 Theming and Appearances
Ext GWT 3.0 Theming and AppearancesExt GWT 3.0 Theming and Appearances
Ext GWT 3.0 Theming and Appearances
 
Best Practices in Ext GWT
Best Practices in Ext GWTBest Practices in Ext GWT
Best Practices in Ext GWT
 
Azure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAzure, Cloud Computing & Services
Azure, Cloud Computing & Services
 
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
Deep Dive on S3 Storage Management Covering New Feature Announcements - Decem...
 
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
 
Advanced Data Widgets and Server Integration
Advanced Data Widgets and Server IntegrationAdvanced Data Widgets and Server Integration
Advanced Data Widgets and Server Integration
 
Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011
 
Time for a REST - .NET Framework v3.5 & RESTful Web Services
Time for a REST - .NET Framework v3.5 & RESTful Web ServicesTime for a REST - .NET Framework v3.5 & RESTful Web Services
Time for a REST - .NET Framework v3.5 & RESTful Web Services
 
Cross-Platform, Native Mobile Development with a DSL
Cross-Platform, Native Mobile Development with a DSLCross-Platform, Native Mobile Development with a DSL
Cross-Platform, Native Mobile Development with a DSL
 
Data Loading for Ext GWT
Data Loading for Ext GWTData Loading for Ext GWT
Data Loading for Ext GWT
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developers
 
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
 
Introducing Sencha Touch 2
Introducing Sencha Touch 2Introducing Sencha Touch 2
Introducing Sencha Touch 2
 

Plus de Sencha

Plus de Sencha (20)

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web Components
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 Highlights
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
 
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop First
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell Simeons
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
 

Dernier

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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+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@
 

Dernier (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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
 
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
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
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...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+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...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Introducing Ext GWT 3.0

  • 2. Ext GWT 3.0 Darrell Meyer, Sencha darrell@sencha.com @darrellmeyer Thursday, November 3, 2011
  • 3. Overview Release Goals Feature Overview Release Timeline Thursday, November 3, 2011
  • 4. Name Games Google Web Toolkit “G-W-T” “Gwit” Ext GWT “E-X-T-G-W-T” “X-Gwit” “G-X-T” Thursday, November 3, 2011
  • 5. Ext GWT 3.0 Goals Thursday, November 3, 2011
  • 6. Primary Goals Leverage the power of GWT and its compiler Use GWT API’s where applicable for better interoperability Integrate and support best practices of GWT Build and release through Maven Thursday, November 3, 2011
  • 7. Syncing with GWT GXT 2.0 GXT 3.0 Events & Listeners Custom GWT Rendering Deferred Direct Interface Based No Yes Models Custom POJO UiBinder Support No Yes SafeHtml Support No Yes GWT Based Charts Flash Yes Theming Custom ClientBundle Thursday, November 3, 2011
  • 9. Features Models Stores & Loaders Templates Widget Changes Cells & Cell Widgets Layouts UiBinder Charts Theming & Appearance Thursday, November 3, 2011
  • 11. Model Support 2.0 Forced users to work with GXT Models Models kept internal map for data Not strongly typed 3.0 Full support for any POJO Supports RPC, RequestFactory, AutoBeans Data Stores take any object type Thursday, November 3, 2011
  • 12. Server Communications Transport Data Type RPC POJOs RequestFactory EntityProxy / AutoBean RequestBuilder (XML / JSON) Interface / AutoBean Thursday, November 3, 2011
  • 13. ValueProvider Allows access to an object’s property Supports string based path Supports nested properties Can be created directly Can be created by generator Thursday, November 3, 2011
  • 14. ValueProvider Allows access to an object’s property Supports string based path Supports nested properties Can be created directly Can be created by generator Thursday, November 3, 2011
  • 15. ValueProvider interface PostProperties extends PropertyAccess<Post> { ValueProvider<Post, String> username(); ValueProvider<Post, String> forum(); ValueProvider<Post, Date> date(); } // create properties instance via deferred binding PostProperties props = GWT.create(PostProperties.class); // use value providers new ColumnConfig<Post, String>(props.forum(), 150, "Forum"); Thursday, November 3, 2011
  • 16. Stores & Loaders Thursday, November 3, 2011
  • 17. Stores Stores are client-side collections of data Filtering and sorting Change events Accept any object type Data widgets are bound to stores Store ListStore TreeStore Thursday, November 3, 2011
  • 18. Loaders Loader: Builds requests, sends to DataProxy DataProxy: Makes request to server DataReader: Translates wire-format to objects DataWriter: Translates objects to wire-format Loader DataProxy DataReader Thursday, November 3, 2011
  • 20. Loader Interaction Loader Thursday, November 3, 2011
  • 21. Loader Interaction Loader DataProxy Thursday, November 3, 2011
  • 22. Loader Interaction Loader DataProxy Server Thursday, November 3, 2011
  • 23. Loader Interaction Loader DataProxy Server Thursday, November 3, 2011
  • 24. Loader Interaction Loader DataProxy Server Thursday, November 3, 2011
  • 25. Loader Interaction Loader DataProxy Server DataReader Thursday, November 3, 2011
  • 26. DataProxy Example HttpProxy works with GWT RequestBuilder The type parameters defines the input and return type String path = "data/data.xml"; RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path); HttpProxy<ListLoadConfig> proxy = new HttpProxy<ListLoadConfig>(builder); Thursday, November 3, 2011
  • 27. DataReader Example Reader “transforms” data Most String readers use AutoBeans reader = new XmlReader<ListLoadResult<Email>, EmailCollection>(factory, EmailCollection.class) { protected ListLoadResult<Email> createReturnData(Object loadConfig, EmailCollection records) { return new BaseListLoadResult<Email>(records.getValues()); }; }; Thursday, November 3, 2011
  • 28. DataLoader Example loader = new ListLoader<ListLoadConfig, ListLoadResult<Email>>( proxy, reader); loader.addLoadHandler(new LoadResultListStoreBinding<ListLoadConfig, Email, ListLoadResult<Email>>(store)); loader.load(); Thursday, November 3, 2011
  • 29. DataWriter Turns logical data into format to be sent back to server Reverse behavior of DataReaders Example use with LoadConfig object sent to server DataWriter AutoBeanWriter JsonWriter UrlEncodingWriter XmlWriter Thursday, November 3, 2011
  • 31. XTemplates Provides compile time templating Retrieves data from any Java Bean Produces SafeHtml Thursday, November 3, 2011
  • 32. XTemplates Example Pt. 1 <p><b>Name:</b> {data.name}</p> <p><b>Salary</b>: {data.income:currency}</p> <p><b>Kids:</b></p> <tpl for="data.kids"> <tpl if="age < 100"><p>{#}. {parent.name}'s kid - {name} - {bday:date("M/d/yyyy")}</p></tpl> </tpl> Thursday, November 3, 2011
  • 33. XTemplates Example Pt. 2 public interface DataRenderer extends XTemplates { @XTemplate(source = "template.html") public SafeHtml renderTemplate(Person data); } DataRenderer renderer = GWT.create(DataRenderer.class); HTML text = new HTML(renderer.renderTemplate(person)); Thursday, November 3, 2011
  • 34. XTemplates Example Pt. 3 interface ExampleStyle extends CssResource { String searchItem(); } interface ExampleTemplate extends XTemplates { @XTemplate("<div class='{style.searchItem}'>{post}</div>") SafeHtml render(Forum post, ExampleStyle style); } Thursday, November 3, 2011
  • 36. Fields Most fields are now cell based Allows to be used standalone and in data widgets Fields now work with the GWT Editing framework Thursday, November 3, 2011
  • 37. State Management Sate code moved out of Components themselves Supports asynchronous retrieval of data HTML Local Storage Thursday, November 3, 2011
  • 38. Cells & Cell Widgets Thursday, November 3, 2011
  • 39. Cells New design and implementation from GWT Renders views of data Supports events Work with both GWT and Ext GWT Cells Thursday, November 3, 2011
  • 40. Cells GWT AbstractInputCell AbstractEventInputCell FieldCell ValueBaseFieldCell SliderCell CheckBoxCell TextInputCell TriggerFieldCell TwinTriggerFieldCell NumberCell ComboCell DateCell SpinnerFieldCell Thursday, November 3, 2011
  • 41. Cell Widgets Cell support in all data widgets Tree, ListView, Grid,TreeGrid Replaces Widget support in data widgets from 2.0 High performance, interactive behavior Thursday, November 3, 2011
  • 43. Cell Example ColumnConfig column = new ColumnConfig(); column.setRenderer(renderer); cc1 = new ColumnConfig<Plant, String>(properties.name(), 100, "Name"); TextButtonCell button = new TextButtonCell(); button.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { Context c = event.getContext(); int row = c.getIndex(); Plant p = store.get(row); Info.display("Event", "The " + p.getName() + " was clicked."); } }); cc1.setCell(button); Thursday, November 3, 2011
  • 45. GWT UiBinder Declarative user interfaces via Xml Separations of duties Java developers and designers Supports both widgets and HTML markup Supports CSS Thursday, November 3, 2011
  • 46. UiBinder <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' ...> <container:CenterLayoutContainer> <gxt:ContentPanel bodyStyle="padding: 6px" headingText="CenterLayout" width="200"> <g:Label text="I should be centered" /> </gxt:ContentPanel> </container:CenterLayoutContainer> </ui:UiBinder> Thursday, November 3, 2011
  • 48. Layouts New optimized layout engine UiBinder support including layout data Fully typed containers Easier to use and understand API Thursday, November 3, 2011
  • 49. Layouts 2.0 3.0 BorderLayout BorderLayoutContainer Container CenterLayout CenterLayoutContainer FlowLayout FlowLayoutContainer Thursday, November 3, 2011
  • 51. Draw Cross platform drawing API SVG / VML / Canvas Normalizes differences between engine API syntax DrawComponent base component for drawing DrawComponent works with GXT layouts Thursday, November 3, 2011
  • 52. Charts Integrated with GXT Models & Stores Full event support for series and legends Custom tooltip for series All charts support animations via GXT Fx Customize appearance of series, axis, legend Thursday, November 3, 2011
  • 54. Appearance & Theming Thursday, November 3, 2011
  • 55. 2.0 Theming Single monolithic gxt-all.css Contains CSS for all browsers Manual image spriting Hard to determine what CSS is applied to a Widget No compile time checks Thursday, November 3, 2011
  • 56. Appearance Pattern Renders the “view” via a SafeHtml string Responsible for HTML structure and styles Responds to state changes Appearance pattern applied to both widgets and cells ClientBundle Widget Appearance CssResource XTemplate Thursday, November 3, 2011
  • 58. Release Timeline 3.0 Beta 1 Q4 2011 3.0 GA early 2012 Thursday, November 3, 2011
  • 59. Road to 3.0 Weekly snapshot builds to Maven Actively helping with 3.0 issue and bugs in forums Thursday, November 3, 2011
  • 60. Post 3.0 ThemeBuilder Mobile support Thursday, November 3, 2011