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

maxresdefault.jpg

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 formattingdate 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

About property class extensionsIn WinStudio, a property class extension is a type of global object that overrides the attributes of an IDO property class of the same name. Property class extensions apply only to components that are bound to IDO prop…

About property class extensions

In WinStudio, a property class extension is a type of global object that overrides the attributes of an IDO property class of the same name. Property class extensions apply only to components that are bound to IDO properties for which there is an IDO property class. In these cases, a WinStudio property class extension lets you standardize how components override the IDO property class behavior. Attributes can be updated in the property class extension, which automatically updates every component that inherits from the class.

Note: A component can override the attributes of its property class extension. If this is the case, then updating the property class extension has no effect on that component.

You can create a property class extension for any IDO property class that exists in the IDO objects database. 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


Jon Bossman