Converting XUI projects sticky icon

Most of the package and class renaming needed to convert a XUI project to an Aria project can be accomplished using the project conversion tool found in the SourceForge File Release System (FRS) or from SVN.

The project scans the source of the project remapping whatever needs to be remapped. The modified source is then written back to the project. Note that you will still need to perform some manual changes to the project to complete the conversion. For instance the library references within your NetBeans or Eclipse project will need to be updated as will the startup class. Some project resources should also be changed, including any license references and images or icons that refer to XUI.

Polishing Scala SCells

CellReference FormulaParsers FormulaException RichChar FormulaException TableUpdate FormulaError JTableMixin TableCellRenderer TableCellEditor AnyRef ValueChanged SpreadSheet SplitPane JTableMixin ListView TableHeader EmptyBorder LineBorder SystemColor TextField TableHeaderRenderer EditDone SwingConstants

Martin Odersky's book Programming in Scala ends with a demo spreadsheet application SCells. The example ends with a number of suggestions for improvements:

  1. Make the spreadsheet resizable
  2. Add new kinds of formulae
  3. Prevent recursive cell references
  4. Enhance error handling
  5. Add formula entry at the top of the spreadsheet.
  6. Add more functions

In addition to these improvements the SCells application could use some fixes, as it looks a bit ugly. Specifically

Whither JavaFX?

The JavaFX challenge is over and luckily I won a minor prize, but hey - congratulations to those who won big.

In fact congratulations to anyone who managed to submit an entry! My feeling is that JavaFX is still a bit premature and under developed.

I started out with the real goal of learning JavaFX and really seeing what it was up to, after all it is one thing reading about a technology and another actually using it. I also wanted to try out some things I thought would be a good fit for JavaFX. I ended up being very frustrated on a number of fronts.

Some of the core features are very nice, well implemented and simple to use. Take binding for instance, it is a really winner, saving lots of coding and making some idioms more intuitive. On the other hand things like layout resizing barely work, quite surprising when you recall the layout mantra that went with Swing.

Other features, like the Swing integration are dumbfounding and just downright disappointing, specially given the paucity of JavaFX components and widgets.

What No tooling???

Guide Layout Enhancements

The Guide Layout is a powerful and flexible layout that provides for a more natural way of designing and laying out forms. In Aria 4.0 the guide layout is undergoing so enhancement and one of these enhancements: the display of guides at runtime, is designed to make it easier to code and debug the layout at runtime.

Being able to clearly see the guides makes tweaking them easy :-)

Layered Pages

Layering of pages has been added in Aria 4.0 and each page is now by default layered. Layering provides for multiple transparent containers within the page space. Layers can be shown, hidden, locked and moved in z-order both at design time and in the finished application.

Click on the image to jump to a screencast of page layering within Aria's NetBeans editor plugin.

Changes in Aria 4.0

The table below lists the changes and enhancements made in Aria 4.0. The table will be updated until the final release of Aria 4.0 is made public.

Commons Validations

Commons Validations has long been a popular package for validation in the Spring and Struts world, and now it is available in th Aria framework.

Aria has its own lightweight validation and though it is extensible, there have been few user conributions to help flesh out the validator range. Commons on the other hand as a much broader set of validations available, so leveraging this framework was an obvious choice. The downside however, is that commons brings with it some dependancies and this makes it quite heavy for what it does.

The integration of commens therefore has been by way of a separate project/jar so that it can be included optionally. In addition the integration includes support for the latest POJO features and can be easily enabled by adding the following to the validation declarations

The MetroBank Demo

The MetroBank example is intended to showcase some of the more advanced and newer features of Aria and in particular the Spring and POJO integration.

The sample comprises an Aria swing client application which communicates with a Spring backend. The Spring backend which persists data to a HSQLDB database via JPA exposes POJOs to the client by way of annotations that cause DTO objects to automatically generated on demand for the client. These POJOs are then rendered in templates on the client side complete with automatically data bindings and validations.

 

Aria 4.0, Development Snapshot 2: What's New

Several major enhancements have been made in this snapshow, including a major revision of the styles handling and further enhancement of the POJO handling.

PojoPanels and Dialogs

PojoPanels can now be nested within dialogs using Aria's PojoDialog class. For example:>/p>

 

EditAccountDetails accDetailsDialog = (EditAccountDetails)PojoDialog.createDialog(
    EditAccountDetails.class,
    PojoDialog.READ_ACTION, 
    "pojo/currentAccountDTO", 
    "Account details" );

accDetailsDialog.setLogo( "hands.gif" );
accDetailsDialog.setViewFile( "views/accounts" );
accDetailsDialog.showDialog( this );

int status = Dialog.getLastReturnValue();
if ( status == Dialog.OK_CLICKED ) { 
  ...
}

 

The view file is a collection of presentation attributes. Using a view allows the same POJOs to be presented in different ways for, say, different users or different situations.

Create a dialog from the Generic PojoDialog

The above creates a dialog for the pojo, nesting a panel within the dialog and providing some basic CRUD operation support. The dialog uses a PojoDialogTemplate.xml file so that the appearance of the dialog can be fine tuned for individual applications.