QOOMdOO. 1 open source I community experience distilled. Beginner's Guide. Develop Rich Internet Applications (RIA) with qooxdoo. Rajesh Kumar Bachu

Similar documents
THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

Managing. mashup of chapters from. rpafi/jl enterprise88. Packt's bestselling Silverlight. Data and Media in Microsoft Silverlight 4: A.

VB.NET Web : Phone : INTRODUCTION TO NET FRAME WORK

[paf Wj] open source. Selenium 1.0 Testing Tools. Beginner's Guide. using the Selenium Framework to ensure the quality

Introduction: Manual Testing :

CHAPTER 1: INTRODUCING C# 3

Oracle APEX 18.1 New Features

IBM DB2 Web Query for IBM i. Version 2 Release 2

SEVEN ADVANCED ACADEMY

SharePoint List Booster Features

Selenium Online Training Brochure

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

The Eclipse Rich Ajax Platform

Selenium Training. Training Topics

Index. Boolean value, 282

Oracle Application Express 5.1

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP

Kendo UI. Builder by Progress : Using Kendo UI Designer

Selenium Course Content

B. V. Patel Institute of Business Management, Computer & Information Technology, UTU

DOT NET SYLLABUS FOR 6 MONTHS

Getting Started enterprise 88. Oracle Warehouse Builder 11gR2: operational data warehouse. Extract, Transform, and Load data to

Selenium Testing Course Content

Building Custom UIs for APS 2.0 Applications. Timur Nizametdinov, APS Dynamic UI Lead Developer

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools

Programming Graphical

Murach s Beginning Java with Eclipse

SELENIUM TRAINING COURSE CONTENT

Advanced Development with the ArcGIS API for JavaScript. Jeremy Bartley, Kelly Hutchins, Derek Swingley

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

Mastering LOB Development

The Past, Present, and Future of SWT

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

Kendo UI. Builder by Progress : What's New

Overview

JavaScript Patterns O'REILLY* S toy an Stefanov. Sebastopol. Cambridge. Tokyo. Beijing. Farnham K8ln

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

Android App Development for Beginners

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study

MyEclipse ER-Designer Quickstart

Kai Tödter Siemens Corporate Technology

OZONE Widget Framework

Rich Web UI made simple Building Data Dashboards without Code

DOT NET Syllabus (6 Months)

Rich Client GUI's with RCP & RAP

CS 4300 Computer Graphics

Introduction p. 1 Who Should Read This Book? p. 2 Software Requirements p. 3 Code Examples p. 3 How This Book Is Organized p. 4 Conventions Used in

Oracle Forms Modernization Through Automated Migration. A Technical Overview

ASP.NET- Enterprise Applications

<Insert Picture Here> JavaFX Overview April 2010

Team Developer 6.1. Configure the color-coding in the Tools Preferences dialog under the Outline tab.

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018

Koenig Solutions Pvt. Ltd. Selenium with C#

Modules. configuration button. Once a module is enabled, new permissions may be available. To reduce server load, modules with their Throttle checkbox

jquery Cookbook jquery Community Experts O'REILLY8 Tokyo Taipei Sebastopol Beijing Cambridge Farnham Koln

Software Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*

Liferay Digital Experience Platform. New Features Summary

Syllabus- Java + Android. Java Fundamentals

Mind Q Systems Private Limited

EMC Documentum Composer

WEBSITE INSTRUCTIONS. Table of Contents

Product Questions Magento Extension

Index LICENSED PRODUCT NOT FOR RESALE

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

Object-Oriented Programming

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM)

Portail : WebSphere Portlet Factory RIA et Web 2.0 autour de WebSphere Portal

LTBP INDUSTRIAL TRAINING INSTITUTE

Dojo: An Accessible JavaScript Toolkit

This page intentionally left blank

Full Stack boot camp

ANDROID DEVELOPMENT. Course Details

Case Management Implementation Guide

Eclipse Scout. Release Notes. Scout Team. Version 7.1

Preface to the Second Edition Preface to the First Edition Brief Contents Introduction to C++ p. 1 A Review of Structures p.

Merits of QT for developing Imaging Applications UI

WEBSITE INSTRUCTIONS

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King

Developing Microsoft.NET Applications for Windows (Visual Basic.NET)

EXAM Microsoft MTA Software Development Fundamentals. Buy Full Product.

Index. Bitwise operations, 131. Cloud, 88, 101

PHPRad. PHPRad At a Glance. This tutorial will show you basic functionalities in PHPRad and

CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1

VALLIAMMAI ENGINEERING COLLEGE

Keep on Swinging. Productivity layers on top of SWT. Karsten Schmidt SAP AG.

Tools to Develop New Linux Applications

Oracle Forms Developer 10g: Build Internet Applications

SAP ABAP Training Course Content :

Sri Vidya College of Engineering & Technology

Getting Started With the Responsive Design Framework Add-on for WebFOCUS App Studio Release 8.1 Version 05

Design Pattern- Creational pattern 2015

Custom Component Development Using RenderMonkey SDK. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have)

Our Hall of Fame or Shame candidate for today is the command ribbon, which was introduced in Microsoft Office The ribbon is a radically

Programming in Scala Second Edition

Transcription:

QOOMdOO Beginner's Guide Develop Rich Internet Applications (RIA) with qooxdoo Rajesh Kumar Bachu Mohamed Raffi [ PUBLISHING 1 open source I community experience distilled BIRMINGHAM MUMBAI

Table of Contents Preface 1 Chapter 1: What is qooxdoo? 7 A feel of an RIA developed in qooxdoo 8 play with the feed reader application 8 Architecture of qooxdoo SDK 12 Core layer 12 Browser Abstraction layer 12 LowLevel layer 13 GUI Toolkit layer 13 Data Binding 13 Internationalization qooxdoo framework features Language 14 Objectorientation 14 Programming 15 Internationalization 15 API reference 15 Testing 16 Deployment 16 Migration 16 Alternative programming models Eventbased rich Ul programming 17 GUI widget library 18 checking the demo browser and the playground applications 18 13 14 17

creating Table of Contents Application to be developed in this book Team Twitter 20 checking the Team Twitter application 20 What you should know and what you don't need to know 23 Summary 24 Chapter 2: Say Hello to the qooxdoo World! 25 Installing qooxdoo tools 26 installing qooxdoo tools 26 Installing ActivePython 26 Installing Cygwin 29 Installing qooxdoo SDK 35 installing qooxdoo SDK 35 Creating a simple qooxdoo application 39 a simple qooxdoo application 39 Passing data to the server 42 JSON standard format 43 Communicating with the server 46 Setting up an RPC connection 46 Making a call 46 Request 48 Response 48 Aborting a call 48 Error handling 49 Crossdomain calls 50 Parameter and result conversion 51 RPC servers 52 Integrating with the Java server 52 integrating with the Java server 53 Working with Eclipse IDE 60 Summary 64 Chapter 3: Core Programming Concepts 65 Code comments and API documentation 66 generating API documentation for Team Twitter 68 Objectoriented programming 69 Object and class 69 Encapsulation 69 Inheritance 70 Overriding 70 Abstraction 70 Polymorphism 70

writing Table of Contents Interface Members Statics Class Properties 71 Events Constructor and destructor 74 Members Class members Instance members 75 Types 77 Static class 77 Singleton class 77 Abstract class 77 Inheritance in qooxdoo 78 Overriding in qooxdoo 78 Mixin 81 Defining a mixin 82 Using a mixin in a class 82 classes for Team Twitter 84 qooxdoo properties 91 Property initialization 92 Predefined methods 93 Property configurations 93 Apply 93 Check 94 Validate 96 Group 97 Event property level 98 Property features 99 Value checks 99 Validation 99 Convenience 99 Notification 99 Advanced value handling 100 Performance 100 Memory management 100 Events class level 102 Declaring events for a class 102 Adding listeners 102 Firing an event 102 enhancing Team Twitter classes with properties 103 Summary 106 71 71 71 72 73 74 74

Table of Contents Chapter 4: Working with Layouts and Menus 109 Base classes for widgets 110 qx.core.object 111 Object management 111 Event handling 111 Logging 112 qx.core.layoutltem 112 qx.core.widget 112 Widget properties 113 qx.application 115 Containers 117 Scroll 117 Stack 118 Resizer 119 Composite 119 Window 120 Tabview 121 Groupbox 122 Layout managers 123 Size hint of the widget and its parent widget 123 Layout properties 123 Auto sizing 124 Growing or shrinking 124 Overflow 124 Basic 125 Canvas 126 Dock 127 HBox 128 VBox 129 Flow 130 Grid 131 designing layout managers for Team Twitter 132 Menu, MenuBar, and ToolBar 138 Menu 139 Menu creation 139 MenuBar 141 ToolBar 142 Summary 147 Chapter 5: Working with Widgets 149 Basic widgets 150 Label 150 Atom 151 Image 153

enhancing adding Table of Contents the server application 154 Form widgets 158 Interface hierarchy 160 IBooleanForm, INumberForm, IDateForm, IColorForm, and IStringForm 161 IForm 162 I Executable 162 IRange 162 IModel IModelSelection 163 Class hierarchy 164 qx.ui.form.textfield 164 qx.ui.form.textarea 165 qx.ui.form.passwordfield 165 qx.ui.form.checkbox 165 qx.ui.form.radiobutton 165 qx.ui.form.radiobuttongroup 166 qx.ui.form.selectbox 167 qx.ui.form.combobox 167 qx.ui.form.spinner 167 qx.ui.form.list 168 qx.ui.form.listltem 168 qx.ui.form.datefield 169 qx.ui.form.button 170 qx.ui.form.togglebutton 170 qx.ui.form.menubutton 170 qx.ui.form.splitbutton 171 qx.ui.form.hoverbutton 172 qx.ui.form.repeatbutton 173 qx.ui.form.slider 174 adding widgets into Team Twitter 174 Special widgets 179 The popup widgets 180 qx.ui.popup 180 The tooltip widgets 180 qx.ui.tooltip 180 The control widgets 182 qx.ui.control.colorpopup 182 qx.ui.control.colorselector 182 qx.ui.control.datechooser 183 Custom widgets 184 a custom widget to Team Twitter 186 Inline widgets 189 The table widget 192 Class hierarchy 192 Table construction 193 Remote table model 194 163 [vl

enhancing performing Table ofcontents The tree widget 195 Class hierarchy 195 Tree construction 196 The treevirtual widget 197 Class hierarchy 197 TreeVirtual construction 198 Summary 202 Chapter 6: Working with Forms and Data Form handling 204 Validation 204 Synchronous 206 Asynchronous 208 Resetting 209 Rendering 210 Single column 211 Double column 211 Single column with placeholder 212 Serialization 212 2Q3 the UserSignUpForm 213 Object pooling 216 Data binding 216 Single value binding 218 Property binding 219 Event binding 219 Hierarchical data binding 219 Array binding 220 Options map 220 Data controller 221 Object controller 221 List controller 222 Form controller 223 Tree controller 224 Data stores 225 enhancing the UserSignUpForm again 226 Summary 230 Chapter 7: Testing and Debugging 231 Unit testing 232 unit test 234 Integration testing 241 Integration test setup 241 Writing test cases 242 Simulator API documentation 242 luil

Table of Contents Simulator class hierarchy 243 Selenium Java Client Driver API documentation 244 Locating strategy 244 Time for action performing integration test 246 Debugging 255 Logging statements in qooxdoo code 256 Console object 256 Trace qx.dev.debug 257 Variant qx.debug 258 Miscellaneous 258 Introduction to Firebug 259 Installing the Firebug addon 259 IE developer tools 259 Tracing through AOP 260 debugging 260 Summary 267 Chapter 8: Internationalization 269 Internationalization 269 Writing code to use internationalization 270 qx.locale.manager 271 qx. locale. MTranslation 271 qx.locale.string, qx.locale.number, qx.locale.date, and qx.locale.key 271 Writing PO files for various languages 275 generating PO files for Team Twitter 276 Summary 284 Chapter 9: Working with Themes 285 Theme 286 Meta theme 287 Theme 288 Font 288 Color 288 Decoration 288 Appearance 289 Modern theme 289 Classic theme 290 Simple theme 291 Icon theme 292 Color theme 292 Font theme 293 Decoration theme 293 Aliases 294 257

Table of Contents Decorations 294 Decorator 295 Style 297 Writing new decorators 297 Appearance theme 297 Appearance selector (key) 299 Appearance entry (value) 299 Alias 300 Appearance map 301 Style entry in the appearance map 302 The include entry in the appearance map 303 The alias entry in the appearance map 303 Base calls 305 Performance 306 Appearance queue 306 Selector caching 306 Alias caching 307 Result caching 308 customizing themes for Team Twitter 309 Summary 321 Chapter 10: Performance 323 Memory management 323 Object pooling 327 Profiling 328 Limitations 330 Compiletime tuning 331 Class optimizations 331 Strings 331 Variables 331 Private 331 Base calls 332 Identifying unused classes 332 Lint check 334 Improvements 335 Partitioning and lazy loading 335 Configuration 336 Coding to load parts on demand 337 Verification 337 Recent improvements 338 Part collapsing or merging 338 Remove dependencies from the part loader 338 Load packages in parallel 338 Error handling 339

partitioning migration Table of Contents Advantages 339 339 Good practices for performance 343 Restrict the data in certain widgets 343 Use filters 343 Pagination 344.gz compression 344 Summary 346 Chapter 11: Miscellaneous 349 Configuration 349 config.json 350 Listing of keys in context 352 Job resolution 354 The extend key 355 The run key 358 Job shadowing and partial overriding 360 Migration 362 362 Back button support 367 Identify application states 367 Update history upon state change 367 Add the event listener to the history manager 368 Retrieve initial state 369 qooxdoo license 370 Summary 372 Appendix: Pop Quiz Answers 373 References. 3?7 Index 379