qooxdoo

Source: Wikipedia, the free encyclopedia.
qooxdoo
Stable release
7.2.1 / July 11, 2022; 21 months ago (2022-07-11)[1]
Repository
JavaScript application framework
LicenseLGPL, EPL
Websiteqooxdoo.org


qooxdoo

toolkit
and high-level client-server communication.

Framework

qooxdoo is entirely class-based, tries to leverage the features of

parser that is an integral part of the automatic build process and is used to optimize, compress, link and deploy custom applications, and generate documentation. Internationalization and localization of applications are supported. qooxdoo can be downloaded[3] as a comprehensive SDK
.

GUI toolkit

Despite being a pure JavaScript framework, qooxdoo is quite on par with GUI toolkits like

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

Cascading Style Sheets
(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:[4]

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", 
                                          "icon/22/apps/internet-web-browser.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.tooltip.ToolTip("A nice tooltip",
                                                   "icon/32/status/dialog-information.png"));

      // Add an event listener
      button1.addListener("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

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.

See also

References

  1. ^ "Release v7.2.1 · qooxdoo/qooxdoo". github.com. 2022-07-11. Retrieved 2022-10-09.
  2. ^ "qooxdoo Requirements". Retrieved 2 February 2011.
  3. ^ "qooxdoo Download page". Retrieved 2 February 2011.
  4. ^ "Playground". Retrieved 2 February 2011.

Sources

External links