Table of Contents

Anatomy of an Application


A complete documentation of all system objects that are to be used in creating Vexi applications. This is reference material only and contains few examples or explanations beyond descriptions of specific properties and concepts.

If there are any discrepancies between this reference and the implementation then please log it at the project website on Sourceforge.

Anatomy of an Application



UI / Application

A Vexi UI is defined by a set of files (template files, and resources) all accessible on the Vexi Path. Together, these files specify the appearance and behavior of a user interface. The term UI is prefered to Application as typically the Vexi code is just the client part of an application.


A Vexi Archive or is a zip archive of template files and resources with the ".vexi" extension.


The box is the fundamental building block of a Vexi user interface. All graphical components are created using combinations of box layout and widgets created using box layout.


The Core, or Vexi Core refers to the program that will execute a Vexi application. The reference implementation of the core is implemented in Java and hosted on sourceforge.


This is a small component that is downloaded the first time a client visits a Vexi application. It downloads the Vexi Core, and launches it with the appropriate parameters indicating where to find the initial UI. The launcher is outside the scope of this document. Note that the launcher is specific to each server it runs from in order to prevent misuse.


The Path, or Vexi Path is the list of locations from which templates are loaded. A location is a either a .vexi archive or a directory, and may either be local or a http:// path.


Remote Procedure Call. Usually in Vexi it refers to one of the inbuilt protocols, XMLRPC or JSON. Though implementing other protocols is possible over using the lower level HTTP api in Vexi


In this document, the term "server" refers to any other computer which the client makes RPCs to (XMLRPC, JSON or other HTTP). Note that it is possible for the client and server to be the same machine.

Template File

A Vexi Template File or .t is a Vexi sourcecode file. It is XML+vexiscript. The XML describes the initial structure (of boxes or other js) that will be created when the template is instantiated and the vexiscript defines the behaviour.

To put/write

In ECMAscript, when you change the value of a property on an object, you are putting to that property, or writing to it. For example, the ECMAscript expression "obj.a = 5" puts the value 5 to the 'a' property on object obj.

To get/read

In ECMAscript, when you access the value of a property on an object, you are getting that property, or reading from it. For example, the ECMAscript expression return (3 + obj.b) gets the value of 'b' property on object 'obj' and then adds 3 to it before returning the result.


This is the interpreted language which defines the behaviour of Vexi applications. It is essentially ECMAScript 1.5 (more commonly known as JavaScript) with enhancements but since there are notable enhancements and the Vexi Core interpreter is not fully ECMAScript-compliant, therein this document will only use the term VexiScript.


Web Enable IT Ltd (www.webenableit.com)
AFT Inc. (www.aftinc.net)


Copyright © 2011 The Vexi Project (vexi.sourceforge.net)