OpenLaszlo Reference Guide

Table of Contents

1. Using the Reference
1.1. Section Organization
1.2. Reference Entry Details Section
2. Other Sources of Information

The OpenLaszlo Reference describes all of the public XML tags and JavaScript APIs in the LZX language.

1. Using the Reference

1.1. Section Organization

The Reference Guide is divided into chapters, each describing a distinct category of programming interfaces. Each chapter contains a number of sub-chapters, corresponding to sub-categories of APIs, and each sub-chapter contains entries for each of those APIs.

Each reference entry contains a title (with an optional short description), a synopsis (floated to the right of the page in HTML), an optional Usage section, a Description, followed by a Details section. Each of these is pretty self-explanatory except for the Details section, which is described in the next section.

  • Structure

    These elements structure the code within an application, allowing you to break it into multiple files or to define custom elements.

  • Language

    These are are the tags you use to create and expand your own new tags.

  • Scripting

    JavaScript APIs.

  • View Basics

    These are the elements that place a view on the canvas. A view controls the presentation of media and data, and responds to user events.

  • Base Classes

    Base classes are designed to be extended. The classes in the Components section extend these.

  • Components

    These are user-interface components in the OpenLaszlo components library. These tags can be used to build to web applications. See the Components Hierarchy for an interactive guide to these classes. An application can include the entire set of OpenLaszlo components by including the line <include href="lz"/>. An application can include individual OpenLaszlo components by including just the files that define those components.

  • Animation

    These elements change the values of another element's attributes over time.

  • States

    Visual states and behaviors can be attached to and removed from an object over the course of an execution.

  • Layouts

    These elements determine the position of views within a parent view.

  • Menus and Commands

    These elements are for creating menus and menu bars, and processing commands.

  • Services

    Services support interacting with the external environment.

  • Data

    The data elements and classes are for requesting data from a server and binding it to views.

  • HTML Markup

    This secion contains tags that mark up HTML text. These tags may be used within a <tagname link="true">text</tagname> element, tags that extend this tag, and tags whose definition includes a definition for <attribute name="text" type="html"/>. (See the documentation on Section 2.4, “Text Classes” for more information about this last category.)

  • Media

    These are elements that import media objects into an application and control their use.

  • Audio Video

    Elements for interacting with audio and video devices, such as cameras and microphones.

  • RPC

    Implementation and APIs that invoke remote procedures calls or services over the network.

  • Charts and Graphs

    Elements for creating charts and graphs. These components are of beta quality and are subject to change.

  • Development

    Elements and APIs that are used during development, for debugging and testing.

1.2. Reference Entry Details Section

The Details section contains information about the methods and properties of each LZX tag-class. Each method or property is described using both LZX syntax and JavaScript syntax.

Fully understanding a method or property entry requires understanding a bit about how LZX tags correspond to JavaScript classes. Almost every LZX tag in the language -- and every LZX class declared in your program -- is implemented under the covers as a JavaScript class. An LZX tag's methods and attributes correspond to JavaScript methods and properties. LZX's events and handlers correspond to more complex JavaScript constructs. How to combine JavaSaript and LZX tags is described in more detail in Section 6, “Combining Tags and Script in LZX Programs”.

Certain information about a class or its methods or properties can only be described using JavaScript syntax. For example, an item can be public, private, or protected (meaning that it is only visible to a subclass); this information is given as a modifier to the JavaScript item declaration.

1.2.1. LZX and JavaScript Types

Certain parts of the LZX language are actually written in JavaScript, so LZX type information given for these entries in the Reference Guide must be inferred from the original JavaScript type declaration. All other portions of LZX -- including your application source -- are of course written in LZX, so JavaScript type information given in the Reference Guide for those portions (useful when writing scripts) much be inferred from any typing information given in the LZX source.

LZX types are mostly advisory, but can have an effect on program execution. See the Section 6.2, “Attribute types” in the OpenLaszlo Application Developer's Guide for more information.

2. Other Sources of Information

  • Developer's Guide: targeted at software developers who have familiarity with the concepts of object-oriented programming as implemented in languages such as Java, C++, or JavaScript, and with the fundamentals of XML data formats, including tutorials and scores of live, editable examples.

    • Tutorials: part of the OpenLaszlo Application Developer's Guide, the tutorials present simple, live examples that you can edit and run to help you become more familiar with OpenLaszlo concepts.

  • OpenLaszlo System Administrator's Guide: how to put OpenLaszlo applications on the web

  • Laszlo Explorer: all the documentation listed above, and:

    • Demos: rich internet applications that show unity of design

    • OpenLaszlo in Ten Minutes: an interactive guided tour to get you started

    • Small Applications: shorter programs that illustrate specific aspects of OpenLaszlo development

    • Components: an illustrated compendium of OpenLaszlo's prebuilt, user-extendable objects

  • OpenLaszlo Community: a way for you to get involved in OpenLaszlo development and support

  • Developer Forums: discussion lists about all things OpenLaszlo