Class SystemEvent

java.lang.Object
org.luwrain.core.Event
org.luwrain.core.events.SystemEvent
Direct Known Subclasses:
ActionEvent, ListeningFinishedEvent, MoveHotPointEvent

public class SystemEvent extends Event
An event addressed to one or several areas and not related to user input. System events are delivered to areas through onSystemEvent() method and notifies that area should do some action which certainly not related to user input. The area may decide on its own whether it would like to perform the required action or to ignore it. There can be both system-defined system events and extension-defined. Generally, there are three major types of system events:
  • Regular events
  • Broadcast events
  • Addressed events
If regular events are placed in main event loop, they are always delivered to the currently active area. Meantime, it is also quite usual practice to send to the area a regular event directly, if you have a reference to this area. This means that you just want to ask the area to do some action (for example, to refresh its content or to save the unsaved data), and there are no problems with that.

Broadcast events are always delivered to the areas through main event loop (otherwise they are pointless). If LUWRAIN core finds such event in main event loop, it tries to decide which areas should get it, depending on the class name of the area or on the uniref value (see getBroadcastFilterAreaClassName() and getBroadcastFilterUniRef() methods). Broadcast events are delivered over all launched applications.

Addressed events are always delivered to some particular area, even if they are placed in main event loop. Usually they are useful for thread synchronization because handling of the events is always done in main system thread while they can be issued in any thread. The only restriction is that the application which has issued this event must be still launched when the event is processed.