Transcript SenchaExtJS4
Krishna Mohan Koyya
Proprietor and Principal Consultant Glarimy Technology Services [email protected]
| www.glarimy.com
Protocol
Please switch-off or mute your mobile phones Please do not bring your regular work to the class No cross discussions Primarily demonstration based, not slides Stop me for any questions Visit http://www.glarimy.com/files/extjs for references Visit http://www.glarimy.com
for code samples Timings: 9.30-17.30
Breaks: 11.15-11.30, 12.45-13.45 and 15.30-15.45
Lab Set-up
Windows or any other O/S of your choice ExtJS 4.x
Notepad++ or any other editor of your choice Google Chrome or any other browser of your choice with debugger installed Tomcat 6 or any other HTTP server of your choice JDK 6, if required for your server
Schedule: Day-1
Overview of JavaScript, CSS and DOM
Asynchronous communication using AJAX, Web 2.0 with AJAX and JSON
Getting Started with Ext JS 4
Loading the Library Application Architecture Ext Application Design, Introducing Sencha MVC
Fundamental Classes
Ext.Element, Ext.CompositeElement, Ext.DomHelper, Ext.DomQuery
Event Handling
Events in Ext & DOM Events, Event Handlers & Delegated Event Handling
Creating & Extending Classes
Creating a Class & Extending a Class, Extending a Component, Class System, Class Definition, Class Loading
Schedule: Day-2
Working with Data
Defining Models, Validating your Data, Defining Associations, Defining Proxies, Defining Stores
Component Model
Overview, Component Manager, Component vs. Element, Component configuration
Laying out your GUI
Defining Panels, Headers, Resizing Panels, Defining Toolbars
Defining Layouts and Panels
HBOX, VBOX, Tabs, Viewport, TabPanel, Tree Panel, GridPanel, FormPanel
Schedule: Day-3
Form Components Overview
Checkbox, ComboBox, CompositeField, DateField, DisplayField, Hidden, HtmlEditor, NumberField, Radio, SliderField, TextArea, TextField
Working with Forms
Understanding Form Layout, Applying Validations, Form wizards
Effects and animation
Drag and Drop
Schedule: Day-4
Introducing grid features
Defining a read-only grid, Editing within a grid, Pagination and scrolling
Sencha MVC
Ext.applysmd, Ext.util.Format
Internationalization Debugging Logging Customization Performance
Trainer Introduction
Name: Krishna Mohan Koyya Proprietor & Principal Consultant of Glarimy Areas: Java, JEE, Web 2.0, Design & Architecture Academics: B.Tech (ECE) and M.Tech (CST) Development Experience: 10 years in Java & NMS domain with Cisco, Wipro & HP Training Experience: Since 2008 Recent Clients: Oracle, Bosch, McAfee, ADP and etc., Profile: http://www.glarimy.com/krishna.php
Schedule: Day-1
Overview of JavaScript, CSS and DOM
Asynchronous communication using AJAX, Web 2.0 with AJAX and JSON
Getting Started with Ext JS 4
Loading the Library Application Architecture Ext Application Design, Introducing Sencha MVC
Fundamental Classes
Ext.Element, Ext.CompositeElement, Ext.DomHelper, Ext.DomQuery
Event Handling
Events in Ext & DOM Events, Event Handlers & Delegated Event Handling
Creating & Extending Classes
Creating a Class & Extending a Class, Extending a Component, Class System, Class Definition, Class Loading
Exploring Sencha ExtJS
A Javascript library for Web 2.0 development Offers API for Element Selection DOM Manipulation Style Manipulation Event Handling AJAX Also offers pre-built UI Components Layouts Form Widgets and Application Widgets
Exploring Sencha ExtJS
Architecture Ext Foundation: Ext class system Ext Core: DOM, CSS, Event & AJAX API Ext JS: UI Components Distribution File ext.js: Ext Foundation & Ext Core (Minified) File ext-all.js: All three layers (Minified) File xxx-debug.js: Without minification File xxx-dev.js: Development distribution The CSS files under resources/css Available on CDN: http://cdn.sench.io
ExtJS Class System
Defining a class Ext.define(name, properties_and_methods, callback) Class name must not use Ext as the root Instantiating a class Ext.create(name, properties) Applying properties Ext.apply(this, properties || {}) Alias to the class name Add alias property to the class definition
ExtJS Class System
Extending a parent Add extend property to the class definition Every class is an extension of Ext.Base
Mixing multiple classes Add mixins property to the class definition Each mixed-in class must have a reference name Access properties using mixins of the object This is a way to implement multiple inheritance
ExtJS Class System
Configuration Add config property to the class Setters and getters are automatically created Call applyConfig() in the constructor function Pass config values during instantiation Validating before setting config value applyXXX method with a return value
ExtJS Class System
Making a singleton Set property singleton to ‘yes’ Class can not be instantiated Normally used for class configurations Static Members Add statics property to the class All instances share the same reference to statics Use self operator on the objects to access statics
ExtJS Class System
Dynamic loading Ext.Loader must be configured Loader is disabled in ext-all.js
Loading the class Using Ext.require() function Loads the class asynchronously Class name must match file name Class namespace must match file path Using the class Within the Ext.onReady() function Executed only after all the required classes are loaded
DOM Element Selection
Ext.Element
Encapsulates the DOM element Ext.CompositElement
Encapsulates a collection of DOM elements Operations are transmitted to all the elements within Selecting elements Ext.get(id or DOM reference) Returns Ext.Element
Ext.select(selector expression) Returns Ext.CompositElement
DOM Manipulation
Ext.Element offers several DOM manipulation API getHTML/setHTML: gets or sets inner HTML getAttribute/setAttribute: gets or sets the attribute value getValue/setValue: gets or sets value appendTo: append this element to the passed appendChild: appends the passed element to self child: selects the single direct child contains: checks if it is the ancestor of the passed one insertAfter/insertBefore/insertFirst Consider using DOMHelper
Style Manipulation
Ext.Element offers several style manipulation API addCls, hasCls, removeCls, replaceCls, toggleCls Hide and show setStyle and applyStyles
Event Handling
Ext.Element offers event handling API Setting up listener on(eventName, function(event, htmlElement, options), [scope], [options]); Shorthand: addListener A JSON can be used for attaching multiple event listeners Removing listener un(eventName, cbHandler) or removeListener Ext.EventManager can be handy Event can be inspected for the target and other details
Lab Session
Demonstration: Online Library console application using which a librarian should be able to add new titles to the stock, view the titles and their details and order for new titles.
Exercise : An E-mail client application using which the mails and mail folders can be listed and new mails can be composed and sent.
Assignment: Online Banking component using which the customer can view the account details and request for various services and track them.