New ABL Inherited Control wizard

The New ABL Inherited Control wizard lets you create a custom control class derived from an existing control. This wizard appears when you select File > New > ABL Inherited Control.

The following controls are available:

Package root Specifies a currently open project to contain the class code and other project code. Click Browse if you want to select a project other than the current one (the default value).
Package Optionally specifies a package name, corresponding to a sub-folder of the package root, to contain the class file. Click Browse or enter the folder path by typing. A period (.) must separate each subfolder from its parent folder in the path name.
Inherited Control name (Required) Specifies the name of the class. The name must begin with a letter; spaces and most non-alphanumeric characters are not allowed. The .cls extension will be appended automatically.
Final If checked, specifies that inheritance from this class is disallowed. A FINAL option is included in the generated ABL code. A final class cannot be abstract.
Abstract If checked, specifies that the class is abstract and cannot be instantiated. An abstract class is designed to serve as a super class from which other classes inherit and implement members. Therefore, an abstract class cannot be final.
Widget pool If checked, specifies that a USE-WIDGET-POOL option will be included in the generated ABL code.
Inherits Optionally specifies another class in the current project as a super class from which the new class inherits state and behavior. Click Browse or enter the class path by typing. A period (.) must separate each node from its parent folder in the path name.
Note: The super class cannot be generic. Moreover, even though a control can inherit from an abstract super class, the Visual Designer does not support designing such a control. To design a control that inherits from an abstract parent, you must write the code manually.
Implements Lets you optionally specify one or more interfaces in the current project that the class implements. Click Add and select the desired interfaces at the Interface Selection dialog. Use the Remove button to remove an interface from the list after adding it.
Note: The class cannot implement a generic interface.
.
Generate default constructor Specifies that the class is to include a default constructor method. Because this option is required for OpenEdge GUI for .NET forms, it is automatically checked, and the control is disabled.
Generate destructor Specifies that the class is to include a destructor method. Because this option is required for OpenEdge GUI for .NET forms, it is automatically checked, and the control is disabled.
Generate super class constructors If checked, specifies that the class is to include all constructor methods declared in the parent class.
Add routine-level error handling If checked, specifies that the ROUTINE-LEVEL ON ERROR UNDO, THROW statement will be included in the generated ABL code.
Throw a Not Implemented exception If selected, specifies that "METHOD NOT IMPLEMENTED" error code will be added to stubs for members implemented via interface and stubs for inherited abstract members.
Return a default value If selected, specifies that default return values will be added to stubs for members implemented via interface and stubs for inherited abstract members.
Description Lets you optionally enter a description for the class. This text will appear in the file header.
Purpose Lets you optionally enter an explanation of the purpose of the class. This text will appear in the file header.