CAI Development
CAI also includes a number of tools to aid in the development of AJAX applications. All of them are available through a browser-based interface that comes included with the CAI installation.

Figure 1. The Layout Painter.
- The Layout Painter: This is the primary WYSIWYG tool for developing CAI applications (see Figure 1). Primarily, this is an XML tree-styled look at your page, along with a dynamic view of your UI. This also includes the Code Assistant, in which you can edit the Java Adaptor Class(es) for your application, and the Literal Assistant which allows you to work with textual information (including multi-language support).
- The Project Manager: This allows you to integrate larger projects consisting of multiple UI screens into a single project.
- The Layout Manager: This allows mass integration of XML UI definitions.
- Style Sheet Editor: This offers easy editing of styles for your UI. CAI applications support the CSS standard.
- The Control Editor: This allows developers to integrate their controls into their CAI applications.
- The WAR Packager: This allows for easy deployment of your applications.
- Java API for Mass HTML Generation: This triggers massive regeneration in case of upgrades to the server and such.
- Eclipse Plugin: This is also available for those who are more comfortable using Eclipse.
Testing, Testing
I tried building a simple layout with form controls, mostly to see how I the IDE interface worked and, frankly, I realized that I would need a few hours just to figure out what would go whereI kept getting validation errors saying that the item I was dragging couldn't be a child element of another one. I also found that the Layout Painter is altogether lacking the space one would need to throw stuff around, tweak the adaptors, and suchbut I think the Eclipse plugin is where I would spend my development time, so this is only a minor concern for me.
However, to really understand their API requires a bit of a learning curve; I found some of the it to be a bit developer-unfriendlywith its unintuitive control names (TABLE0, ROWTABLE0what's the difference? Plus, 0 is a strange way to denote invisibility. Then, there is TEXTGRIDSSS2, in which "SSS" apparently equals "server-side scrolling," and so forth). Also, I couldn't quite figure out how to do the server-to-client binding mechanisms. Unlike other RIA tools I have used, it seemed there were multiple ways to do it and right/wrong times for each.
Having said all that, CAI deploys in J2EE using standards and has the ability to package applications as WAR files (which is the standard J2EE method). This gives it the ability to integrate into an enterprise environment and its existing processes with ease. This includes embedding other Web pages into CAI applications and vice versa.
Heading in the Right Direction
Overall, it seems that SoftwareAG is heading in the right direction with CAI. Probably the greatest advantage of CAI is it's adherence to standards: AJAX, J2EE, CSS, Web Services, and the browser-based format. All of these make it easy for a developer to integrate CAI application with existing applications and to ensure compliance down the road. The toolset, while still young at version 1.4, is fairly comprehensive and the documentation is good. This is definitely an application worth watching in the RIA space.
| Home / Articles
/ Rich Internet Applications Made Easy with the Composite Application Integrator / 1 / 2 / |
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.