-
Book Overview & Buying
-
Table Of Contents
qooxdoo Beginner's Guide
qooxdoo is an entirely object-oriented framework based on JavaScript. This framework is properly organized on the basis of namespaces. It supports most of the modern browsers, provides utilities to generate documentation based on javadocs such as comments, and also supports themes and internationalization. In this section, you will learn about all these features.
Let's check all the features provided by the qooxdoo framework. This will improve your knowledge on qooxdoo and help you further understand the qooxdoo framework.
The qooxdoo application runs in most of the modern web browsers, including:
Internet Explorer 6+
Firefox 2+
Opera 9+
Safari 3.0+
Chrome 2+
No plugins (ActiveX, Java, Flash, or Silverlight) are required. It is completely based on JavaScript.
Non-critical modifications of the native JavaScript objects to allow for easy integration with other libraries and custom code.
Cross-browser JavaScript 1.6 (string/array generics).
Framework is fully class-based
Framework uses namespaces. It avoids the conflicts in global variables
Besides regular classes, it offers abstract, static, or singleton classes
Constructor and destructor support
Multiple access specifiers—public, protected, and private
Single inheritance and full polymorphism
Java-like interfaces
Ruby-like mixins
So-called dynamic properties, a very convenient and powerful way to have optimized setter and getter methods generated from simple configuration
Purely client-side JavaScript
No need to know HTML, DOM, or CSS
Complete support for event-based programming
Development of qooxdoo applications fully supported on all platforms; for example, Windows, Linux, all flavors of Unix, and Mac OS X
Quick start for easy evaluation of the framework without the need to install any software
Skeletons are pre-configured for full-featured custom applications
Many sample applications and examples
Designed for high performance
Framework has no issue of memory leak
Aids in developing memory-leak free user applications
Extensive logging capabilities (for example, different log appenders and Firebug support)
Straightforward debugging (for example, object introspection and benchmarking)
Browser history management, that is, browser back/forward button, bookmarks
Cookies
Generic JavaScript pretty printer/code formatter for unified code style
Built-in internationalization (i18n) and localization (l10n) support
Support for all languages and locales, at least on this planet
Based on the comprehensive Common Language Data Repository (CLDR)
Internally using the mature GNU gettext tools
Well-known translation file format (.po)
Support by professional, free translation tools (PO editors) on all platforms
Extended javadoc-like source code comments
Full API reference for both framework and custom applications
Online (http://api.qooxdoo.org/) and offline API viewer applications
Integrated unit testing framework (test runner)
Integrated functional testing framework (simulator)
Generation of a self-contained and easily-deployable build version
Complexity of the build process hidden behind user-friendly commands
JavaScript compression (removal of whitespaces, and so on)
Automatic dependency resolution of JavaScript classes; no need for manual require() statements or tweaking a custom build
Automatic linking of JavaScript classes (JS linker)
Copying of required static resources like images or other external files into a self-contained build
String extraction (tremendous performance improvement for IE6)
Shortening and obfuscating local variables and/or private members
Optional browser-specific variant for each supported browser (For example, Firefox-only build)
Generation of build versions depending on user-defined variants, which allows for different products from the same code base
Removal of debug statements within the application code before deployment
Support for easy migration of custom applications from one framework release to another
Migration in the qooxdoo framework is painless as it is technically easy to carry out
Fully integrated into the regular build system
All non-ambiguous changes are done automatically for maximum convenience and to avoid manual find/replace errors
All ambiguous or semantic changes that require some developer decision are put into a comprehensive checklist
In addition to the JavaScript programming model, you can also develop qooxdoo applications using one of the following alternative programming models or development platforms. Some are not quite stable, some are not active, and some are pretty new. This book focuses only on the JavaScript programming model, which is the built-in development model of the qooxdoo framework.
Java/Eclipse: Eclipse Rich Ajax Platform (RAP); for more information, see http://eclipse.org/rap
Java: qooxdoo Web Toolkit (QWT); for more information, see http://qooxdoo.org/contrib/project/qwt
QxWT: JSNI wrapper for the qooxdoo JavaScript library; for more information, see http://www.ufacekit.org/index.php?cat=02_qooxdoo&page=01_QxWT
LISP (qooxlisp): LISP programming for web applications; for more information, see https://github.com/kennytilton/qooxlisp/wiki/
XML: XML-based GUI description; for more information, see http://qxtransformer.org/
The list of alternative programming models is growing. You can check the updated list at http://qooxdoo.org/documentation/general/development_platforms
Change the font size
Change margin width
Change background colour