JVx 2.0
Hello everybody. 1st April is over and no worries, we won't stop JVx
Today is a great day because I'm very happy to announce JVx - version 2.0.
It's an awesome release because JVx 2 contains so many new productivity features. It's still a small codebase and the quality is very high. We made a big step forward and want to show you some details.
First of all, the LoC analysis. Here are some very interesting numbers for you:
JVx library | Swing UI | |||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||
JVx library (Test cases) | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
This time, we broke the mark of 100.000 LoC (112.507). We thought it would be possible with 1.0 but now it happened! Our code is still well documented with about 42% of the LoC.
Some additional numbers:
Files and Tests | ||||||||||||
|
||||||||||||
Still a small codebase and still very easy to maintain. | ||||||||||||
|
||||||||||||
TOP 10 classes
Classname | LoC | |
MemDataBook | 3.399 | |
DBAccess | 3.070 | |
JVxTable | 2.448 | |
ArrayUtil | 2.000 | |
StringUtil | 1.477 | |
DBStorage | 1.290 | |
FileUtil | 1.277 | |
JVxFormLayout | 1.178 | |
XmlNode | 1.054 | |
SwingApplet | 1.053 |
This is amazing because we have so many features and so less code. I think our quality standards have been met!
And last but not least, a short overview of new features:
- New metadata cache
The caching mechanism is now a real killer feature. No ORM library or any other DB API has a similar technique. JVx is unique in this area. What we do? We reduce database calls and requests. We have different cache levels like Global, per Session or per Connection. The cache is a learning cache and your application will be super fast in production mode.
- Improved Constraints check
Our linked cell editors (comboboxes, drop-downs) now shows columns from tables referenced via Foreign keys. Now the master table shows columns from tables referenced with Foreign keys. And also the resulting comboboxes show columns from referenced tables. If you have a clean database model, simple use your master table and the GUI is ready. If your database model isn't as clean as it could be, simply define your references with our APIs.
- Cache mode for Security Managers
Before JVx 2, a security manager was cached globally per application. Every session was checked with the same security manager. With JVx 2.0 it's possible to have a security manager per client. Every client could have its own security manager instance.
- Focus listener support
This is not rocket-science but important for all kind of UIs. Now JVx has support for it.
- IController and IControllable
This is completely new because it allows data navigation with centralized controls. Read more.
- NO more session blocking
Before JVx 2 the server implementation blocked simultanuous calls via DefaultObjectProvider. This wasn't a real problem for Desktop applications and with few users but it was in Web environments - especially with our Vaadin UI - or with e.g 500 users. This blocking is gone.
- Session isolation
Usually, a session has a specific Life-cycle object with business objects and actions. Such Life-cycle objects have direct access to the MasterSession of an application for convenience. If you want Life-cycle objects without access to the MasterSession this is the right feature for you.
- New layout: UIGridLayout
The layout is row/column oriented like good old AWT GridLayout.
- Super-lazy-loading
If you use down and up keys to navigate in tables with details, you'll be surprised. The standard lazy-loading mechanism loads data in blocks and on-demand. If you had master/detail relations in your screens this wasn't enough because every master record change did load the detail records. With JVx 2. this will happen if you release the down or up key. This is a nice productivity feature.
- CheckBox CellEditor
We now support "real" Checkboxes as cell editor. Our choice cell editor is image based and it doesn't support LaFs. Of course, with the right images it might look like a native Checkbox. Now you can use native Checkboxes. We recommend the choice cell editor for columns with multiple possible values, e.g. Yes, No, null. The Checkbox only has two states Yes or No.
- MetaData customization
With JVx 2.0 it's possible to set/change MetaData per Storage, e.g. add a Primary Key.
The list is not complete but shows biggest changes and all details are available in the Changelog.
Please download JVx 2 and send us your Feedback.