Customizing the metamodel : Keywords for USRPROPS : CHAPTER
  
CHAPTER
The CHAPTER command can be used to control the contents of a dialog page, and to produce a tab. If there is more information than will display in a tab, multiple pages are automatically created.
Setting up individual chapters (or tabs) enables you to group properties of the definition into specific areas.
The CHAPTER command may be placed at any point in a diagram, symbol, or definition block of USRPROPS.TXT, except in a GROUP block.
A PROPERTY added through USRPROPS.TXT without a CHAPTER command is placed at the end of all existing properties, and, therefore, on the existing page of the last existing definition tab making up the definition dialog. (A definition may contain one or more tabs of information tied to the symbol, which come at the very end of the definition dialog. The first of these “symbol” tabs is often named ‘Symbol’, but may be renamed to another name. The symbol tabs only appear if you open the definition dialog of a symbol on a diagram; if you open a definition from the explorer, they do not appear).
A PROPERTY added with an existing CHAPTER command is placed at the end of that chapter.
A new CHAPTER command is placed near the end of the dialog, after all pre-existing ‘Definition’ chapters and before any preexisting ‘Symbol’ chapters.
If a GROUP command is desired, it must be nested inside a CHAPTER command.
Respecifying an existing CHAPTER is expected to mean that new properties are to be added or moved to an existing chapter.
If you need to resequence properties heavily within an existing chapter then the best approach is to:
1 Create a new chapter, perhaps by adding a trailing space to the existing name.
2 Specify the properties that should appear within it.
3 Use CHAPTER ".." HIDE to hide the old chapter if it is not wanted.
4 Use the CHAPTER_ORDER keyword to specify its position if that is important.
Syntax
CHAPTER chapter_name
Example
DEFINITION "Class Attribute"
{
LAYOUT { COLS 2 TAB ALIGN OVER }
CHAPTER "Java"
PROPERTY "Java Attribute Comment Text"
{ ZOOMABLE EDIT Text LABEL "Comment" LENGTH 8192 HELP "Comment text for code generation/importing" }
GROUP "Modifiers"
{
LAYOUT { COLS 4 ALIGN OVER TAB }
PROPERTY "Java Attribute Final"
{ EDIT Boolean LABEL "Final" HELP ""}
PROPERTY "Java Attribute Static"
{ EDIT Boolean LABEL "Static" HELP ""}
PROPERTY "Java Attribute Transient"
{ EDIT Boolean LABEL "Transient" HELP ""}
PROPERTY "Java Attribute Volatile"
{ EDIT Boolean LABEL "Volatile" HELP ""}
}
GROUP "Attribute"
{
PROPERTY "Java Attribute Access"
{ EDIT Text Label "Access" ListOnly List "Java Access Specs" LENGTH 20 DEFAULT "public" }
PROPERTY "Java Attribute Initializer"
{ ZOOMABLE EDIT Text LENGTH 8192 HELP "Expression used to initialize data" }
}
CHAPTER "Source Data"
PROPERTY "Source Data"
{ EDIT OneOf "Data"
RELATE BY "uses" EDITCLASS SACPropertyOneOfBase HELP "The Data Element to be used if an Entity Attribute is created from this Class Attribute" }
PROPERTY "Key"
{ EDIT Boolean Length 1 LABEL "PK" "Primary Key" HELP "Is attribute a PK component?" }
}
The algorithm used to determine how many controls can fit on one dialog page controls the page breaks if there are too many properties between one CHAPTER command and the next to fit onto one page. Otherwise, the CHAPTER commands control page breaks.