The WebAbility® Network Developers - Documentation
WebAbility Site

I. Welcome

"WAJAF", or "WebAbility Javascript Application Framework", is a real application framework written in Javascript to build complex dynamic applications that will run in the client browser.

A framework is a base system that is used to build and control dynamically, with security, an application and its events.
The framework is made with various components and libraries. The most important is surely the dispatcher which is used to control the flow of events of your application. The dispatcher is generally packed with a SAS (System of Advanced Security), that will control the execution and access data and application logical blocks.

WAJAF is compatible with any existing javascript DOM tools like Prototype, Moo tools, Dojo, etc. to access and control your DOM nodes. WAJAF is not invasive and respect all your javascript code.

Actually, WAJAF is compatible with:

Internet Explorer 9, 8 and 7
Firefox last release down to v4
Opera last release down to v9
Safari last release down to v5
Chrome last release down to v1

You obviously need the javascript authorized to run on your browser to use the WAJAF and the applications developped with it.

II. ¿How does it work?

WAJAF work on 2 lemas:
- No-HTML web applications
- One-page applications

All the programation logic is made in javascript and build in realtime all the HTML DOM elements needed to run your application. The business rules of the application is sent by the server in JSON format so the bandwidth is lowered.

At a glance, WAJAF works like this:
- Load the low level javascript libraries (core, managers)
- Load the WAJAF 4GL main dispatcher
- The dispatcher ask to the server the application code to execute
- When the code is loaded in the browser, it will analyze and call the missing libraries
- Finally when all the libraries are set, it runs the code, listen and dispatch events, send information to the server.

The programmer will build the whole application in the server.
The code itself can be your prefered programing language (PHP, JAVA, Python, etc.), an XML descriptor, or a javascript object.
The three of them can be mixed to simplify the developpement, as needed.

In this document, you will find:

  • Main structure of the javascript framework explained [New]
Contains the explanation of what is the core, the managers, the 4gl dispatcher, the applications, the containers and the elements.

  • The 4GL manager [New]
Explains the main 4GL manager and dispatcher, the nodes tree, the containers, zones, templates, dataset and elements.
Explains the events system, including javascript events, notifications events and structural events.
Explains how to access to any node in the application structure and between applications, and how to create/destroy dynamically new nodes by code.
Finally explains how to communicate with the server, how to trigger an event and get the result of it.

  • Applications [New]
Explains what is an application and how it works.
start, poststart, stop, poststop, resize, postresize events; resize() and destroy() methods.
Explains the applications structure, how to create them, how to call and run them, how to terminate them.
Finally it explains how the objects build the XML and how the XML is tranformed into the JSON data to send to the client.

  • Containers [New]
Explains what is a container, a zone, and how they work.
createZone(), showZone(), hideZone(), activateZone(), destroyZone(), setValues(), getValues(), destroy() methods.
Finally explains all the known containers natively packed with the WAJAF.

Explains what is an element and how it works.
setValues(), getValues(), destroy() methods.
Finally explains all the known elements natively packed with the WAJAF.

  • Interactive forms [New]
Explains how the group container and its elements work together, to build complex forms.
Explains too how the data transfer with the server work on Ajax and JSON transport.

  • Server side PHP objects [New]
Contains the explanation of the server side PHP framework, dispatcher, XML, aplications, objects.