OpenXava 4.9 released: Java Framework for Rapid Development
OpenXava is an AJAX Java Framework for Rapid Development of Enterprise Web Applications.
In OpenXava you only have to write the domain classes in plain Java to get a web application ready for production.
OpenXava 4.9 has many new interesting features such as:
- We have improved the list with better behavior, new filter options and some style improvements.
- PDF reports now are better adjusted, so most automatic reports are ready to be used.
- 'My reports' has more options and it's easier to use. Now you can use your OpenXava application as a reporting tool.
- Many other improvements and bug fixes.
These are the improvement for list and collections:
- Combos and textfields in list filtering adapt their widths to the column and they are always completely visible.
- 'in group' and 'not in group' (the 'in' of SQL) allowed to filter in list, collections and 'My reports'.
- Link to hide filter is in the filter row itself.
- Links to show and hide the filter are only visible in customization mode. Thus we have a less cluttered user interface.
- New icons for customizing list and collections.
- Paging in list and collections allows 12 rows per page. Useful if you have a row per month.
Now list mode of OpenXava is still better.
Improvements in automatic PDF reports
These are the automatic PDF reports improvements:
- Algorithm to adjust columns optimized: right column is better adjusted and columns that not fit are dropped.
- Width of columns is calculated from the real content, not from declaration.
- Long labels can use several lines if needed.
- Reports with no data show a page with an informative message instead of an empty report.
- Reports use qualified labels for column header, just as list mode.
- Detail line height optimized.
In this way, more automatic reports are ready to be used, therefore the programmers have to create less reports by hand.
Improvements in 'My reports'
These are the 'My reports' improvements:
- The combo for adding columns only shows until second level properties by default.
- Labels instead of internal names in combo for adding new columns.
- Initial condition and ordering are populated from the current list.
- Duplicate columns allowed to filter by range or complex conditions, though only one is shown in the report.
- Dialog title of column editing improved.
- Refactoring of 'My reports' code (CustomReport renamed to MyReport) that produces the loss of current stored user reports.
Thanks to these improvements in 'My reports' and PDF generation your users can use your OpenXava application as a tool for creating their own reports.
We have done a lot of improvements in other areas:
- @AssertTrue message can be customized, even values of properties of the current entity can be used.
- When a ConstraintViolationException is thrown the message to the user is obtained from the constraint definition.
- @Size validation annotations produces a more significative message.
- Support for multivalue editors with checkboxes.
- It's possible to exclude the HTML head code when calling a module using htmlHead=false as argument.
- Order for properties when no @View is defined is consistent for all Java vendors.
- Subcontrollers are not shown when they have no action.
- Style of subcontrollers improved.
- Subcontrollers behavior improved: now they are closed on clicking again on the button or outside the popup menu.
- Code for buttonBar.jsp and subButton.jsp downgraded to Java 1.4.
- New TypicalNewOnInit controller that starts the module in detail mode ready to create a new entity.
- New methods addDays(), lastOfYear(), lastOfMonth() and firstOfMonth() added to Dates.
Though this is not a maintenance version we have done some fixes:
- Fix: Methods setYear(), setMonth() and setDay() of Dates do not work.
- Fix: Wrong OpenXava version number when using some third party libraries.
- Fix: Filtering in list by Timestamp or DATETIME does not allows to specify the time part.
- Fix: Totals in automatic PDF reports use two lines when the number is too large.
- Fix: Little vertical white bar in subcontroller button.