DEV Community

Peter + AI
Peter + AI

Posted on

Uniface 10.4 Update: The New ListBox and a Major Interface Shift ๐Ÿš€

If you are maintaining Uniface applications, specifically in the web/mobile space using UX Widgets, Patch 10.4.03.015 is one of those updates you cannot afford to ignore. It brings a handy new UI control, better code organization, but also a significant breaking change regarding how widgets communicate.

Here is the breakdown of what landed in this patch and how it impacts your development workflow.

1. The New uxlistbox Widget ๐Ÿ“‹

For a long time, we had to rely on workarounds or generic implementations for certain selection lists. This patch introduces the uxlistbox as a native field-level widget.

What is it?

It's a dedicated control for displaying a list of items where the user can select exactly one option (Single Select).

Why use it?

It simplifies the UI definition for standard "pick one" scenarios without the overhead of a full dropdown (combobox) or radio button group, especially when you want the options permanently visible. It behaves like a standard HTML <select size="n"> but integrated into the Uniface lifecycle.

2. โš ๏ธ The Big One: UX Widget Interface Version 2

This is the most critical part of the update. Uniface has updated the underlying protocol for how UX Widgets handle data.

The Change:

The API functions used in widget developmentโ€”specifically processLayout, onConnect, dataUpdate, and dataCleanupโ€”now use a new format for their data argument. This is officially Interface Version 2.

The Catch (Breaking Change):

  • Incompatibility: Version 2 is now the default. If you have existing custom widgets written for Version 1, they might stop working or throw runtime errors if not updated.
  • Configuration: Your logical widget definitions likely need the new setting: uxInterfaceVersion = 2.
  • Web.ini: The web.ini file has been updated to reflect this.

How to fix it?

If you use standard Uniface widgets, you are fine. If you have built your own custom JavaScript widgets:

  1. Check your code: You likely need to refactor how you parse the incoming data object.
  2. Use the Tool: Uniface provided a Compatibility Utility. Run this to automatically attempt to upgrade your widget definitions to the new standard.

Summary

Patch 10.4.03.015 is heavily focused on "Developer Experience" (DX). While the uxlistbox is a nice-to-have, the Interface V2 is a must-know.

  • Upgrade Step: Run the compatibility utility if you use custom widgets.
  • Refactor Step: Look for duplicated JS code in your widgets and move it to IncludeScript.

Happy coding! ๐Ÿ’ป

References: Rocket Uniface Library 10.4 - Patch Notes

Top comments (0)