qooxdoo is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
Ajax web application framework. It is an
LGPL
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
- and/or
EPL-licensed client-side and server-agnostic solution, and includes support for professional
JavaScript development, a
graphical user interface (GUI)
toolkit A toolkit is an assembly of tools; set of basic building units for user interfaces.
The word toolkit may refer to:
* Abstract Window Toolkit
* Accessibility Toolkit
* Adventure Game Toolkit
* B-Toolkit
* Battlefield Mod Development Toolkit
* Chemi ...
and high-level client-server communication.
Framework
qooxdoo is entirely class-based, tries to leverage the features of
object-oriented JavaScript and is based on
namespaces. Most modern browsers are supported, including
Gecko
Geckos are small, mostly carnivorous lizards that have a wide distribution, found on every continent except Antarctica. Belonging to the infraorder Gekkota, geckos are found in warm climates throughout the world. They range from .
Geckos ar ...
(
Firefox,
Mozilla,
SeaMonkey),
Presto
Presto may refer to:
Computing
* Presto (browser engine), an engine previously used in the Opera web browser
* Presto (operating system), a Linux-based OS by Xandros
* Presto (SQL query engine), a distributed query engine
* Presto (animation s ...
(
Opera),
Trident (
Internet Explorer,
RealPlayer,
Winamp),
WebKit (
Chrome
Chrome may refer to:
Materials
* Chrome plating, a process of surfacing with chromium
* Chrome alum, a chemical used in mordanting and photographic film
Computing
* Google Chrome, a web browser developed by Google
** ChromeOS, a Google Chrome- ...
,
Safari
A safari (; ) is an overland journey to observe wild animals, especially in eastern or southern Africa. The so-called "Big Five" game animals of Africa – lion, leopard, rhinoceros, elephant, and Cape buffalo – particularly form an importa ...
). It includes an API reference that is auto-generated from
Javadoc-like comments. Among the accompanying toolset is a comprehensive JavaScript
parser that is an integral part of the automatic build process and is used to optimize,
compress, link and
deploy
Deployment may refer to:
Engineering and software Concepts
* Blue-green deployment, a method of installing changes to a web, app, or database server by swapping alternating production and staging servers
* Continuous deployment, a software ...
custom
applications, and generate documentation.
Internationalization and localization of applications are supported. qooxdoo can be downloaded as a comprehensive
SDK.
GUI toolkit
Despite being a pure JavaScript framework, qooxdoo is quite on par with GUI toolkits like
Qt,
Standard Widget Toolkit (SWT) and others with respect to implementing
user interfaces. It offers a set of
widgets that resemble elements of native desktop applications. Built-in support for keyboard navigation, focus and tab handling and drag and drop is provided. Dimensions can be specified as static, auto-sizing, stretching, percentage, weighted flex or min/max or even as combinations. All widgets are based on flexible layout managers, which are instrumental to many advanced layout abilities. Interface description is done programmatically in JavaScript for enhanced performance.
Defining the user interface needs no
HTML, and styling the interface needs no
Cascading Style Sheets
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
(CSS). Simple appearance themes are used to style colors, icons and other visual properties; they also support runtime switching..
Object-oriented programming
qooxdoo uses a closed form to define new classes. The global class constructor takes two arguments, the name of the new class and a map that provides values for a set of predefined keys, like 'construct' (the constructor method hook), 'statics' (for static class attributes and methods), 'members' (for instance attributes and methods) and 'destruct' (for the destructor). This (possibly large) map represents the class definition. Classes can be derived from other classes using the 'extend' keyword.
The following application skeleton gives an impression of how that works. The code will create a small application with a button that features a tooltip and opens an alert box when pressed. You can also run and edit this code in an online Playground:
qx.Class.define("custom.Application",
);
Interfaces
Interface or interfacing may refer to:
Academic journals
* Interface (journal), ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Lin ...
and
mixins are defined and used in a similar fashion.
Ajax
While being a client-side and server-agnostic solution, the qooxdoo project does include optional
RPC
RPC may refer to:
Science and technology
* Rational polynomial coefficient
* Reactive Plastic Curtain, a carbon-dioxide-absorbing device used in some rebreather breathing sets
* Regional Playback Control, a regional lockout technology for DVDs
* ...
server implementations (currently in
Java,
PHP,
Perl and
Python) to demonstrate client-server communication. An abstract transport layer supports
queues,
timeouts and implementations via
XMLHttpRequest, Iframes and Scripts. Like the rest of qooxdoo, this layer relies on event-based programming to simplify
asynchronous
Asynchrony is the state of not being in synchronization.
Asynchrony or asynchronous may refer to:
Electronics and computing
* Asynchrony (computer programming), the occurrence of events independent of the main program flow, and ways to deal with ...
communication.
See also
*
Ajax (programming)
*
Comparison of JavaScript frameworks
*
JavaScript framework
*
JavaScript library
References
Sources
DemosAPI referenceSourceforge project pageVideo brief on Ajaxian.com*
External links
*
{{Widget toolkits
JavaScript libraries
Ajax (programming)
Rich web application frameworks