Inheritance in the Infor Mongoose Framework
The Mongoose framework has several levels of operation in which one level (or more) can "inherit" properties, characteristics, and attributes from higher levels. For example, IDO properties can inherit these settings from property classes; components can inherit from property classes, as well as component classes, and so on. The idea behind this architecture is to allow you, the developer, frequent opportunities for and levels of reuse, which makes it possible to develop more efficient applications.
The use of inheritance strategies provide a powerful facility for reducing the development effort and increasing the consistency of your application. We strongly recommend that you learn and use these strategies. If you use them consistently, you should rarely have to specify a data type, a format definition, or many other properties of a component.
Over time, you will no doubt develop your own additional inheritance strategies, but here are a few to get you started:
Use SQL Server user-defined data types for your column definitions.
In IDO development, establish IDO property attributes that are inherited effectively by many components without being overridden. You can set up IDO property classes to package default settings for property attributes. All IDO properties based on an IDO property class then inherit the class attributes.
In form development, set up property class extensions only if you need them. If components bound to IDO properties commonly override the attributes of the IDO property and if the IDO property inherits from an IDO property class, you can set up a property class extension to standardize how these bound components override the IDO property class behavior - but this practice should be used sparingly.
In form development, set up component classes to package the attributes of any type of component. Modifying a component class is a streamlined way of altering the behavior of any component that inherits from the class.
About inheritance from IDOs, component classes, and property class extensions
In most applications, the same IDO properties are referenced many times throughout the application. For instance, a part number might be referenced on dozens or even hundreds of forms in an application. The framework employs a principal of inheritance and two mechanisms for specifying sets of behaviors so that a referenced property can be reused across many forms. These functions both save time and provide consistency during application development.
WinStudio components that are bound to an IDO property automatically inherit the attributes of the IDO property, unless they are overridden by the component. Additionally, an IDO property can inherit attributes from an IDO property class, and WinStudio components can inherit from component classes and property class extensions.
Inheritance for components bound to IDO properties
properties
The complete inheritance hierarchy for components bound to IDO properties is as follows (each level can override or inherit the attributes of the preceding level):
IDO property class (if any)
IDO property
WinStudio property class extension (if any)
WinStudio component class (if any)
WinStudio component
Inheritance for components not bound to IDO properties
The complete inheritance hierarchy for components not bound to IDO properties is as follows (each level can override or inherit the attributes of the preceding level):
WinStudio component class (if any)
WinStudio component
Inheritance for regional settings
The default values of attributes for numeric formatting, date and time formats, and currency formats come from the regional settings of Windows Control Panel. These default values can be overridden at any level in the inheritance hierarchy, but otherwise they are inherited from the Control Panel setting.
About component classes
In WinStudio, a component class is a type of global object that lets you reuse sets of component attributes by packaging them together.
For example, instead of specifying a caption, a list of values, and a validator for each component, you can create a component class that bundles each of those attributes. You can then base a new component on the component class to inherit those attributes automatically. A component can override the attributes of its component class. Updating a component class automatically updates every component that inherits from the class.
You can create a component class for any type of component. The packaged attributes are inheritable in the WinStudio inheritance hierarchy.
General attributes such as captions, tool tips, and read-only or disabled behavior
Data attributes such as default values, data types, list source, and validation
Display attributes such as justification, font and color, and formatting for numbers and special types of data
Behavior attributes such as shortcut menus, event generation, drill-down to Find or Add/Details forms, and attributes for dynamically enabling or disabling a component
Other attributes that are specific to a type of component