jaba has over 100 classes that will help the developer to code in Javascript using the same mindset they use to code in languages such as Java or C#. Some of the features include:

  1. Classloader. Load your classes dynamically. For instance,

    jaba.uses("jaba.util.Hashtable"), or load your own classes like so:
    jaba.uses("mycompany.mypackage.MyClass"), or like so
    jaba.uses("/scripts/MyScripts.js")

  2. Logging (publish and subscribe supported).
  3. Event handling. Both non-ui and ui-based components have rich event models. Multicasting is supported.
  4. Robust Ajax and XML support. The XmlResultset is similar to a JDBC Resultset or ADO Recordset and is easy to work with.
  5. Databinding to page elements. Bidirectional updating supported. No code required to implement.
  6. Rich Exception model. Stack traces (even for Internet Explorer).
  7. Widgets, input handlers and formatters. Widgets are designed to use tag binding or Javascript binding, and many can be bound to an DataSource.
  8. Themes. Widgets use themes. Override their style names at runtime, or add a new theme. Easier still, simply change a property file to change the color scheme for the current theme.
  9. Pretty code printers. Print code snippets using the built-in syntax readers/writers for most common languages. Print code listings from Javascript, to SQL, to XQuery with just a couple lines of code.
  10. Interfaces. Many of the components are not hard-wired to specific classes, but rather to interfaces. Simply implement the interface and use your own classes in place of the jaba version.