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

Category: News

VisionX 1.1 - What's new?

The first update-release of VisionX is out. But it is more than an update - it's a tool for the gods.

VisionX 1.1 contains about 90 Tickets, a brand new JVx release and the best UI designer ever, for End-Users and/or Software developers.

Other companies talk about Software Development in the cloud or really cool Rapid Application Development tools. Everything sounds very technical and is only for specialists. But where is the innovation?
It makes no difference where we develop software (local or remote) - it is still software development. If you are a developer... no problem. If you are interested but have no technical education... damn.

Are development tools as easy as modern Office suites? No way.

Wouldn't it be great to create handmade software without software development knowledge?
Don't think how. Think what. If you have an idea for an application, simply create it with VisionX.

Curious?

New in VisionX 1.1

  • 1-2-3 Reports

    Create a report in 3 steps. First - create a template, Second - Use your preferred Office solution (MS-Office, LibreOffice, ...) to customize the template, Third - Open the report in your application

    It is so easy to create a report and it is even easier to see your records in the report. VisionX fills your reports with filtered records, sorted or not, all available records or with master/detail related records.

    The current release handles filtered and sorted records automatically. A very important feature compared to 1.0.

    What You See Is What You Get.

  • Applications everywhere

    Install your application in your private network, a public cloud or use it only on your desktop. Use commercial or open source database products. Switch between databases or use all of them together. You can decide for yourself. Sounds too complicated?
    You are right, and many software developers have the same thoughts!
    With VisionX, your application is installed with 3 mouse clicks and we do the tricky stuff for you!

    Now you can decide what you want to install: only Application, only Database or both together.

  • Multi-User Spreadsheets

    Give VisionX your Spreadsheet and you get a Multi-User Online Application with access control for your records. Decide, who can see what.

    Now we have better support for different timestamp formats and a very intelligent delimiter detection. Don't waste time with the configuration, it just works.

  • Standardized Specifications

    VisionX creates specifications, that describes your application. It contains Screenshots of your current screens, describes all visible fields and gives you an overview of used actions.

    In the new release, we give you more details about fields, e.g. the possible values of choice boxes, the precision and scale of numbers, the field type (text, number, date, time, ...).

  • Legacy databases

    If you have old database applications and you need a modern frontend, use VisionX to create it. Simply connect to the database and create management screens with some mouse clicks. If you are not happy with the standard layout - change it until it fits your need.

  • Manage your datasources

    The new release comes with management screens for your existing datasources. Now it is very simple to change your administrative datasources or create new user-defined datasources.

  • Design-Runtime

    If an exception occurs in your application, switch to design mode with only one click. VisionX now saves even more time.

  • Copy screens, Copy elements

    If you need a screen copy - Create it per Drag and Drop. The keyword is <CTRL>. Press <CTRL> while you drag an element and you automatically create a copy when you drop it. Have you ever seen a visual designer that supports this?

Start today with your handmade applications. You just need an idea!

Application development without restarts

Some months ago, I read an interesting article about Javeleon. I thought it would be very useful for JVx developers because it is possible to start an application, modify screens and lifecycle objects and use the new instances live in the application without restarting it. It could save a lot of development time. Use the JRebel ROI calculator to see what you can save - It is amazing.

The integration of Javeleon in the JVx development process is very simple. Go to the Javeleon Download Page and download the standalone version 1.5 or 2.0 beta. It is not necessary to add javeleon.jar to the classpath of your application. If you use Eclipse, open the Run configuration dialog and add the following VM arguments:

-Djava.io.tmpdir=D:\temp\java
-Xbootclasspath/p:"D:\temp\java\JaveleonBoot\default"
-javaagent:D:\libs\javeleon\javeleon.jar=nbjdk=default;profile=java

If you use version 1.5 and version 2.0 for your tests, be sure that you delete the D:\temp\java\JaveleonBoot directory. Otherwise you get JVM startup Exceptions.

After the first start, watch the Java Console view because Javeleon is disabled until you request and download a license. Don't be affraid because the license is used to keep track of how many users Javeleon has. Details about the license are available here. With a valid license, it is possible to start development.

If everything is setup correctly, start your application and open a work-screen. Go back to Eclipse and modify the source-code of your work-screen, e.g. change the Layout, change the text of a Label or change some properties of a DBStorage. Be sure that your source is compiled (should be the default Eclipse setting) before you go back to your application. To see the changes in your application, simply close and open the modified work-screen.
You save the time to restart your application and perform a login. The MetaData cache also saves some seconds.

One negative point is that you need JVx as project dependency instead of the jar version.

Update

It is possible to use Javeleon without JVx project dependency. Simply unzip jvx.jar and add the created folder (class folder) to your classpath. It is not possible to compile JVx!

Update [2]

With the current Javeleon beta release of today (Jan. 17) - version 2.0.3 - it is possible to use jar files too. Now the integration of Javeleon works perfect.

Thanks to Allan Gregersen and the Javeleon Team for the support.

Quick edit in tables

Since JVx 1.0 we introduced the new quick edit feature for link cell and date cell editors in tables. We wrote about the new link cell editor representation some weeks ago.

It is great to see an arrow in the cell, because you know that the cell has an advanced editor. But if you seen an arrow, you try to click on it and expect that something happens! Before we introduced quick edit in tables, you had to perform a double-click to start editing. It is still possible to double-click a cell and start editing, but if you click on the litte arrow, the editor is automatically shown for you! Your users will love this new feature!

Quick edit

Quick edit

First Application example update to JVx 1.0

The new version of our first application - 1.2 - includes JVx 1.0.

We replaced the old JVx version with the new one and used the APIs.

WebUI update to JVx 1.0

The current version of WebUI - 0.10 - supports JVx 1.0.

Our showcase application already uses WebUI 0.10.

Showcase update to JVx 1.0

Our Showcase application is up-to-date! We have updated all libraries to the latest versions.
The source files are available here.

Test the new REST interface:

List of Contacts
List of Educations

Use admin as username and password.

JVx 1.0 - Statistics

JVx 1.0 is out and we have some Source Code statistics for you!

Our last statistics were determined for JVx 0.8. It is cool to compare 0.8 with 1.0. We have again worked very efficiently because 1.0 contains approximately 420 Features and Changes compared to 0.8. The Source Code grew by 18.767 lines, since 0.8. That means, we need 44 Code lines for one feature ;-)

Here are the numbers:

JVx library   Swing UI
LoC   Type
53.644   Code
47.837   Comments (~ 89% of Code)
14.570   Empty lines
116.047   Total
LoC   Type
29.595   Code
16.665   Comments (~ 57% of Code)
6.611   Empty lines
52.871   Total
 
JVx library (Test cases)  
LoC   Type
14.215   Code
7.735   Comments (~ 53% of Code)
5.102   Empty lines
27.052   Total

Hm... we thought that we reach 100.000 LoC with JVx 1.0, but we "only" have 97.454. Compared to the features of JVx, we have still too few lines of code. Maybe we should use a code generator or Object Mapper or simply integrate a bunch of new features?

Some additional numbers:

Files and Tests
JVx library source files   454
Swing UI source files   122
Test source files   95
Total   671
Absolutely fine! Very easy to maintain.
 
Unit tests (without UI)   657
Class coverage (without UI)   83%
Method coverage (without UI)   66%

The test result is not perfect but we are happy with it. We should nevertheless pay more attention to the test coverage... and we still need a solution for automatic UI tests.

JVx 1.0

We proudly present JVx 1.0!

What a year... The first release of VisionX is out, and we finished our work on JVx 1.0.
This release is awesome. It contains a total of 230 changes to 0.9.

We implemented really cool productivity features, some fancy UI features and we fixed some bugs. But the complete list is really long :)

Our original Roadmap for 1.0 had fewer Features, but thanks to the community, JVx 1.0 now contains a lot of wonderful things.

In the following weeks we plan to write more documentation especially about the new features and update our showcase and demo apps. It is not possible to write about everything in this posting - and it is also Christmas. One of the next postings will be some statistics about the JVx source code - LoC, quality, ...

We think it is also time for more WebUI... maybe another implementation... let's see. And of course, mobile devices are still very interesting. We started first attempts with Android some months ago. We made some POCs with Pivot and JavaFx 2.0 and who knows what the next year brings.

And we have still a lot of new ideas to speed-up the development time. Without JVx 1.0 you develop as fast as possible - but with JVx 1.0 you develop with the speed of light.


Now, a very short look at JVx 1.0

  • Database
    • Support for PostgreSql and MySql enum datatypes (automatic link cell editors)
    • High performance metadata cache
    • Block fetching
    • Scriptable db import scripts
  • Server
    • REST support for all objects and actions
    • DetachedSession and DirectServerSession introduced
    • DirectObjectConnection introduced
    • Transparent config encryption
    • LCO based security checks
    • Reduced communication requests
    • Better support for custom storages
    • Support for custom session manager and object provider

  • User Interface
    • Intuitive link cell editors
    • New cell formatting with image and insets
    • JNLP services integrated
    • Focus rect handling
    • En/Disable translation per component
    • New Locale handling


You find the complete list in the Changelog.

And last but not least, we look forward to your feedback!

Mysql and PostgreSql enum/set support

MySql and PostgreSql have some useful custom datatypes. Enum is one of them. MySql has a Set datatype too.

With an Enum, you define a list of allowed values, but only one value is possible for the column (same behaviour as check constraints in other databases)

With a Set, you define a list of allowed values and multiple values are possible for the column (more like a n:m relation). But you should not use Set datatypes, because it makes your data model unreadable and everyone wants clean data models?

With JVx 1.0 it is possible to use Enum or Set datatypes. On UI side you get a link cell editor (dropdown) or choice cell editor (e.g. checkbox).

Look at the image on the right. You see 3 columns. The first is a simple text column, the second is a linked cell editor (dropdown) and the third is a checkbox. Nothing special?

Not until you see the database table.
  Enum and Set

The table and types, in PostgreSQL, are defined as:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TYPE yesno AS ENUM ('Y', 'N');

CREATE TABLE person
(
   name text,
   current_mood mood,
   active yesno
);

The server-side storage handles the enum/set detection automatically and sets the linked cell editor and allowed values into the MetaData. You don't have additional work on UI side to get above table!
And this is really cool, isn't it!

But we recommend a new creation style for your storages in your life-cycle objects, to get the new features:

Old style:

DBStorage dbs = new DBStorage();
dbs.setDBAccess(getDBAccess());
dbs.open();

New style:

DBStorage dbs = getDBAccess().createStorage();
dbs.open();

Why we recommend this?

With 1.0 we introduce db specific storages like MySqlDBStorage and PostgreSQLDBStorage. This storages support database specific features that are not standardized.
We avoid/reduce boilerplate code whenever possible and who wants to change source code if the database is changed?

With the new style, you get the best storage available for your database, automatically. Of course it is possible to create e.g. a MySqlDBStorage() manually, but keep in mind that you are fixed to MySql.

After you changed your life-cycle objects, you get linked cell editors for your enum columns. But in many cases you use enum datatypes as check constraints e.g. Yes/No columns. In that case, a linked cell editor is not very cool - you need a choice cell editor.

JVx defines some default choice cell editors, via

UIChoiceCellEditor.addDefaultChoiceCellEditor(ApplicationUtil.YESNO_EDITOR);

in the Application class. With this mechanism it is very easy to define choice cell editors for your enum types.

Set datatypes are very special and generally, we don't like unreadable data models. But JVx should support it as good as possible.

We handle Set datatypes like enum datatypes and we show a link or choice cell editor. The user can only select one value. A developer can set multiple values via API (as comma separated list).

Have you ever seen this comfort in other frameworks? Let us know ;-)

Howto Videos

In the last weeks, we talked long time about VisionX Support, Tutorials and Videos. What should we use? A Forum, a mailing list, a Ticketing system, ...?

We use a Forum for JVx support and think that it was a good decision because the communication works and we don't forget our tasks. So we think a Forum for VisionX related questions is also a good choice. For bug reporting, the best choice is a ticketing system and we are very happy with our Flyspray system.

We don't like mailing lists. Sometimes it is comfortable to send an email and use the mail client for communication because it is in use, all the day. But online search interfaces are awful and links to mailing lists are not very cool.

What about product documentation?

Who wants to read a lot of text? We don't want it.
We decided to use a lot of short Howto Videos (30 seconds to 1 minute), some intro texts and a lot of screenshots.

The first videos are online on our YouTube channel.
Please check them and give us your feedback.