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( classnamecommandname )
  • SELECTIONSET_DECLARATION( classnameselectionsetname )
  • DATUM_DECLARATION( classnamedatumname )
  • CLASSID_DECLARATION( classname )
  • STRING_DECLARATION( classnamestringname

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( classnamecommandname )
  • TYPE_SELECTIONSET( classnameselectionsetname )
  • TYPE_DATUM( classnamedatumname )
  • TYPE_CLASSID( classname )
  • TYPE_STRING( classnamestringname )

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?