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

Category: Development

VisionX 5.6 second bugfix update release

Some minutes ago, we released VisionX 5.6.925. It's a bugfix version with smaller changes:

  • Word wrap labels

    It's now easy to use word-wrap labels. Simply use <html>test<html>

  • Web layout

    We fixed variaous problems in our web layouts. Some number editors had the wrong size after changing the value. It's not also possible to use html editors with undefined height. The height is calculated automatically.

  • Action editor

    We fixed a freeze problem with our action editor.

  • Custom css

    CSS changes are saved immediate after first change. This wasn't possible sometimes.

  • Record counter component

    We introduced a new component which shows the current number of records.

  • Better DB2 support

    We now show all available tables and views.

  • General bugfixes

    The release contains updates for some OpenSource frameworks like JVx and VaadinUI. It has lots of smaller bugfixes under the hood.

Simply get VisionX from your download area or register for a trial version.

VisionX 5.6 bugfix update release

Yesterday, we released VisionX 5.6.458. It's a bugfix version with 3 changes:

  • Application search

    The application search bar will be shown if you have more than 5 applications in the list. Sometimes the search result was not correct.

  • E-Mail Default Sender

    We had a problem with old email configurations. If the old tag defaultsender was used, it wasn't possible to change the email settings. This was the case with installed Workflow AddOn.

  • Deployment Exception

    It wasn't possible to use the deployment wizard. It had an error, if you didn't use the VisionX cloud AddOn.

Simply get VisionX from your download area or register for a trial version.

VisionX 5.6 is available

I'm happy to announce that VisionX 5.6.457 is available.
It's one of this magic moments where everything is perfect.

VisionX 5.6 is the biggest update after 5.5. It contains many bugfixes but even more new features. The new features are described here. We still have so many ideas to improve the development process and to help people creating own (enterprise) applications, so be curious what else is to come.

After a release is before the next release, so our next release will focus on UX and Smart Bricks. A smart brick is a small unit with big features. Think about user management. Sounds simple, but can be complex if you think about user and roles. Such simple thing can be a smart brick in VisionX. Simply use the user management smart brick and get full support for user and roles management without additional thinking.

We're going to do a little update to our UI designer to save mouse clicks and make simple things even easier.

If you have a question or want to know more details, just leave a message.

The download area already contains links to the latest version of VisionX.
Have fun, creating your own applications.

EPlug 1.2.43 is out

We are happy to announce that our EPlug 1.2.43 is out.

EPlug is our Eclipse plugin for JVx applications and also for our low-code platform VisionX.

The main improvements were a complete redesign and a big performance tuning.
For sure, we have some great new features like:

  • Support for ColumnViews
  • Support for MasterReferences
  • Support for SortDefinitions
  • Support for new Var(...)
  • Metadata cache improvements
  • Avoid compile Errors when columns cannot be checked
  • Show element in tree (one click)
  • Bugfixes

Feel free to try out our new version and send us your feedback.

-> Eclipse Marketplace

VisionX 5.5 with more features than ever

Our latest release is now available, just in time for the holidays. Our elves… ahem, our developers... have been very busy this year building the functionality you’ve been asking for. With this release you should be able to build amazing applications with even more functions, faster and easier!

Native mobile client

We’ve put our existing native clients on completely new technological footing. The mobile client is developed with Google’s Flutter framework, which makes it possible to develop truly native mobile apps for iOS and Android with a single code base. This means that apps can look identical on both platforms or iOS apps can have the typical Apple look (Cupertino Controls) while Android apps appear in Google Material Design.

The user interfaces of VisionX mobile applications are now 1:1 identical with the web applications, so any mobile application can be implemented according to the customer’s individual requirements. If very specific UI elements or features are needed, the mobile app can be extended at the Dart code level in the Flutter framework, or even with native Object C or Android SDK code. Customizing examples are provided, as well as an API. With all of these changes, visual designability in VisionX is still preserved. And while we’re talking about mobile, the new comprehensive responsive functionality of VisionX is very helpful - see below.

Previously you could only preview mobile views directly on a device. Now you can look at a live preview in your browser with the mobile simulator. This makes designing for mobile much faster and more intuitive.

Screenshot of VisionX app with login & user settings

And if all of this is Greek to you, don’t worry. It simply translates to easier design and testing of mobile apps with better user interfaces.

Platform responsive design

Responsive design refers to a flexible web design approach that “responds” to the size and capabilities of the device. For example, on a phone users would see content shown in a single column view; a tablet might show the same content in two columns. Images may be resized and menus might be displayed in a completely different form.

We have made our existing responsive design designable through the VisionX User Interface Designer. You can now determine which group of elements are automatically wrapped on smartphones, or if you should determine yourself how the elements should be arranged. The frequently used editing panel already contains the typical default settings, and so all new screens are automatically responsive, including detail view. This applies immediately not only to web apps but also to mobile and desktop applications. So you can be sure your apps look great, no matter what device the user has or what size the window is.

CRUD REST service control

Most apps don’t stand on their own; they connect with internal or third-party apps and databases to send or retrieve information, most often through REST APIs. VisionX support for REST services just got easier.

In addition to REST support in the workflow engine, we’ve now added powerful CRUD REST support. This makes working with REST services as easy as working with database tables, with just a few clicks. Out of the box we support more than 50 REST services from various standard software and SaaS services. Through Zapier (an amazing web app that allows you to automate actions between different web apps) we can actually support over 2000 apps with countless services.

Screenshot of REST Service Configuration in VisionX

Just a few of the many popular applications we directly support: SAP, Salesforce, Sharepoint, Zapier, OData, Asana, ClickSend, Google, Jira, OneSignal, Slack, Stripe, Trello, Twitter and Cronetwork.

You can also configure CRUD REST services yourself for other REST services more easily than with other vendors, in order to integrate any system with your VisionX applications.

Query editor

With the new Query Editor, even business users / citizen developers can easily query data and use it in screens, dashboards or reports. Links between tables are automatically taken into account and group functions such as sum, average, etc. can be used. This makes it much easier to develop advanced automation for report generation and much more.

Screenshot of Query Editor in VisionX

210+ actions and improved action editor

We provide a huge library of built-in actions, like sending an email or getting approval, so you don’t have to reinvent the wheel. With a total of more than 210 actions, business users can add a lot more functions and logic to their applications. For this purpose, we have also greatly improved the function of the Action Editor. This includes action categories, intuitive action search function and action documentation. Many new visual entry helpers are available for selecting action parameters to make it very easy to use, for instance color selection, moving actions and much more.

Screenshot of Action Editor in VisionX

Here is a selection of new functions:

  • Parameters to pass to screens or to save temporary values
  • Duplicate record
  • Make values in columns unique
  • Set all kinds of UI properties
  • Set style and more

User Profiles Add On - Improved:

  • Save filters by name
  • AND / OR support
  • More filter operators
  • Exclude columns from full-text filters

Usability improvement and more features:

  • Preview function in the new Screen Wizard to preview the results of the selected screen layout
  • Improved screen layout
  • User interface designer usability improved (especially with the Advanced FormLayout)
  • Performance improvements in the User Interface Designer
  • Performance improvements with big data models at Postrges and Oracle
  • Comboboxes have been extended with a new Master Data Edit Screen, so that the selectable values of the combobox can be edited immediately
  • Installer provided with trusted Windows Certificate

And last but not least, more than 150 bugs were fixed.

The download area already contains links to the latest version of VisionX.

Please report any problems as usual and have fun turning your vision into reality!

VisionX with Docker support

The next VisionX release will support Docker. If you are not familiar with Docker, it's worth a try. It offers super fast deployment and app delivery without additional hardware or software installation. If you're interested in Docker simply use Google.

The whole Docker technology is a big plus for application developers and also for our low-code platform VisionX. We will support Docker deployment with our next release.

Every application, created with VisionX, requires a Java application server like Tomcat and a relational database like Postgresql in order to run. If you don't own such runtime environment, it might be tricky to roll out your application! Sure, there are very cheap hosting provider which offers root server and application hosting, but this requires lots of IT skills. With docker, deployment is getting easier for you.

With next VisionX, it will be possible to create a pre-defined docker container in seconds. Use this container to create your own docker image and use Docker to run your application.

We'll show you some impressions how this will work:

Docker support

And it will also be possible to use existing Docker Hosting Provider to run your application.
We tried it out with sloppy.io:

sloppy.io

Our docker container uses our own Tomcat definition, which can be found here. Feel free to use our tomcat image in your environment. It solves some common configuration problems like custom port definition, username, password.

VisionX update release 5.4.3900 is available

VisionX 5.4.3900 is available!

It's a small bugfix release with following improvements:

  • Fixed using server storage in combobox

    It wasn't possible to use a server storage in the data wizard.

  • FilterEditor API improved

    The FilterEditor API change was needed to support new features of Profiles and Filter AddOn. It's now possible to better group And/Or and to disable "expert mode".

The download area already contains links to latest VisionX binaries.

Please report any problems as usual and have fun with VisionX.

Adding new paths for native libraries at runtime in Java

If you want to add some native libraries at runtime, it was tricky with Java 8+:

This was a valid solution:

final Field fldUsrPaths = ClassLoader.class.getDeclaredField("usr_paths");
fldUsrPaths.setAccessible(true);
 
//get array of paths
final String[] saPath = (String[])fldUsrPaths.get(null);
 
//check if the path to add is already present
for (String path : saPath)
{
    if (path.equals(pPath))
    {
        return;
    }
}
 
//add the new path
final String[] saNewPaths = Arrays.copyOf(saPath, saPath.length + 1);
saNewPaths[saNewPaths.length - 1] = pPath;
fldUsrPaths.set(null, saNewPaths);

Since Java 10+ it's not possible anymore, because of: JDK-8210522
Some details from Stackoverflow

If someone still needs a solution for Java 10+, here it is:

Lookup cl = MethodHandles.privateLookupIn(ClassLoader.class, MethodHandles.lookup());
VarHandle usr_paths = cl.findStaticVarHandle(ClassLoader.class, "usr_paths", String[].class);
String[] path = (String[])usr_paths.get();

...

usr_paths.set(new String[] {"A", "B"});

This code won't work if you are using Java 8. If you want support for e.g. Java < 10, simply use reflection :)
Sounds simple, but it is not simple.....

Here's a working solution: toPDF project (search for addLibraryPath(String pPath)).

The code in detail:

Class<?> clsMHandles = Class.forName("java.lang.invoke.MethodHandles");
       
Method mStaticLookup = clsMHandles.getMethod("lookup");
Object oStaticLookup = mStaticLookup.invoke(null);

Method mLookup = clsMHandles.getMethod("privateLookupIn", Class.class, Class.forName("java.lang.invoke.MethodHandles$Lookup"));
Object oLookup = mLookup.invoke(null, ClassLoader.class, oStaticLookup);

Method mFindStatic = oLookup.getClass().getMethod("findStaticVarHandle", Class.class, String.class, Class.class);

Object oVarHandle = mFindStatic.invoke(oLookup, ClassLoader.class, "usr_paths", String[].class);

//MethodHandle mh = MethodHandles.lookup().findVirtual(VarHandle.class, "get", MethodType.methodType(Object.class));
//mh.invoke(oVarHandle);

Method mFindVirtual = oStaticLookup.getClass().getMethod("findVirtual", Class.class, String.class, Class.forName("java.lang.invoke.MethodType"));

Class<?> clsMethodType = Class.forName("java.lang.invoke.MethodType");
Method mMethodType = clsMethodType.getMethod("methodType", Class.class);

Object oMethodHandleGet = mFindVirtual.invoke(oStaticLookup, Class.forName("java.lang.invoke.VarHandle"), "get", mMethodType.invoke(null, Object.class));

Method mMethodHandleGet = oMethodHandleGet.getClass().getMethod("invokeWithArguments", Object[].class);

String[] saPath = (String[])mMethodHandleGet.invoke(oMethodHandleGet, new Object[] {new Object[] {oVarHandle}});

//check if the path to add is already present
for (String path : saPath)
{
    if (path.equals(pPath))
    {
        return;
    }
}

//add the new path
final String[] saNewPaths = Arrays.copyOf(saPath, saPath.length + 1);
saNewPaths[saNewPaths.length - 1] = pPath;

//MethodHandle mh = MethodHandles.lookup().findVirtual(VarHandle.class, "set", MethodType.methodType(Void.class, Object[].class));
//mh.invoke(oVarHandle, new String[] {"GEHT"});

mMethodType = clsMethodType.getMethod("methodType", Class.class, Class.class);

Object oMethodHandleSet = mFindVirtual.invoke(oStaticLookup, Class.forName("java.lang.invoke.VarHandle"), "set", mMethodType.invoke(null, Void.class, Object[].class));

Method mMethodHandleSet = oMethodHandleSet.getClass().getMethod("invokeWithArguments", Object[].class);

mMethodHandleSet.invoke(oMethodHandleSet, new Object[] {new Object[] {oVarHandle, saNewPaths}});

Not simple!!!

Summarized: It's not easy but it's still possible. So.... why are things getting more and more complex?

VisionX 5.4 Update release is available

VisionX 5.4.2450 is available!

It's a small update release with following improvements:

  • MySql database support

    We fixed a problem with app export (from embedded PostgreSql) and re-import into a MySql database. It wasn't possible to configure combobox columns.

  • Popup Menu button click

    Sometimes, a click on the arrow of a popup menu button, didn't show the popup and triggered the button action instead.

  • Screen generation

    A new screen with only one table was generated with an additional "white" panel.

  • Filter AddOn update

    We improved the Filter AddOn and now support And/Or grouping. It's also possible to save and load filter settings.

    Some impressions:

    Filter AddOn

    Filter AddOn

    Load settings

    Load settings

  • Filter Editor API

    We improved our Filter Editor API. It's now possible to define the Full-text Filter column names and also which column names can be filtered in general. It's possible to group filter editors by condition (or, and, ...). This enhancement is relevant for developers.

VisionX 5.4 is available

VisionX 5.4.1835 is available!

It's a great release with big changes.

The new VisionX version got updates of used open source libraries. It runs with openJDK 12 and supports openJDK 14. It comes with awesome responsive UI support for desktop, web and mobile. We support our brand new mobile UI which is still under development.

What's different?

  • New MorphPanel with full responsive support

    This feature is available for Desktop, Web and Mobile devices. Create only one screen to support all targets.

    Responsive for Desktop

    Responsive for Desktop

    Web settings

    Web settings

    Mobile settings

    Mobile settings

  • Responsive option for Panels

    Simply en/disable the responsive feature for single panels.

    Responsive option

    Responsive option

  • MorphPanel navigation bar

    The MorphPanel shows a small navigation bar directly in the screen. You can use this bar to switch between the tabs without opening the customizer every time.

    Morph Panel navigation

    Morph Panel navigation

  • New work-screen wizard

    We have 4 types of screens: Table with Detail form, Table, Form, Empty. Each type has different layout options for Web, Desktop, Mobile and Universal. The difference are gaps and margins and default settings of elements. Some layouts include full-text search and some don't include search options.

    New screen wizard

    New screen wizard

  • New customizable screen generators

    The screen generators are customizable for developers. Simply create your own or extend an existing generator and use it directly in VisionX. Simply create your own definition file like this one:

    <?xml version="1.0" encoding="UTF-8"?>

    <generator>
      <group text="Table with detail form"
             image="/c/s/v/i/w/w/category_tableform.png">
        <entry class="com.sibvisions.visionx.uigenerator.WebTableFormUIGenerator"
               text="Web layout"
               image="/c/s/v/i/w/w//group_web.png" />
        <entry class="com.sibvisions.visionx.uigenerator.MobileTableFormUIGenerator"
               text="Mobile layout"
               image="/c/s/v/i/w/w//group_mobile.png" />
        <entry class="com.sibvisions.visionx.uigenerator.TableFormUIGenerator"
               text="Desktop layout"
               image="/c/s/v/i/w/w//group_desktop.png" />
        <entry class="c.s.visionx.uigenerator.UniversalTableFormUIGenerator"
               text="Universal layout"
               image="/c/s/v/i/w/w//group_universal.png" />
      </group>
    </generator>

  • Live Preview without any differences

    We improved our UI for browsers. New layouts, better performance and same features.

  • Shared folder support

    An awesome new feature is the shared folder support for your projects if you are a developer. Simply put your POJOs or Beans in the new shared folder and use this classes in your client or server classes.

  • New domain management

    Change pre-defined or create custom datatypes. The screen is available in VisionX' Administration menu.

    Domain management

    Domain management

  • Support for latest Workflow AddOn (3.0)
  • Performance improvement of Designer

This is how the responsive mode works on Desktop

Responsive mode

Some impressions of our new mobile client are available here

The download area already contains links to latest VisionX binaries.

Please report any problems as usual and have fun with VisionX.