A new version has been released.

The most interesting news is the complete refactor of the UI tags. RailoAjax library now provide bridges classes that need a speficic adapter to perform the action required. This allows to switch between one library support to another with no need to change the core code.

An example can be found here.

Once the concrete implementation is done ( the Ext cfwindow is already done ) you can choose the library using the cfajaximport tag.

<cfajaximport library="ext />

Having implemented a bridge pattern for any UI implementation has also allowed us to provide a set of new events provided directly by the Railo.Events engine that do not rely on the specific implementation making code even more portable. The following event has been added :

  • Window.beforeCreate
  • Window.afterCreate
  • Window.beforeShow
  • Window.afterShow
  • Window.beforeHide
  • Window.afterHide
  • Window.beforeClose
  • Window.afterClose
  • Layout.afterTabSelect
  • Layout.beforeTabInit
  • Layout.afterTabInit
  • Layout.beforeTabCreate
  • Layout.afterTabCreate
  • Layout.beforeTabRemove
  • Layout.afterTabRemove
  • Layout.beforeTabSelect
  • Layout.afterTabSelect
  • Layout.beforeTabDisable
  • Layout.afterTabDisable
  • Layout.beforeTabEnable
  • Layout.afterTabEnable

What is usefull is that these events will always be usable in the same way not depending by the the tag concrete implementation. So If I need to listen to a window hide event and I have choosed the ext implementation I can use both the following syntax:

Railo.Events.subscribe(callback,'Window.beforeHide')
//or
Railo.Window.getWindowObject('mywin').addListener('beforeclose',callback,this);

The RailoLayout.js package has already been rewritten with the default jquery implementation.

Version 0.5.2 will allow ui tags to receive an options arguments called 'args'. This struct will be converted into json and pushed into the implementation init method. In this way any config defined by the jquery or ext apis will become available. I am also working on a start for cfmap implementation. 

 


andreacfm