This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

VisionX - fast user switching

VisionX 2.0 will have another great new feature. It's fast user switching.

An application created with VisionX is always a multi-user application. It has roles and roles can be assigned to users. You can take care of users and roles in work screens, e.g. set filter conditions or hide components depending of the user or role.

To test your screens with different users, you had to logout and login manually. This was cumbersone and not productive. With VisionX 2.0 it'll be possible to switch the user with two mouse clicks:

Switch user

Switch user

It's the next step to enhance productivity.

It's done

First of all, a big welcome for our new JVx commiters Robert and Thomas :)
Both have successfully solved their first tickets and are now part of the community.

Two of their tickets were number 1 and 2 and they were special because they were created in October 2009.

The other curious thing is that the last created JVx ticket had number 999 and the next ticket will be #1000 :)
This is a coincidence.

We are looking forward to the next 1000 Tickets.

It's great to have you in the community!

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
LoC   Type
63.447   Code
54.335   Comments (~ 46% of Code)
16.823   Empty lines
134.605   Total
LoC   Type
32.410   Code
18.285   Comments (~ 36% of Code)
7.271   Empty lines
57.966   Total
 
JVx library (Test cases)  
LoC   Type
16.650   Code
8.946   Comments (~ 34% of Code)
5.849   Empty lines
27.052   Total

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
JVx library source files   501
Swing UI source files   132
Test source files   109
Total   742
Still a small codebase ;) and still very easy to maintain.
 
Unit tests (no UI, without manual perf. tests)   592
Class coverage (without UI)   78%
Method coverage (without UI)   66%

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.

JVx Client available in the AppStore

jvxclient_preview Our application is available in the AppStore for your iOS devices.

It's an open source application. The whole source code is available on SorceForge. The application itself is a client application for JVx applications. Its your custom ERP in the pocket.

Simply manage your customer records, wherever you are. Use one client for all your JVx applications. If you are VisionX user, it's very easy to customize your applications for your mobile device because VisionX has built-in support for it.

The Preview app has one limitation: It only shows one screen.
We'll release a version without this limitation a little bit later.

The Preview client should be the first choice for VisionX users because it's free. If you need full functionality, we'll offer a client without limitations and customized to your needs.

VisionX - Jar signing support

Today we've some great news for you!

Our upcoming Release of VisionX will support jar signing.

Global keys

Global keys

 
App keys

App keys

Jar signing?

This is a long story, but in short: Since latest JDK 1.7 releases, Oracle introduced a new "security feature". The new feature is available via Java ControlPanel, Security tab. There are different security options like Medium, High, Very high. If you're using default setting (high) it's not possible to start Applets in your Web browser or JNLP applications via Webstart. If you change the default setting to medium, it'll be possible to start applets and JNLP applications but a big warning dialog will appear. This dialog contains a lot of security information and bold red letters. Red is always a bad color for users, because it stands for danger.

This new security feature made it impossible to use VisionX' (Java in Broser) live application preview, because no one changed the default security.

We tried to find some workarounds but didn't find a real solution. The best choice was jar signing support directly via VisionX, but end-user capable.

The bad news: It was hard work ;-)

The good news: It's working!

VisionX will contain a self-signed Java certificate per default. No worries, you can add your custom/official certificates!
The default certificate is only for application tests and should never be used for productive applications.

Sign information

Sign information

It won't be possible to use Applets or JNLP Webstart applications with current and upcoming JREs without signing. So the only chance for VisionX was a self-singed certificate.

VisionX with AddOn support

Our next release of VisionX will contain support for custom AddOns.

What is an AddOn?

It's like a plugin, module, extension, ...
An AddOn can extend VisionX with custom libraries, custom configuration files, custom templates.
It configures YOUR VisionX.

One example is a custom application template. Create your own application and extend new applications from your own template. Use custom Login screens, custom background images and custom security managers. Everything will be possible with AddOns.

A new screen will be available for AddOn management:

AddOns

AddOns

The feature already is available in our automatic builds!

JVx' new Controller/Controllable - old school record navigation

Our upcoming release of JVx - version 2.0 will provide a nice new feature. It's a special record navigation for databooks. If you know Oracle Forms applications you should know what I'm talking about. For all others, a snippet from an Oracle Froms application:

Oracle Forms Navigation

Oracle Forms Navigation

We'll support similar navigation via JVx for our databooks without changing your whole application:

JVx Navigation

JVx Navigation

To support this old-school record Navigation, we introduced two new interfaces (IController and IControllable). If you need more details, read the Feature Request.

You should know that your existing applications won't change automatically. JVx has full support for new navigation but doesn't implement a UI for it. If you want to use it, you have to add your own controls like:

In your application init method:

UIButton butIns = new UIButton("Insert");
butIns.setImage(UIImage.getImage(UIImage.ADD_SMALL));
butIns.eventAction().addListener(this, "doInsert");

registerCommandButton(IControllable.COMMAND_INSERT, butIns);

And that's all you need. Don't change your screens or your UI controls. Everything will work out-of-the-box.

The event receiver should be an instance of javax.rad.application.genui.ControllerContent. Our Application javax.rad.application.genui.Application and javax.rad.application.genui.WorkScreen are ControllerContents. So it's very easy to use existing actions. All available actions are defined and implemented in ControllerContent, like

public void doInsert()
public void doEdit()
public void doDelete()
...

If you want to know the current state of an action command, simply ask:

isCommandEnabled(IControllable.COMMAND_INSERT_SUB);

If you want a different handling than already implement, simply overwrite the method

public void doConfigureCommandButtons()

and do whatever you want, e.g. hide buttons instead of disabling:

butInsert.setVisible(isCommandEnabled(IControllable.COMMAND_INSERT));



No worries, we still prefer record navigation directly on the UI control:

Control Navigation

Control Navigation

because it's easier for end-users to find the right buttons.
But especially Oracle Forms users will love the new Feature :)

VisionX Enterprise for developers

We made some smaller changes to VisionX that supports developers in their daily work. The first improvement is that database connection messages will be developer friendly (original message) instead of user-friendly (simple language). It'll be easier to debug VisionX applications because we've added debug information to included Open Source projects like JVx, JVx.vaadin, ...

VisionX enterprise comes with source code of our Open Source projects like JVx and JVx.vaadin. The source code matches the binary versions, used in VisionX, and a developer has exactly the same code to debug problems. It was possible to get the source code from our sourceforge project site, but you didn't know the exact revision.

We've also added VisionX API jar and javadoc archives to enterprise VisionX. That makes it easier to develop modules or AddOns (will be a new feature in upcoming releases).

VisionX integrates pgAdmin III

With VisionX 2.0 it'll be possible to access the embedded database directly with an integrated database editor. We use an existing tool with the name pgAdmin (see developer site). It's a very popular tool, especially for PostgreSql users.

Here's a screenshot of the integration

pgAdmin III

pgAdmin III

The tool will be available in every application and the menu item will be available in Edit menu.

The tool pgAdmin is open source and was not developed by SIB Visions! It was integrated for better database support and for all database lovers.

VisionX 1.2 preview III

VisionX 1.2 will be VisionX 2.0 because it's more than just a minor update. It's too powerful for 1.x and has awesome new features. We have so many new features and didn't release smaller version updates... but we started with weekly builds for our customers in decemter 2013.

Most of our customers have access to early release versions with all available features. This is not usual for product development companies, but we develop high quality software and take the risk :)

We've releasd a bigger update of VisionX with the version number 1.2.136 in december for all our customers. So please check your download areas.

Some new features for the next weekly build will be:

  • New data editor
    Edit a dataobject The new data editor supports more than one column in drop downs. It offers an advanced mode for customization of column names, table names and datatypes.

    It's powerful but still as simple as the old one.

    This thing rocks!

  • Templates for new applications
    Application template It'll be possible to create templates for new applications.
  • Templates for new work-screens
    Workscreen template It'll be possible to create templates for new work-screens.
  • Screen template with header and footer
    Header and Footer VisionX includes a custom screen template that has a header and footer panel.
  • New customizer for fixed screen size
    Fixed size It's possible to set a fixed size for a screen.
  • New customizer for styled screen
    Customizer It's so easy to customize the new screen template.

We have more amazing features, that covers reporting and new JVx features. If you have access to VisionX' nightly builds, simply check the changelog of VisionX and ProjX for details.