Synchronizing Events

Purpose

The multiplexer makes it possible for events to be sent automatically from one graphic to another without involving the application.

Example

A case of synchronization is when scrolling two graphics that have the same axis.

Prerequisites

The application must ensure that the master graphics proxy (in the back end) receives the events to be synchronized from the front end. This means that the application must give the graphics proxy the event for registration even if the application itself is not interested in this event (that is, the application does not implement an event handler).

Process Flow

The application sends synchronization jobs to the multiplexer specifying for which event a certain graphics proxy is the event-sending (master) proxy and which graphics proxies are the receiving (slave) proxies. Every graphics proxy sends each event it receives to the multiplexer for synchronization. If there is no synchronization job the event is sent to the graphics proxy which sends it to the application. If there is a synchronization job then the event is automatically sent to the relevant slave graphics proxies.

1x: First the application sends the synchronization job to the multiplexer.

1: The graphic is changed (for example, the user scrolls the axis) and the graphic sends a GUI event to its GP, the master proxy.

2: The standardized event, along with its parameters, is sent to the multiplexer. An example of a parameter would be the new starting point after scrolling.

3: The GP <GP2> is informed of the change. It is known as the slave GP. There can be several of them.

3a: This is a method call sent to the graphic of <GP2> to synchronize this graphic with the first one.

4+5: In the synchronization job it is specified whether the application is to be informed of the event and if so whether before or after synchronization. If the application is to be informed of the event GRAPHIC_SCROLLED then <GP1> carries this out.

For an example, see Example: Synchronizing Events.

Result

All the graphics proxies specified as slave proxies in the synchronization job receive the same event as the graphic proxy that created/raised the event.