SlideShare a Scribd company logo
1 of 25
- Anand Dayalan
What is Ext JS?


• A JavaScript Framework for RIA
• Developed and Supported Sencha Inc
• Started as extension to Yahoo's YUI
Features and Highlights
•   Rich, Modern UI Widgets
•   Layout Controls
•   MVC Application Architecture
•   Charts
•   Data Package
•   Cross Browser Support
Ext JS vs jQuery
              Ext JS                        jQuery
•   Not free for commercial       • Free
•   Competitively Smaller         • Most famous, Huge
    Community                       Community
•   Inbuilt powerful UI widgets   • Lacks complex UI elements
•   RIA - Super Easy              • RIA - Not Easy
•   MVC Application               • No MVC
    Architecture
•   Excellent Charts              • No Charts
•   Excellent Layout Controls     • No Layout Controls
Ext JS vs jQuery
                Ext JS                       jQuery
•   Rich data management         • No
•   Little bit Longer Learning   • Easy to Start
    Curve
•   Complete and Robust          • Not that much
•   Library Size More            • Lightweight
•   Easy Development and         • Complex
    Maintenance
•   Good Code Readability        • No
•   Better Documentation and     • Not Bad
    Samples
Which one to use?
              Ext JS                   jQuery
•   Complex UI              • Need to work with HTML
•   Lots of Windows and       you define
    Section                 • Already have running
•   Desktop Like              application and only need
•   Admin Web App             some DOM manipulation
•   Don’t want to use any   • Need to some AJAX/JS
    server side scripting     tweaking to an existing UI
    language or HTML
Can I use both?



   Yes
Hello world
<html> <body>
<link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext-all.js"></script>
<script language="javascript" src="helloworld.js"></script>
</body> </html>
Ext.application({
     launch: function() {
     Ext.create('Ext.container.Viewport', {
        layout: 'fit',
         items: [
           {
             title: 'Hello Ext',
              html : 'Hello! Welcome to Ext JS.'
           }
        ]
    });
  }});
Some Basics - Components
var button = new Ext.Button({
   text: ‘Click me!‘,
   width: 100,
   height: 20
});

var panel= new Ext.Panel({
   title: 'A Panel',
   border: true,
   items: [
      new Ext.Panel({             { xtype: ‘panel’,
         title: ‘Child panel!‘       title: ‘Child Panel’
      })                         }
   ]
});
Some Basics - Events
var button = new Ext.Button({
   text: 'Click me!',
   width: 100,
   height: 20,
   listeners: {
      'click': function() {
         alert('Clicked!');
      }
   }
});

btn.on('mouseover', function() {
   alert(‘Mouse Over');
});
DOM Pointers
Each dom node has 5 pointers which allow you to
navigate through the DOM
   parentNode
   previousSibling
   nextSibling
   firstChild
   lastChild
Ext.DomQuery
Ext.get('myEl')
Ext.select('div.foo, span.bar');
Ext.get('myEl').select('div.foo'); or
Ext.select('div.foo', true, 'myEl');
Ext.select('div.foo[title=bar]:first');
Ext.select('div span');
Ext.select('div > span');
Ext.select('a[href=http://extjs.com]');
Ext.select('div:next(span.header));
Ext.select('div:{display=none}');
http://docs.sencha.com/core/manual/content/domquery.h
tml
Inheritance
MyClass = Ext.extend(Ext.SomeClass, {
 someFunction : function(arg1, arg2){
    // custom code
    // call base class

     MyClass.superclass.someFunction.call(this, arg1,
      arg2);
        // custom code
     }
);
Layouts
•   Absolute
•   Accordion
•   Anchor
•   Border
•   Card (TabPanel)
•   Card (Wizard)
•   Column
•   Fit
•   Table
•   vbox
•   hBox
    – http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/layout-
      browser/layout-browser.html
MVC
• Model is a collection of fields and their data. Models
  know how to persist themselves through the data
  package.
• View is any type of component - grids, trees and panels
  are all views.
• Controllers are special places to put all of the code that
  makes your app work - whether that's rendering
  views, instantiating Models, or any other app logic.
   – http://docs.sencha.com/ext-js/4-
     1/#!/guide/application_architecture
   – http://dev.sencha.com/deploy/ext-4.1.0-
     gpl/examples/app/feed-viewer/feed-viewer.html
Application and Viewport
Ext.application({
   requires: ['Ext.container.Viewport'],
   name: 'AM‘, appFolder: 'app‘,
   controllers: [ 'Users' ],
   launch: function() {
     Ext.create('Ext.container.Viewport', {
        layout: 'fit',
        items: [ { xtype: 'userlist‘ } ]
     });
   }
});
Controller
Ext.define('AM.controller.Users', {
   extend: 'Ext.app.Controller',
   views: [ 'user.List’ +,
   stores: *'Users’ +, models: *'User'+,
   init: function() {
   this.control({
         'userlist': {
           itemdblclick: this.editUser
         }
      });
   },
 editUser: function(grid, record) {
      console.log('Double clicked on ' + record.get('name'));
   }
});
View
Ext.define('AM.view.user.List' ,{
   extend: 'Ext.grid.Panel',
   alias: 'widget.userlist‘,
   title: 'All Users',
   store: 'Users',
   initComponent: function() {
   this.columns = [
         {header: 'Name', dataIndex: 'name', flex: 1},
         {header: 'Email', dataIndex: 'email', flex: 1}
      ];
      this.callParent(arguments);
   }
});
Model
Ext.define('AM.model.User', {
   extend: 'Ext.data.Model',
   fields: ['name', 'email']
});
Communication Between Controllers
1. Add MyApp.app = this; in application
2. Declare a variable for controller in application
3. Set the controller variable declared in
   application in init() function in conroller
4. Now you can call any controller easily using
   MyApp.app.ContollerName.function()
References
refs: [
     {ref: 'feedList', selector: 'feedlist'},
     {ref: 'feedCombo', selector: 'feedwindow combobox'},
     {
        ref: 'feedWindow',
        selector: 'feedwindow',
        autoCreate: true,
        xtype: 'feedwindow'
     }
  ],
Data Package
Data Store
Ext.define('AM.store.Users', {
   extend: 'Ext.data.Store',
   model: 'AM.model.User',
   autoLoad: true,
   proxy: {
     type: 'ajax',
     url: 'data/users.json',
     reader: {
       type: 'json',
       root: 'users',
       successProperty: 'success'
     }
   }
});
Some Sample
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/desktop/desktop.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/feed-viewer/feed-
    viewer.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/calendar/index.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/live-search-grid.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/cell-editing.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/row-editing.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/charts/BarRenderer.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/tree/two-trees.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/tree/treegrid.html
http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/draw/Tiger.html
URLs
• Product
  – http://www.sencha.com/products/extjs/
• Samples
  – http://www.sencha.com/products/extjs/examples/
  – http://docs.sencha.com/ext-js/4-1/#!/example
• Documentation
  – http://docs.sencha.com/ext-js/4-1/
• Videos
  – http://docs.sencha.com/ext-js/4-1/#!/video

More Related Content

What's hot

Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your App
Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your AppOdoo Experience 2018 - Inherit from These 10 Mixins to Empower Your App
Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your AppElínAnna Jónasdóttir
 
Casl. isomorphic permission management.pptx
Casl. isomorphic permission management.pptxCasl. isomorphic permission management.pptx
Casl. isomorphic permission management.pptxSergiy Stotskiy
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
 
WebApps e Frameworks Javascript
WebApps e Frameworks JavascriptWebApps e Frameworks Javascript
WebApps e Frameworks Javascriptmeet2Brains
 
[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법Jeado Ko
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSLoiane Groner
 
HOW TO CREATE A MODULE IN ODOO
HOW TO CREATE A MODULE IN ODOOHOW TO CREATE A MODULE IN ODOO
HOW TO CREATE A MODULE IN ODOOCeline George
 
Odoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkOdoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkElínAnna Jónasdóttir
 
Pengenalan AngularJS
Pengenalan AngularJSPengenalan AngularJS
Pengenalan AngularJSEdi Santoso
 
Requirejs
RequirejsRequirejs
Requirejssioked
 
Managing JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJSManaging JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJSDen Odell
 
New text documentfsdfs
New text documentfsdfsNew text documentfsdfs
New text documentfsdfsAh Lom
 
TinyMCE: WYSIWYG editor 2010-12-08
TinyMCE: WYSIWYG editor 2010-12-08TinyMCE: WYSIWYG editor 2010-12-08
TinyMCE: WYSIWYG editor 2010-12-08Andy Gelme
 
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...eZ Systems
 
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptОбзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptCOMAQA.BY
 

What's hot (20)

FuncUnit
FuncUnitFuncUnit
FuncUnit
 
Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your App
Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your AppOdoo Experience 2018 - Inherit from These 10 Mixins to Empower Your App
Odoo Experience 2018 - Inherit from These 10 Mixins to Empower Your App
 
Casl. isomorphic permission management.pptx
Casl. isomorphic permission management.pptxCasl. isomorphic permission management.pptx
Casl. isomorphic permission management.pptx
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 
WebApps e Frameworks Javascript
WebApps e Frameworks JavascriptWebApps e Frameworks Javascript
WebApps e Frameworks Javascript
 
[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법[FEConf Korea 2017]Angular 컴포넌트 대화법
[FEConf Korea 2017]Angular 컴포넌트 대화법
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
 
HOW TO CREATE A MODULE IN ODOO
HOW TO CREATE A MODULE IN ODOOHOW TO CREATE A MODULE IN ODOO
HOW TO CREATE A MODULE IN ODOO
 
Handlebars
HandlebarsHandlebars
Handlebars
 
Requirejs
RequirejsRequirejs
Requirejs
 
Odoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkOdoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS Framework
 
Pengenalan AngularJS
Pengenalan AngularJSPengenalan AngularJS
Pengenalan AngularJS
 
Requirejs
RequirejsRequirejs
Requirejs
 
javascript examples
javascript examplesjavascript examples
javascript examples
 
Managing JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJSManaging JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJS
 
New text documentfsdfs
New text documentfsdfsNew text documentfsdfs
New text documentfsdfs
 
TinyMCE: WYSIWYG editor 2010-12-08
TinyMCE: WYSIWYG editor 2010-12-08TinyMCE: WYSIWYG editor 2010-12-08
TinyMCE: WYSIWYG editor 2010-12-08
 
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...
Extending Studio - Piotr Nalepa & Kamil Musiał - Presentation at eZ Conferenc...
 
Jquery Basics
Jquery BasicsJquery Basics
Jquery Basics
 
Обзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScriptОбзор автоматизации тестирования на JavaScript
Обзор автоматизации тестирования на JavaScript
 

Viewers also liked

What's Coming Next in Sencha Frameworks
What's Coming Next in Sencha FrameworksWhat's Coming Next in Sencha Frameworks
What's Coming Next in Sencha FrameworksGrgur Grisogono
 
Embedded systems
Embedded systemsEmbedded systems
Embedded systemsManav Gupta
 
Developing components and extensions for ext js
Developing components and extensions for ext jsDeveloping components and extensions for ext js
Developing components and extensions for ext jsMats Bryntse
 
Ext Js introduction and new features in Ext Js 6
Ext Js introduction and new features in Ext Js 6Ext Js introduction and new features in Ext Js 6
Ext Js introduction and new features in Ext Js 6Sushil Shinde
 
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]Irfan Maulana
 
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...Irfan Maulana
 
Basics of Ext JS
Basics of Ext JSBasics of Ext JS
Basics of Ext JSikhwanhayat
 
Irfan Maulana - Career Journey
Irfan Maulana - Career JourneyIrfan Maulana - Career Journey
Irfan Maulana - Career JourneyIrfan Maulana
 
Bliblidotcom - Reintroduction BEM CSS
Bliblidotcom - Reintroduction BEM CSSBliblidotcom - Reintroduction BEM CSS
Bliblidotcom - Reintroduction BEM CSSIrfan Maulana
 
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 SimeonsSencha
 

Viewers also liked (13)

What's Coming Next in Sencha Frameworks
What's Coming Next in Sencha FrameworksWhat's Coming Next in Sencha Frameworks
What's Coming Next in Sencha Frameworks
 
Mobile UI Framework
Mobile UI FrameworkMobile UI Framework
Mobile UI Framework
 
Embedded systems
Embedded systemsEmbedded systems
Embedded systems
 
Developing components and extensions for ext js
Developing components and extensions for ext jsDeveloping components and extensions for ext js
Developing components and extensions for ext js
 
Ext js 6
Ext js 6Ext js 6
Ext js 6
 
Ext Js introduction and new features in Ext Js 6
Ext Js introduction and new features in Ext Js 6Ext Js introduction and new features in Ext Js 6
Ext Js introduction and new features in Ext Js 6
 
Extjs
ExtjsExtjs
Extjs
 
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]
Sencha ExtJs Learning Part 2 - MVC And MVVM Architecture in ExtJs [ENGLISH]
 
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...
Sencha ExtJs Learning Part 1 - Layout And Container in Sencha ExtJs - By Irfa...
 
Basics of Ext JS
Basics of Ext JSBasics of Ext JS
Basics of Ext JS
 
Irfan Maulana - Career Journey
Irfan Maulana - Career JourneyIrfan Maulana - Career Journey
Irfan Maulana - Career Journey
 
Bliblidotcom - Reintroduction BEM CSS
Bliblidotcom - Reintroduction BEM CSSBliblidotcom - Reintroduction BEM CSS
Bliblidotcom - Reintroduction BEM CSS
 
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
 

Similar to Ext JS Introduction

Testing Ext JS and Sencha Touch
Testing Ext JS and Sencha TouchTesting Ext JS and Sencha Touch
Testing Ext JS and Sencha TouchMats Bryntse
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applicationsbalassaitis
 
Building Rich Internet Applications with Ext JS
Building Rich Internet Applications  with Ext JSBuilding Rich Internet Applications  with Ext JS
Building Rich Internet Applications with Ext JSMats Bryntse
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
Packing for the Web with Webpack
Packing for the Web with WebpackPacking for the Web with Webpack
Packing for the Web with WebpackThiago Temple
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiRan Mizrahi
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenerytoddbr
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchJames Pearce
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WAREFermin Galan
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOSKevin Decker
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1Mohammad Qureshi
 

Similar to Ext JS Introduction (20)

Wt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technologyWt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technology
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
 
Testing Ext JS and Sencha Touch
Testing Ext JS and Sencha TouchTesting Ext JS and Sencha Touch
Testing Ext JS and Sencha Touch
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
 
Building Rich Internet Applications with Ext JS
Building Rich Internet Applications  with Ext JSBuilding Rich Internet Applications  with Ext JS
Building Rich Internet Applications with Ext JS
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Jquery fundamentals
Jquery fundamentalsJquery fundamentals
Jquery fundamentals
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Packing for the Web with Webpack
Packing for the Web with WebpackPacking for the Web with Webpack
Packing for the Web with Webpack
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
 
jQuery
jQueryjQuery
jQuery
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOS
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Ext JS Introduction

  • 2. What is Ext JS? • A JavaScript Framework for RIA • Developed and Supported Sencha Inc • Started as extension to Yahoo's YUI
  • 3. Features and Highlights • Rich, Modern UI Widgets • Layout Controls • MVC Application Architecture • Charts • Data Package • Cross Browser Support
  • 4. Ext JS vs jQuery Ext JS jQuery • Not free for commercial • Free • Competitively Smaller • Most famous, Huge Community Community • Inbuilt powerful UI widgets • Lacks complex UI elements • RIA - Super Easy • RIA - Not Easy • MVC Application • No MVC Architecture • Excellent Charts • No Charts • Excellent Layout Controls • No Layout Controls
  • 5. Ext JS vs jQuery Ext JS jQuery • Rich data management • No • Little bit Longer Learning • Easy to Start Curve • Complete and Robust • Not that much • Library Size More • Lightweight • Easy Development and • Complex Maintenance • Good Code Readability • No • Better Documentation and • Not Bad Samples
  • 6. Which one to use? Ext JS jQuery • Complex UI • Need to work with HTML • Lots of Windows and you define Section • Already have running • Desktop Like application and only need • Admin Web App some DOM manipulation • Don’t want to use any • Need to some AJAX/JS server side scripting tweaking to an existing UI language or HTML
  • 7. Can I use both? Yes
  • 8. Hello world <html> <body> <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" /> <script type="text/javascript" src="../../ext-all.js"></script> <script language="javascript" src="helloworld.js"></script> </body> </html> Ext.application({ launch: function() { Ext.create('Ext.container.Viewport', { layout: 'fit', items: [ { title: 'Hello Ext', html : 'Hello! Welcome to Ext JS.' } ] }); }});
  • 9. Some Basics - Components var button = new Ext.Button({ text: ‘Click me!‘, width: 100, height: 20 }); var panel= new Ext.Panel({ title: 'A Panel', border: true, items: [ new Ext.Panel({ { xtype: ‘panel’, title: ‘Child panel!‘ title: ‘Child Panel’ }) } ] });
  • 10. Some Basics - Events var button = new Ext.Button({ text: 'Click me!', width: 100, height: 20, listeners: { 'click': function() { alert('Clicked!'); } } }); btn.on('mouseover', function() { alert(‘Mouse Over'); });
  • 11. DOM Pointers Each dom node has 5 pointers which allow you to navigate through the DOM parentNode previousSibling nextSibling firstChild lastChild
  • 12. Ext.DomQuery Ext.get('myEl') Ext.select('div.foo, span.bar'); Ext.get('myEl').select('div.foo'); or Ext.select('div.foo', true, 'myEl'); Ext.select('div.foo[title=bar]:first'); Ext.select('div span'); Ext.select('div > span'); Ext.select('a[href=http://extjs.com]'); Ext.select('div:next(span.header)); Ext.select('div:{display=none}'); http://docs.sencha.com/core/manual/content/domquery.h tml
  • 13. Inheritance MyClass = Ext.extend(Ext.SomeClass, { someFunction : function(arg1, arg2){ // custom code // call base class MyClass.superclass.someFunction.call(this, arg1, arg2); // custom code } );
  • 14. Layouts • Absolute • Accordion • Anchor • Border • Card (TabPanel) • Card (Wizard) • Column • Fit • Table • vbox • hBox – http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/layout- browser/layout-browser.html
  • 15. MVC • Model is a collection of fields and their data. Models know how to persist themselves through the data package. • View is any type of component - grids, trees and panels are all views. • Controllers are special places to put all of the code that makes your app work - whether that's rendering views, instantiating Models, or any other app logic. – http://docs.sencha.com/ext-js/4- 1/#!/guide/application_architecture – http://dev.sencha.com/deploy/ext-4.1.0- gpl/examples/app/feed-viewer/feed-viewer.html
  • 16. Application and Viewport Ext.application({ requires: ['Ext.container.Viewport'], name: 'AM‘, appFolder: 'app‘, controllers: [ 'Users' ], launch: function() { Ext.create('Ext.container.Viewport', { layout: 'fit', items: [ { xtype: 'userlist‘ } ] }); } });
  • 17. Controller Ext.define('AM.controller.Users', { extend: 'Ext.app.Controller', views: [ 'user.List’ +, stores: *'Users’ +, models: *'User'+, init: function() { this.control({ 'userlist': { itemdblclick: this.editUser } }); }, editUser: function(grid, record) { console.log('Double clicked on ' + record.get('name')); } });
  • 18. View Ext.define('AM.view.user.List' ,{ extend: 'Ext.grid.Panel', alias: 'widget.userlist‘, title: 'All Users', store: 'Users', initComponent: function() { this.columns = [ {header: 'Name', dataIndex: 'name', flex: 1}, {header: 'Email', dataIndex: 'email', flex: 1} ]; this.callParent(arguments); } });
  • 19. Model Ext.define('AM.model.User', { extend: 'Ext.data.Model', fields: ['name', 'email'] });
  • 20. Communication Between Controllers 1. Add MyApp.app = this; in application 2. Declare a variable for controller in application 3. Set the controller variable declared in application in init() function in conroller 4. Now you can call any controller easily using MyApp.app.ContollerName.function()
  • 21. References refs: [ {ref: 'feedList', selector: 'feedlist'}, {ref: 'feedCombo', selector: 'feedwindow combobox'}, { ref: 'feedWindow', selector: 'feedwindow', autoCreate: true, xtype: 'feedwindow' } ],
  • 23. Data Store Ext.define('AM.store.Users', { extend: 'Ext.data.Store', model: 'AM.model.User', autoLoad: true, proxy: { type: 'ajax', url: 'data/users.json', reader: { type: 'json', root: 'users', successProperty: 'success' } } });
  • 24. Some Sample http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/desktop/desktop.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/feed-viewer/feed- viewer.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/calendar/index.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/live-search-grid.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/cell-editing.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/grid/row-editing.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/charts/BarRenderer.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/tree/two-trees.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/tree/treegrid.html http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/draw/Tiger.html
  • 25. URLs • Product – http://www.sencha.com/products/extjs/ • Samples – http://www.sencha.com/products/extjs/examples/ – http://docs.sencha.com/ext-js/4-1/#!/example • Documentation – http://docs.sencha.com/ext-js/4-1/ • Videos – http://docs.sencha.com/ext-js/4-1/#!/video