qooxdoo
File:Qooxdoo.png Webbrowser running a qooxdoo application. | |
Stable release | 1.0.1 / January 27, 2010 |
---|---|
Type | Ajax framework |
License | LGPL License and EPL License |
Website | http://qooxdoo.org |
qooxdoo (pronounced /ˈkuːksduː/) is an open source Ajax web application framework. It is an LGPL- and/or EPL-licensed multipurpose framework that includes support for professional JavaScript development, a GUI toolkit and high-level client-server communication.
Framework
qooxdoo is entirely class-based and tries to leverage the features of object-oriented JavaScript. It is based on namespaces and does not modify or extend native JavaScript types. Most modern browsers are supported (Mozilla, Internet Explorer, Opera, Safari/WebKit, Chrome).[1] It includes an API reference that is auto-generated from Javadoc-like comments. Among the accompanying tool set is a comprehensive JavaScript parser that is an integral part of the automatic build process and is used for optimizing, compressing, linking and the deployment of custom applications, as well as documentation generation. Internationalization and localization of applications are supported. qooxdoo can be downloaded[2] as a comprehensive SDK.
GUI toolkit
Despite being a pure JavaScript framework, qooxdoo is quite on par with GUI toolkits like Qt, SWT and others with respect to implementing user interfaces. It offers a rich set of widgets that resemble elements of native desktop applications. Built-in support for keyboard navigation, focus and tab handling and drag & drop is provided. Dimensions can be specified as static, auto-sizing, stretching, percentage, weighted flex or min/max or even as combinations of these. All widgets are based on flexible layout managers, which are instrumental to many advanced layout capabilities. Interface description is done programmatically in JavaScript for enhanced performance.
No HTML has to be used to define the user interface, and CSS is not required to style the interface. 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:
qx.Class.define("custom.Application",
{
extend : qx.application.Standalone,
members :
{
main : function()
{
this.base(arguments);
// Create button
var button1 = new qx.ui.form.Button("First Button", "image/test.png");
// Document is the application root
var doc = this.getRoot();
// Add button to document at fixed coordinates
doc.add(button1, {left: 100, top: 50});
// Attach a tooltip
button1.setToolTip(new qx.ui.popup.ToolTip("A nice tooltip",
"icon/32/status/dialog-information.png"));
// Add an event listener
button1.addEventListener("execute", function(e) {
alert("Hello World!");
});
}
}
});
Interfaces 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 server implementations (currently in Java, PHP and Perl) 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 communication.
References
- ↑ "qooxdoo Requirements". http://qooxdoo.org/documentation/1.0/requirements. Retrieved December 2009.
- ↑ "qooxdoo Download page". http://qooxdoo.org/download. Retrieved December 2009.
Related links
External links
- qooxdoo Homepage
- Demos
- API reference
- Sourceforge project page
- Video brief on Ajaxian.com
- Critical review on TechRepublic
|
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...