Modularity at the presentation layer

With modularity at the presentation layer, we mean the capability to re-use a dialog or comibination of dialogs inside the same or another application. The major obstacles/challenges for such functionality are:

  • Presentation layer logic is connected to business logic, which is strongly dependent on its deployment environment
  • How to return control to the caller of the re-usable dialog

With UltraCore, we allready managed to execute logic of one application inside the context of another application. We extended this capability with a so called GUI proxy feature. This means, a certain GUI, receives its events within the current application, but can forward the events to a proxy GUI running inside another application. This completely removes the first obstacle, allowing the GUI events and thus the business logic, to run in the context that it has been made for.

The second obstacle has been overcome by introducing the concept of return points. This can be seen as a stack oriented approach. A caller can register itself as a return point. Then it calls the re-usable GUI logic. This GUI logic doesn't have to know anything about the caller's implementation. It will just return the control to the last registered return point. It can also issue a loose coupled event on the object that will take over the control. In this way also allowing for return of feedback from the dialog. The caller can decide to implement a listener for the result or not.

The features for ReturnPoints are implemented in the FrontendContext class.

The features for the ProxyGUI are implemented in the RemoteApplication class.

Sign up on our Newsletter

Contact Us

ULTRA4 - Advanced Information Systems
K. Tzerras - J. van Slooten Partnership


+30 2310 688087


Akadimou 115
56224 Thessaloniki, Greece


Find Us

© 2023 All Rights Reserved. Developed & Designed by ULTRA4 Advanced Information Systems

Main Menu

Business Web Apps made easy

We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.
View GDPR Privacy Policy docs ]