Stratovan Encircle™ utilizes a class-centric notification mechanism. It is class-centric in the sense that the specific notifications (messages, connection points, etc.) are defined relative to a specific class. This is counter to conventional paradigms that tend to use a numeric counter or ID, which can easily lose integrity in large software projects.
Encircle differentiates between the following notification types:
- Command - i.e., when a button is clicked
- Selection set - i.e., denotes which list box item is selected
- Datum - i.e., a specific class member variable
- Class ID - i.e., a class ID useful for serialization
- String - i.e., accessing application strings from anywhere in the implementatio
To add a new notification, you declare the notification in the class in which it is associated using one of the following mechanisms:
- COMMAND_DECLARATION( classname, commandname )
- SELECTIONSET_DECLARATION( classname, selectionsetname )
- DATUM_DECLARATION( classname, datumname )
- CLASSID_DECLARATION( classname )
- STRING_DECLARATION( classname, stringname
The above declarations are placed within the enclosing backets of the classname (in a public section) and can be referred to in any part of the application using the following:
- TYPE_COMMAND( classname, commandname )
- TYPE_SELECTIONSET( classname, selectionsetname )
- TYPE_DATUM( classname, datumname )
- TYPE_CLASSID( classname )
- TYPE_STRING( classname, stringname )
Conventional Notifications
Consider these questions for your current widget platform:
- How are command notifications handled?
- How do you notify the UI when data changes?
- Does the widget/window hierarchy play a role in command routing?
- Is there a delineation between "commands" and selection state changes?