introducing ext gwt 3

51
Ext GWT 3 An Introduction to Ext GWT 3 Features and Functionality DARRELL MEYER, SENCHA Monday, November 29, 2010

Upload: sencha

Post on 19-Jul-2015

4.689 views

Category:

Documents


1 download

TRANSCRIPT

Ext GWT 3An Introduction to Ext GWT 3 Features

and Functionality

DARRELL MEYER, SENCHA

Monday, November 29, 2010

OverviewExt GWT 3.0 GoalsNew GWT Features

3.0 ChangesRelease Timeline

Questions

Monday, November 29, 2010

Name Games

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

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

Monday, November 29, 2010

Ext GWT 3.0 Goals

Monday, November 29, 2010

Ext GWT 3.0 GoalsSync the Ext GWT design with GWTIncorporate new GWT featuresBetter interoperability with GWTIntegrate and support best practices of GWT

+ =

Monday, November 29, 2010

Syncing With GWT

GXT 2.0 GXT 3.0

Events & Listeners Custom GWT

Lazy Rendering Yes No

Interface Based No Yes

UIBinder Support No Yes

Monday, November 29, 2010

New GWT Features in Ext GWT 3.0

Monday, November 29, 2010

GWT 2.1 New Features

Monday, November 29, 2010

RequestFactoryAlternative to GWT-RPCFocus on data operationsPersistence on both client and serverTracks deltas for smallest payload

Integrates with other GWT featuresEditorsEvent BusMVP Activities & Places

Database

Server

Domain

RequestFactory

Client

RequestFactory

EntityProxy

Monday, November 29, 2010

GXT Request Factory SupportRequestFactoryProxy DataProxy to load dataEntityProxy’s will be used with GXT Model & Store API

Monday, November 29, 2010

AutoBeanAutomatically generated from bean like interfacesSupports easy encoding / decoding to JSON structuresProvides reflection like supportRequestFactory uses AutoBeanhttp://code.google.com/p/google-web-toolkit/wiki/AutoBean

Monday, November 29, 2010

GWT AutoBeanExt GWT 3.0 will replace Models with AutoBeanStores will work with AutoBeans directly

Monday, November 29, 2010

MVPGWT built in frameworkEventBus for dispatching eventsIntegrated with GWT History APIMultiple view implementations

Model

Presenter

View 1 View 2

EventBus

Monday, November 29, 2010

GXT MVP SupportFully support interfaced based designReuse existing GWT interfaces where applicableApplications can be written and tested using GWT patterns

Monday, November 29, 2010

UIBinderBuild Widget and DOM structures from XMLClean separation of code from viewCompile time checks and cross-referencesPerformance improvements

Monday, November 29, 2010

UI Binder Panel Code

Monday, November 29, 2010

UI Binder Events & Styles

Monday, November 29, 2010

GXT UIBinder SupportComponents will support UI BinderExt GWT will provide XML Schema for it’s componentsContainers and Layouts will be able to be configured using UIBinderContainers support both GWT Widgets and GXT Components

Monday, November 29, 2010

LoggingEmulates java.util.loggingSame syntax and same behavior as serverShare logging code between client and server codeSupports remote logging

Supports di!erent logging handlersSystemLogHandlerDevelopmentModuleHandlerConsoleLogHandlerFirebugLogHandlerPopupLogHandlerSimpleRemoteLogHandler

Monday, November 29, 2010

Logging Example Code<!-- To change the default logLevel -->

<set-property name="gwt.logging.logLevel" value="SEVERE" /><!-- To disable logging --><set-property name="gwt.logging.enabled" value="FALSE" /><!-- To disable a default Handler --><set-property name="gwt.logging.consoleHandler" value="DISABLED" />

// Log a message to the logger @UiHandler("logButton") void handleLogClick(ClickEvent e) { Level level = Level.parse(logTextBox.getItemText(logTextBox .getSelectedIndex())); logger.log(level, "This is a client log message"); }

// Trigger an exception and log it to the logger @UiHandler("exceptionButton") void handleExceptionClick(ClickEvent e) { try { Level n = null; n.getName(); } catch (NullPointerException ex) { logger.log(Level.SEVERE, "Null Exception Hit", ex); } }

Monday, November 29, 2010

GXT Logging SupportExt GWT will incorporate GWT Logging into the the Ext GWT LibraryDevelopers will be able to enable logging for Ext GWTProvide better insight into Ext GWT code

Monday, November 29, 2010

SafeHTMLDeals with Cross-Site-Scripting (XSS) vulnerabilitiesUntrusted data that is interpreted as HTMLUse SafeHtml when dealing with untrusted contentAll GWT Widgets have been changed to use SafeHtml rather than Strings

Monday, November 29, 2010

GXT SafeHTML SupportAll GXT Components will use SafeHtml internallyAll GXT Components will expose SafeHtml rather than Strings

Monday, November 29, 2010

Other GWT FeaturesEditorsClientBundle

Monday, November 29, 2010

3.0 Changes From 2.0

Monday, November 29, 2010

Component LifecycleChanges

Monday, November 29, 2010

DOM Elements not created at constructionDOM created when component added to the pageLazy rendering causes much confusionGWT does not lazy render its Widgets

Lazy Rendering

Monday, November 29, 2010

Ext GWT Components now work the same as GWT WidgetsDOM elements are created at constructiongetElement always works

New Design

Monday, November 29, 2010

Handlers & Events

Monday, November 29, 2010

Current DesignBased on Observable patternTyped and Untyped APISupports both DOM events and application eventsSame event type used for multiple eventsMust read docs to see what members are filled for the given eventEvents and listeners in GXT works di!erently than GWT

Monday, November 29, 2010

GWT Handlers & EventsReplace current design with GWT Handlers & EventBusGXT will now work the same as GWT WidgetsStrongly typed with event type per event (no sharing events)GXT will also support aggregate handlersHandlers will extend one to many single event handlersComponents support removing listeners without the HandlerRegistration

Monday, November 29, 2010

Container Changes

Monday, November 29, 2010

Containers refactored in GXT 3Now implement GWT panel interfacesHasWidgetsHasWidgets.ForIsWidgetIndexedPanelCan be used with MVP and unit tests

Container Changes

Monday, November 29, 2010

Loader generics were problematic in designMost generics removed from the Loading APINew code is cleaner and easier to implement

Loader Generic Refactoring

Monday, November 29, 2010

All Ext GWT 2.0 deprecated code will be removed for 3.0Complete binding package com.extjs.gxt.ui.client.binderComplete tree package com.extjs.gxt.ui.client.treeComplete treetable package com.extjs.gxt.ui.client.treetable

Deprecated Code

Monday, November 29, 2010

New Theme

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Canvas/SVG/VMLExtremely customizable

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Monday, November 29, 2010

Charts

Monday, November 29, 2010

AccessibilityARIAFocusManagerAccess Theme

Monday, November 29, 2010

DocumentationBetter JavaDocsNew comprehensive manualWiki

Monday, November 29, 2010

New WidgetsPivotGridLiveTreeGridMultiSelect (Facebook)Tri-State TreePanel & TreeGrid

Monday, November 29, 2010

Release Timeline

Monday, November 29, 2010

GWT 2.1 Released Oct 19, 2010Ext GWT 2.2.1 Current ReleaseExt GWT 2.3 December 2010Ext GWT 3.0 Alpha Q1 2011Ext GWT 3.0 Final Q2 2011

Release Timeline

Monday, November 29, 2010

Questions?

Monday, November 29, 2010

Thanks!Twitter @darrellmeyer

Portions of this presentation from the GWT documentation licensed under the Creative Commons Attribution 3.0 License

Monday, November 29, 2010