skip to main content
OpenEdge Development: AppBuilder
Organizer Objects : Creating paged layouts
 
Creating paged layouts
Every smart organizer (SmartWindow, SmartFrame, or SmartDialog) allows you to partition sets of SmartObjects into logical pages. You can choose to represent these logical pages by separate windows, or by re‑using (multiplexing) one or more areas of a single window. The number of different visual effects you can achieve by various combinations of arrangement and object choice is nearly unbounded.
In addition, AppBuilder offers a dedicated paging object: the SmartFolder. The SmartFolder implements the popular tabbed‑file‑folder metaphor, an industry‑standard way to multiplex screen space and control the display of your logical pages.
By designing wisely with ADM paging, you can reduce the experience of visual and conceptual clutter, make better use of limited display space, and improve the usability of your applications.
Page identifiers
Each ADM page is identified by a unique, non‑negative integer. Page 0 (zero) exists by default; you must create and assign numbers to all other pages that you need.
You need not assign page numbers sequentially, and it is fine to leave gaps. You can define up to 32767 pages for a given context—a much larger number than you would probably want to try to manage. To create a new page, you need merely make it the current design page (see the “Special pages” section).
A page remains in existence as long as it is the current design page, or has objects assigned to it. AppBuilder automatically destroys empty pages that are not current.
Special pages
The following page designations have special meaning within the paging system:
*Design page
*Page 0 (zero)
*Startup page
These page designations are discussed individually in the following subsections.
Design page
When you place SmartObjects into a design window workspace, you are placing them on the current design page, whatever that might be at the time. The current design page setting appears in the status bar of the AppBuilder main window, and is meaningful only for placing SmartObjects. The default design page is always page 0. An ADM page may have any unique, non‑negative integer as its identifier.
AppBuilder places basic ABL and ActiveX objects on Page 0, regardless of the Design Page setting. Only SmartObjects may reside on pages other than Page 0. You may be able to work around this limitation by placing such non‑Smart objects in a SmartFrame, and then placing the SmartFrame on the page of your choice.
As the name suggests, the Design Page setting is relevant only in design mode. It is not meaningful at run time, and is ignored.
To make a diferent page with the Design Page:
1. Open the dialog box using one of the following methods:
*Double‑click on the Page Number field in the AppBuilder main window.
*Choose EditGoto Page.
*Open the Procedure Settings dialog box (ToolsProcedure Settings), click Pages, and finally click Design in the Pages dialog box.
2. Enter the number of the new Design Page. If that page does not exist, AppBuilder creates it immediately.
Note: Remember that although you can change the Design Page, the change only affects SmartObjects. When you place other objects, including ActiveX objects, you are placing them on Page 0 regardless of the Design Page setting.
To see the contents of all pages at once, change the Design Page value to a question mark (?). You can then align objects that reside on different pages so that page‑changes appear neater and more orderly. All else being equal, users perceive neatness to indicate higher quality.
Page 0 (zero)
Page 0 is the default page in every SmartContainer. If you create a SmartContainer and add objects to it without changing any of the paging settings, then all of the objects will be on Page 0.
Page 0 objects are always displayed. If you have some objects assigned to Page 0, some assigned to Page 1, and some assigned to Page 2, the possibilities for display will be: Page 0 objects only; Page 0 objects + Page 1 objects; Page 0 objects + Page 2 objects. Unless you write special code to handle the situation, you cannot exclude Page 0 objects when displaying objects on other pages.
Startup page
You can choose to designate one page, in addition to Page 0, to be displayed when the SmartContainer starts up. This is called the Startup Page.
Page 0 is the default Startup Page. Unless you explicitly specify a nonzero page number as the Startup Page, only the objects placed on Page 0 will display when you run the SmartContainer.
For example, if you use a SmartFolder to organize the viewing and hiding of pages, you typically designate Page 1 (which always corresponds to the leftmost folder tab) as the Startup Page. If you leave the Startup page set to Page 0 when you use a SmartFolder, then the SmartObjects in the folder will not appear when the application starts up.
You set the Startup Page in the Pages dialog box, which you invoke from the Procedure Settings dialog box.
Why only SmartObjects?
The ADM defines the paging system in terms of a special set of SmartLinks. When you assign a SmartObject to some Page n in a Smart organizer object, AppBuilder automatically creates a SmartLink of type PageN between the organizer and the new SmartObject. Since only SmartObjects support and can use SmartLinks, no other type of object can participate in ADM paging.