AppBuilder Initialization
Beta Draft
Author: (Author's Name)
Date Last Updated: (Date)
Scheduled Release: (Release Number)


Revision History The following revisions have been made to this document:

Date: (date)
Revision: (rev-no)
Developer: (developer)
Summary of Changes: (summary)


Copyright (C) 2000 by Progress Software Corporation ("PSC"), 14 Oak Park, Bedford, MA 01730, and other contributors as listed below. All Rights Reserved.

The Initial Developer of the Original Code is PSC. The Original Code is Progress IDE code released to open source December 1, 2000.

The contents of this file are subject to the Possenet Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. A copy of the License is available as of the date of this notice at:

http://www.possenet.org/license.html

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. You should refer to the License for the specific language governing rights and limitations under the License.


Contributors
Jane Contributor, Joe Contributor


Contents

1 Overview
2 Architecture
3 Primary Data Structures
4 Primary Algorithms and Processes
5 Advanced Topics
6 Dependencies
7 Source Files
8 Build Process and Requirements
9 Execution Methods
10 Test Requirements and Strategies
11 Supplementary Information
12 Related Documentation


1. Overview

AppBuilder is a GUI tool for developing Progress GUI and character applications. This document describes AppBuilder’s Initialization Process only. This process begins when AppBuilder is first invoked (for example, when the user presses the AppBuilder button on the ADE Desktop or double-clicks an AppBuilder-generated source file). The AppBuilder Initialization Process ends when AppBuilder has been fully realized and is waiting for user input.

Note: There are many references to ‘UIB’ throughout the AppBuilder source code. When AppBuilder was first developed, it was commonly referred to as the UIB (User Interface Builder). Although the product has developed into and been renamed AppBuilder, many of the source files and routines still contain references to ‘UIB’ and sometimes contain ‘UIB’ in the source file name, for example _uibstrt.p.

2 Architecture

AppBuilder has many functions it must perform during the initialization process:

3. Primary Data Structures

Not Applicable

4. Primary Algorithms and Processes

AppBuilder can be started in many different ways. Here are a few examples:

prowin32 –p _ab.p

The following diagram illustrates the logical flow of the main initialization routines.

The main entry point for AppBuilder is src/_ab.p. This program does the following:

Adeuib/_uibmain.p is the main routine for AppBuilder. It defines several temp-tables as well as many internal procedures that AppBuilder calls during regular processing (not just initialization). It calls internal and external procedures to do the following:

5. Advanced Topics

Not Applicable

6. Dependencies

Not Applicable

Source File

This tool uses the following source files:

Source File

Description

src/_ab.p

Main entry point to AppBuilder

adecomm/adestds.i

Defines standard default colors and fonts for all ADE Tools

adecomm/adefext.i

Defines the product names and file extensions for ADE

src/_prostar.p

Prompts for logins if required

adeuib/_uibmain.p

Main logic of AppBuilder

adeuib/pre_proc.i

Define many of the preprocessors that are used in AB

adecomm/adestds.i

Standard ADE PreProcessor Directives

adeub/uibhlp.i

AB Help File PreProcessor Directives

adm/support/admhlp.i

ADM Help File Preprocessor Directives

adeuib/property.i 

Property Temp-table Definitions

adeuib/custwidg.i

Customer User Widgets Temp-Table

adeuib/links.i

ADM links temp-table definitions

adeweb/htmwidg.i

Web temp-table definitions

adeuib/vsookver.i

ADM Versioning

adeshar/mrudefs.i

MRU Filelist temp-table definitions

adeuib/uibmdefs.i

Menu and variable definitions for main AB

adeuib/_abfuncs.p

Library of functions that can be called anywhere in AB

adeuib/uibmproa.i

Internal procedures of AB (proc names beginning a – d)

adeuib/uibmproe.i

Internal procedures of AB (proc names beginning e – z)

adeuib/uibmundo.i

Undo/Cut/Paste procedures of AB

adeuib/_uibstrt.p

License checking, initializing, creating windows for AB

adeshar/_ablic.p

License checking, db cache, creating menu ,palette, status bar

adecomm/_adeobj.p

Starts up library manager, winmenu-mgr

adeuib/_initpal.p

Initialize palette temp table

adeuib/_cr_cust.p

Reads custom text file

adeuib/_cr_palw.p

Creates object palette

adeuib/_cr_pal.p

Create widget palette icons

adeuib/_cr_cmnu.p

Create customer menus

adeuib/_cr_npop.p

Create popup menu on New button

adecomm/_adeevnt.p

Customized UI setup

adeuib/uibmtrig.i

AB main trigger code

adeshar/mp.i

Profile Checkpoint

adeshar/_dialbdr.p

Computing size of dialog box

prodict/_dctsget.p

Building db cache

prodict/_dctscnt.p

Counts the user-defined tables in db

adecomm/_setcurs.p

Set cursor pointer

adecomm/icondir.i

Icon directory definition

adeuib/timectrl.i

Controls profiler

adeshar/mpdecl.i

Declare timer for profiler

adeshar/uniwidg.i

Universal widgets

adeuib/sharvars.i

Most common shared variables

adeuib/windvars.i

Window creation variables

8. Process and Requirements

The following tips will help you build your changes into the Progress ADE Tools.

See the training presentation, How to Be a POSSE Programmer, for examples of how to build your changes into the Progress ADE tools.

9. Execution Methods

AppBuilder can be started in many different ways. Here are a few examples:

Prowin32 –p _ab.p

10. Test Requirements and Strategies

Not Applicable

11. Supplementary Information

You might find it useful to compile adeuib/_uibmain.p using the PREPROCESSOR flag on the COMPILE statement when you are first looking at this code. It will create one large source file that has all the include files inserted and all the text substitutions performed. This might make it easier to familiarize yourself with the control flow before you actually begin changing components of the source code.

12. Related Documentation

The following documents provide additional information about the tool: