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 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
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
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
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
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
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 WidgetsPivotGridLiveTreeGridMultiSelect (Facebook)Tri-State TreePanel & TreeGrid
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