Sw4   >   About   >   Version 2006-12-31

Version 2006-12-31

The following is a summary of the major changes include in this release:

  1. Security Module Overhaul Major overhaul of the security module code and GUI. Moved from using an integer value to indicate view, edit, insert, delete schema class permissions to individual canview, canedit, caninsert, candelelete columns thereby providing greater flexibility for setting permissions. Now a user can be given insert permission, but denied edit permission. Enhancements have been made to the Security window GUI and all of the text is now string table based thereby supporting multiple langauges.
  2. Security Timeout Feature This new security feature opens a timeout window after a period of user inactivity. The number of minutes of inactivity is set by the system administrator. The user must enter their password in the timeout window to continue using the StudioWorks application. The number of minutes is a default value which can be overridden for specific users. Implementation of the security timeout feature is optional. See Misc > Security Timeout for more details.
  3. Security Sign-off Feature This new security feature opens the timeout window at a specified time of day (e.g. 5:00 pm) if there is no activity and then begins a 5 minute countdown to quitting Omnis Studio. The user can cancel the countdown and enter their password to continue using the StudioWorks application. Implementation of the security sign-off feature is optional. See Misc > Security Timeout for more details.
  4. Security New Password Feature This new security feature keeps track of the last time the user's password was changed. After signing in, if the specified number of days since the password was last changed is exceeded (e.g. 180 days); the user is prompted through a series of pages which generates a new password based on a password sentence. The password sentence is designed to make it easier for the user to remember their password. See Misc > Security New Password for more details.
  5. Object Reference Task Variables The security timeout feature required the use of the newer object reference type variables in the main library startup task. The use of object reference task variables also works better for remote tasks in the web app module.

    The code was modified in oStartupTaskVarsTool, oStartupTaskDefaultMethods, and oRemoteTaskMethods classes to automate conversion of the kObject type task variables to kObjectRef type variables. However, there is a little bit of code in your main library Startup_Task which you will need to modify manually. See the topic Switching to Object Reference Task Variables in this section for instructions on the code changes you will need to make.
  6. Foreign Key Scores The code for calculating foreign key scores was looping indefinitely for certain complex foreign key relationships. The foreign key scoring code was rewritten by Josh and appears to be working correctly and quicker.
  7. Change Language Cleanup Work has been done on the code that runs when you switch languages so that the main menu immediately reflects the newly selected language.

See the additional topics in this section for details of all the modifications made in this release.

To update to this new release:

  1. Backup your application.
  2. Replace your old studioworks folder and contents with the new studioworks folder included with this release.
  3. Modify your main library Startup_Task as per the instructions given in this section under Switching to Object Reference Task Variables.
  4. If you wish to implement the Security Timeout & New Password features follow the instructions given in this section under Enabling Security Timeout, Sign-off, New Password.

Each library and the modifications in the release are listed below. The modifications are compiled from the @MOD tag comments found in the methods of the classes in the library.

Switching to Object Reference Task Variables

If you have not modified your main library Startup_Task follow these instructions to update your main library Startup_Task for use with this new release.

  1. Rename your main library Startup_Task to X_Startup_Task.
  2. Copy the Startup_Task from the myAppMain library of the StartNewApp demo to your main library.

If you have modified your main library Startup_Task follow these instructions to update your main library Startup_Task for use with this new release.

  1. Delete the $initializeErrorHandler method if it exists.
  2. Delete the $openModuleLibraries method if it exists.
  3. Select the $openSWLibraries method from the Startup_Task class of the myAppMain library of the StartNewApp demo and copy it to the clipboard. Select the $openSWLibraries method in your main library's Startup_Task and paste the method from the clipboard to replace it with the new one.
  4. Select the $openAppLibraries method from the Startup_Task class of the myAppMain library of the StartNewApp demo and copy it to the clipboard. Paste this as a new method into your main library's Startup_Task.
  5. Modify the $construct method from the Working message command to the Close working message command to read as follows:

    ; Open a working message.
    Calculate workingmssg as con(kCr,'Starting up application')
    Working message /-1072741743,-1072741739;50;0;0 {[workingmssg]}

    ; The main libary startup task has two important jobs to complete before doing anything else.
    ; 1. Open the application's libraries. (Any libraries located inside the 'libraries' folder and subfolders)
    ; 2. Open the studioworks folder libraries.
    ; The application can not function without the SW libraries open.

    ; 1. Open the application's libraries.
    Do $cinst.$openAppLibraries() Returns FlagOK
    If FlagOK
       
       ; 2. Open the SW libraries.
       Do $cinst.$openSWLibraries() Returns FlagOK
       If FlagOK
          
          ; Now that the SW libraries are open we can proceed with the default construct method.
          ; Forward the call to $constructMethod (so that the $construct method code can be subclassed from swBase)
          Do ioStartupTaskDefaultMethods.$constructMethod(bRebuildLists) Returns FlagOK ;; @MOD:2
          
       End If
    End If

    Close working message



    Initializing the error handler will be handled by the oStartupTaskDefaultMethods.$constructMethod rather than the main library Startup_Task.

Any StudioWorks framework kObject type task variables in your main library's Startup_Task will be switched to kObjectRef type variables and instantiated by the $constructMethod of oStartupTaskDefaultMethods.

The $destructMethod of oStartupTaskDefaultMethods takes care of deleting the object reference instances when the main library's Startup_Task is closed.

You do not need to make any code change to your web module if you have created one. The oRemoteTaskMethods object is able to make the remote task task variable changes automatically.

Enabling Security Timeout, Sign-off, New Password

Follow these instructions to update your existing StudioWorks application to implement the new security features included with this release.

If you have not modified your SysAdmin module:

  1. Replace your old SysAdmin library with a copy of the mySysAdmin library from the StartNewApp demo app.
  2. Rename the file to the name of your old SysAdmin file.
  3. Open the library and set the $defaultname and $name properties of the library to your old SysAdmin library name.
  4. In the sMn_stb schema class change mySysAdmin to your old SysAdmin library name.

If you have modified your SysAdmin module:

  • If you have not modified the wUsrEdit window in your StudioWorks application's SysAdmin library, then simply copy the wUsrEdit window from the mySysAdmin demo library to your SysAdmin library. If you have runtimized your windows you will need to delete your existing runtimized window and runtimize again.

  • If you have modified the wUsrEdit window in your StudioWorks application's SysAdmin library you will need to either add your fields and code modifications to a copy of wUsrEdit window from the mySysAdmin demo library, or copy the added fields and changes from the wUsrEdit window in the mySysAdmin demo library, to your wUsrEdit window. The changes to wUsrEdit are as follows:

    1. Password entry field and Set Password button deleted.
    2. Change Password button, promptretNewPasswordmethod, and changePassword method added.
    3. Modified methods: $construct, $save, $_constructDefineVars, $_setMode.

  • Copy the oSysPrefs, sSysPrefs_listdef, wSysPrefs classes from the mySysAdmin demo library to your SysAdmin library.

    After you have complete the above:

    1. Rebuild string tables.
    2. Modify the $signinOKContinue method of your main library Startup_Task to read as follows:

      ; Redirect to the startup task default methods object.
      Do redirect ioStartupTaskDefaultMethods Returns FlagOK
      If FlagOK
         
         Do method checkPasswordExpired Returns FlagOK
         If FlagOK
            
            Do method initializestartTimeoutTimer Returns FlagOK
            
         End If
      End If

      If not(FlagOK)
         Do errhndlr.$promptonceLastError()
      End If
      Quit method FlagOK

    3. Copy the checkPasswordExpired method from the myAppMain library of the StartNewApp demo to your main library Startup_Task.
    4. Copy the initializestartTimeoutTimer method from the myAppMain library of the StartNewApp demo to your main library Startup_Task.

    swBase4

    SecurityTimeout_Task/$#About (2006-12-05 Doug K.)
    Created security timeout task class which can be used by multiple StudioWorks applications.

    oAppPrefs/$#About (2006-07-13 Doug K.)
    Removed the cached lists from the sAppPrefs_listdef schema class so that they are not held in the pref row. The cached lists are now manually mantained by the oAppPrefs object class property methods. This change has been made for better memory management.

    oAppPrefs/$:iconslist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:iconslist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:menulineslist_windows (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:menulineslist_windows.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:reportslist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:reportslist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:sqllistsforeignkeycolslist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:sqllistsforeignkeycolslist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:sqllistsmasterlist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:sqllistsmasterlist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:stringtables_masterlist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:stringtables_masterlist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$:windowslist (2006-07-13 Doug K.)
    Fetch the cached list directly from Cachedlist table. Better memory management.

    oAppPrefs/$:windowslist.$assign (2006-07-13 Doug K.)
    Save cached list directly to the Cachedlist table. Better memory management.

    oAppPrefs/$_init_prepareCachedlistTable (2006-07-13 Doug K.)
    Added 'Cachedlist' table for storing each cached list in a separate record of the 'Cachedlist' table. Better memory management.

    oAppPrefs/$_retCachedList (2006-07-13 Doug K.)
    Added method for returning an individual cached list from the 'Cachedlist' table. Better memory management.

    oAppPrefs/$_saveCachedList (2006-07-13 Doug K.)
    Added method for saving an individual cached list to the 'Cachedlist' table. Better memory management.

    oAppPrefs/$initialize (2006-07-13 Doug K.)
    Added 'Cachedlist' table for storing each cached list in a separate record of the 'Cachedlist' table. Better memory management.

    oConstants/$:AppLibsList (2006-07-12 Doug K.)
    Add $cando to test for $:Version method before sending message to oVersion object.

    oConstants/$:AppLibsList (2006-11-22 Doug K.)
    Added setting the liblabel and libtooltip column values for the AppLibsList.

    oConstants/$:WebAppLibName (2006-12-07 Doug K.)
    Modified method to default checking for the web library as replace(MainLibName,'Main','Web')

    oCreateLibrary/$addVersionsObjectsToAppLibs (2006-07-12 Doug K.)
    Added programmer menu line for adding oVersion objects to all of the application's libraries.

    oCreateLibrary/$createNewModule (2006-07-24 Doug K per Chuck M.)
    Set the library properties a second time. Sometimes they aren't getting set the first time.

    oCreateLibrary/_checkcreateParentFolder (2006-08-28 Doug K.)
    Created a separate method to support multiple level folders.

    oCreateLibrary/_copyClass (2006-08-28 Doug K.)
    Moved code for creating parent folders to a separate method 'checkcreateParentFolder' to support multiple level folders.

    oDBAdminMethods_SQLSERVER/$copyData (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oDBAdminMethods_SQLSERVER/$copyData (2006-11-15 Doug K.)
    Changed foreignkeyscore sort to match reverse order of Josh's new scoring methods.

    oDBAdminMethods_abstract/$_moveData (2006-07-24 Doug K. per Andy H.)
    Define the 'List' variable using $definefromsqlclass rather than sending a $retDefinedList to oSQLLists. This avoids possible problems if oSQLLists hasn't been initialized or the user hasn't logged on yet.

    oDBAdminMethods_abstract/$_sortSchemasByForeignKeyScore (2006-11-15 Doug K.)
    Changed foreignkeyscore sort to match reverse order of Josh's new scoring methods.

    oDBAdminMethods_abstract/$copyData (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oDBAdminMethods_abstract/$insertEmptyRecords (2006-07-14 Doug K.)
    Sort the schemas list by foreign key score for inserts before doing the inserts.

    oDBAdminMethods_abstract/$insertEmptyRecords (2006-07-24 Doug K per Andy H.)
    Leave the LoopFlagOK alone if zero is not allowed. This is not an error. It was being set to kFalse.

    oDBAdminMethods_abstract/$retDAMTablesAndViewsList (2006-08-15 Doug K per Andy H.)
    Added 'tablesownername' to the $tables parameters.

    oDBAdminMethods_abstract/$retPrimaryKeysList (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oDBAdminMethods_abstract/$retPrimaryKeysList (2006-07-28 Doug K.)
    Remove the 'sRefs' schema class from the schemas list if the Refs table is being used to track and set the primary keys.

    oDBAdminMethods_abstract/$retPrimaryKeysList (2006-12-31 Doug K per Andy H.)
    Bug fix. Changed 'Calculate as' to 'Do'.

    oDBAdminMethods_abstract/$setPrimaryKeyCounterValue (2006-07-28 Doug K.)
    If Refs is used to track pkeys then don't attempt to set the pkey for the 'Refs' table as this causes a tailspin.

    oDBAdminMethods_abstract/syncDatabaseTablesToSchemas (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oDBAdminMethods_abstract/syncDatabaseTablesToSchemas (2006-11-15 Doug K.)
    Changed foreignkeyscore sort to match reverse order of Josh's new scoring methods.

    oDBAdminSQLText_SQLSERVER/$retSQL_AlterColumn (2006-07-14 Doug K. per Andy H.)
    Bug fix. Changed ALTER COLUMN to ALTER TABLE.

    oEncryptDecrypt/$decryptList (2006-09-12 Doug K.)
    Change pEncryptedString to pfEncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oEncryptDecrypt/$decryptRow (2006-09-12 Doug K.)
    Change pEncryptedString to pfEncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oEncryptDecrypt/$decryptString (2006-09-12 Doug K.)
    Change pEncryptedString to pfEncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oEncryptDecrypt/$encryptList (2006-09-12 Doug K.)
    Changed return value from EncryptedString to EncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oEncryptDecrypt/$encryptRow (2006-09-12 Doug K.)
    Changed return value from EncryptedString to EncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oEncryptDecrypt/$encryptString (2006-09-12 Doug K.)
    Changed return value from EncryptedString to EncryptedBinVar to solve problem with Omnis 4.2 blowfish object.

    oFunctions/$isNullBlankZero (2006-09-20 Doug K per Andy H)
    Bug fix. The test would return false if a character variable was passed in with zero as the character. Added | OR pick() to solve it. Added |pick(isnull(pfVariable),pfVariable,'0')='0' to catch this situation.

    oIcons/$initialize (2006-07-13 Doug K.)
    Remove the early exit points. Merge rather than copy the incoming icons list.

    oLogon/$commit (2006-07-28 Doug K.)
    Added method to commit the session transactions. (for kSessionTranManual).

    oLogon/$retDBTablesList (2006-08-15 Doug K per Andy H.)
    Added 'tablesownername' to the $tables parameters.

    oLogon/$rollback (2006-07-28 Doug K.)
    Added method to rollback the session transactions. (for kSessionTranManual).

    oLogon/$transactionmode (2006-07-28 Doug K.)
    Added methods to get and set the session transaction mode. (kSessionTranAutomatic or kSessionTranManual) If you have a method which sets the session to manual transactions be sure method always returns it to automatic transactions.

    oLogon/$transactionmode.$assign (2006-07-28 Doug K.)
    Added methods to get and set the session transaction mode. (kSessionTranAutomatic or kSessionTranManual) If you have a method which sets the session to manual transactions be sure method always returns it to automatic transactions.

    oLogonMethods/$logon (2006-07-25 Doug K.)
    Set the session row username and password to be the actual name and password used to logon rather than the parameters pUser and pPassword. If tablesownerlogon is true it will be the tables owner user name and password.

    oMetaDataFindAndReplace/searchColsMetaData (2006-08-03 Doug K per Andy H.)
    Added 'lookupwhere,listalign,decoratortype,formatstring,formatmode,inputmask,reportformatstring,reportformatmode' to the columns to be searched.

    oMetaDataFindAndReplace/searchColsMetaData (2006-08-30 Doug K per Andy H.)
    Added 'lookupsqlclassname' to the columns to be searched.

    oPrepareNewDatabase/_addUsersToDBUsers (2006-07-28 Doug K.)
    Removed early exits.

    oPrepareNewDatabase/_setPkeyCounters (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oRebuildCachedLists/$rebuildSQLLists (2006-07-14 Doug K.)
    Removed redundant code which was already being handled by the called methods.

    oRebuildCachedLists/$reloadStringTables (2006-09-12 Doug K.)
    Update the application preferences object properties after recalc tooltips and text.

    oRebuildCachedLists/$reloadStringTables (2006-12-04 Doug K.)
    Added recalc of the main menu of the current task so that reload of string tables is immediately reflected in the main menu.

    oRebuildCachedLists/$reloadStringTablesMetaDataOnly (2006-07-14 Doug K.)
    Added error checking after assigning cached lists values to the app_prefs object.

    oRebuildCachedLists/$reloadStringTablesMetaDataOnly (2006-12-04 Doug K.)
    Added recalc of the main menu of the current task so that reload of string tables is immediately reflected in the main menu.

    oRebuildCachedLists/$saveAppPrefs (2006-07-14 Doug K.)
    Modified the method to use the new strategy for saving shared app prefs cached lists. The developerappprefsrow has been removed from the local prefs schema and object.

    oRebuildCachedLists/$sortSchemaClassCols_Wn_Mn_Icons (2006-07-12 Doug K.)
    Added method which sorts the sMn, sWn, and sIcons schema class columns into alphabetic order. The method can be called from the 'Rebuild Lists' programmer window.

    oRebuildCachedLists/moveAdminCols (2006-07-12 Doug K.)
    Added method which sorts the sMn, sWn, and sIcons schema class columns into alphabetic order. The method can be called from the 'Rebuild Lists' programmer window.

    oRebuildCachedLists/rebuildIcons (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildMenus (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildReports (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildSQLLists_quick (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildSQLLists_runtime (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildStringTablesMetaData (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/rebuildWindows (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oRebuildCachedLists/recalcMainMenuText (2006-12-04 Doug K.)
    Added private method which loops through the menu instances and sends a $recalcLanguageText message if it $cando and it belongs to the $ctask.

    oRebuildCachedLists/reloadStringTables (2006-07-14 Doug K.)
    Added error checking for $colcount=0.

    oSQLLists/$:ForeignKeyScoresList (2006-11-15 Doug K.)
    Changed foreignkeyscore sort to match reverse order of Josh's new scoring methods.

    oSQLLists/$_setColProperties (2006-09-13 Doug K per Chuck Martin.)
    Changed method name from private to $_ protected method to allow developers to override the method in a subclass of oSQLLists.

    oSQLLists/$_setColProperties (2006-09-13 Doug K per Chuck Martin.)
    Changed method call from _setStringTableText to $_setStringTableText to allow developers to override the $_setColProperties method in a subclass of oSQLLists.

    oSQLLists/$_setStringTableText (2006-09-13 Doug K per Chuck Martin.)
    Changed method name from private to $_ protected method to allow developers to override the $_setColProperties method in a subclass of oSQLLists.

    oSQLLists/$initialize (2006-07-15 Doug K.)
    Check to make sure the cached list columns match the current master list columns. If not merge the cached list rather than copy it.

    oSQLLists/$recalcLabelsTooltipsAbbrevs (2006-09-13 Doug K per Chuck Martin.)
    Changed method call from _setStringTableText to $_setStringTableText to allow developers to override the $_setColProperties method in a subclass of oSQLLists.

    oSQLLists/@TEST_retDefinedListForCurrLine (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/_calcClassMetaDataListRow_kQuery (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/_calcClassMetaDataListRow_kSchema (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/_retColsMetaDataList_kQuery (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/_retColsMetaDataList_kQuery (2006-09-13 Doug K per Chuck Martin.)
    Changed method call from _setColProperties to $_setColProperties to allow developers to override the method in a subclass of oSQLLists.

    oSQLLists/_retColsMetaDataList_kSchema (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/_retColsMetaDataList_kSchema (2006-09-13 Doug K per Chuck Martin.)
    Changed method call from _setColProperties to $_setColProperties to allow developers to override the method in a subclass of oSQLLists.

    oSQLLists/buildClassInfoForCurrLine (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/buildColsListBaseColsFromQueryCols (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/buildDefinedListForCurrLine (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oSQLLists/retSQLClassesList (2006-07-14 Doug K.)
    Removed the $ref column from the $appendlists since the 'sqlclassref' has been removed from the SQL master lists.

    oSQLLists/setForeignKeyScores (2006-11-14 Josh L)
    New foreign key ranking method which uses a 'treelevel' column to assist in setting the fkey scores.

    oSQLLists/setForeignKeyScores (2006-12-31 Doug K per Andy H)
    Set views foreignkey score to higher than anything else.

    oSQLLists/setSchemaForeignKeyScore (2006-11-14 Josh L)
    Recursive part of the new foreign key ranking method which uses 'treelevel' to assist in calculating foreign key scores.

    oSecurity/$:SchemasList.$assign (2006-11-23 Doug K.)
    Modified for the new version of security.

    oSecurity/$:UsersList (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$:WindowsList.$assign (2006-11-29 Doug K.)
    Simply copy the pWindowsList to the ivar iWindowsList for use in raw form by other methods of this object.

    oSecurity/$_initialize_defineLists (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$_initialize_defineLists (2006-12-12 Doug K.)
    Added defining the password info row which is used by wSecurityNewPassword.

    oSecurity/$_updateGroupAndRebuildList (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$_updateUserAndRebuildList (2006-11-23 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$addUserToGroups (2006-11-21 Doug K.)
    Added error check for $colcount on SecurityInfoRow.

    oSecurity/$canAccessWinInstID (2006-11-21 Doug K.)
    Refactored method to remove the early exit points.

    oSecurity/$canAccessWinInstID (2006-12-04 Doug K.)
    Modified code for new version windows and schema security.

    oSecurity/$canDelete (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$canDelete (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$canEdit (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$canEdit (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$canInsert (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$canInsert (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$canMultiUpdate (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$canMultiUpdate (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$canView (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$canView (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$checkCurrUserPassword (2006-12-04 Doug K.)
    Added method to check to see if a specified text string matches the current user's password. This method is being used by the security timeout window.

    oSecurity/$checkPasswordHasExpired (2006-12-14 Doug K.)
    Added method $checkPasswordHasExpired for use by 'Security - New Password'.

    oSecurity/$filterFieldsList (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$filterFieldsList (2006-11-21 Doug K.)
    Added the field reference parameter 'pfbSecurityApplied' to communicate to the sender whether or not security was applied (the fields list was filtered). The only place this method is called from is oFieldHandler.$initializeFields.

    oSecurity/$filterFieldsList (2006-11-30 Doug K.)
    Disabled the $filterFieldsList method code in oSecurity. Field level security is currently not enabled in the framework so running this method was adding complexity and slowing performance.

    oSecurity/$filterWindowsList (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$getUserPassword (2006-12-13 Doug K.)
    New method for getting the password from either the 'userpasswordcolumn' or the 'securityinforow.passwordinforow.password' column.

    oSecurity/$getUserPrefs (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$initialize (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$initializeTimeoutTimer (2006-12-05 Doug K.)
    Added timeout timer methods to oSecurity.

    oSecurity/$isMemberOfGroup (2006-11-21 Doug K.)
    Added method which checks to see if the current user is a member of a specified group ID.

    oSecurity/$removeUsersFromGroup (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$resetTimeoutTimer (2006-12-05 Doug K.)
    Added timeout timer methods to oSecurity.

    oSecurity/$retGroupSchemasList (2006-09-06 Doug K. per Andy H.)
    Calculate the additional can... columns for visual only.

    oSecurity/$retGroupSchemasList (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$retGroupSchemasList (2006-11-22 Doug K.)
    Added code to convert older version securitylevel value to newer version canedit, caninsert, candelete... schema permissions.

    oSecurity/$retGroupWindowsList (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$retGroupWindowsList (2006-11-22 Doug K.)
    Modified code for new version schema security.

    oSecurity/$retUserPasswordInfoRow (2006-12-12 Doug K.)
    Added method for getting the password info row for a specified user.

    oSecurity/$retUserSchemasList (2006-11-23 Doug K.)
    Rewrote this method for the new version security.

    oSecurity/$retUserWindowsList (2006-11-21 Doug K.)
    Refactored method to remove early exits. Rewrote this method for the new version security.

    oSecurity/$saveCustomInfoRow (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveGroupSchemaSecurity (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveGroupSchemaSecurity (2006-11-23 Doug K.)
    Only store the schemas which the group can view. Saves space and speeds searches.

    oSecurity/$saveGroupSchemaSecurity (2006-11-30 Doug K.)
    Renamed the method from $setGroup... to $saveGroup... to clearly state what the method does.

    oSecurity/$saveGroupWindowSecurity (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveGroupWindowSecurity (2006-11-23 Doug K.)
    Only store the windows which the group has access to. Saves space and speeds searches.

    oSecurity/$saveGroupWindowSecurity (2006-11-30 Doug K.)
    Renamed the method from $setGroup... to $saveGroup... to clearly state what the method does.

    oSecurity/$saveUserPasswordInfoRow (2006-12-12 Doug K.)
    Added method for saving the password info row to the user information in the database.

    oSecurity/$saveUserPrefs (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveUserSchemaSecurity (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveUserSchemaSecurity (2006-11-23 Doug K.)
    Only store the schemas which the user can view. Saves space and speeds searches.

    oSecurity/$saveUserSchemaSecurity (2006-11-30 Doug K.)
    Renamed the method from $setUser... to $saveUser... to clearly state what the method does.

    oSecurity/$saveUserWindowSecurity (2006-11-21 Doug K.)
    Refactored method to remove early exits.

    oSecurity/$saveUserWindowSecurity (2006-11-23 Doug K.)
    Only store the windows which user the has access to. Saves space and speeds searches.

    oSecurity/$saveUserWindowSecurity (2006-11-30 Doug K.)
    Renamed the method from $setUser... to $saveUser... to clearly state what the method does.

    oSecurity/$signIn (2006-11-21 Doug K.)
    Removed early exit points.

    oSecurity/$signIn (2006-11-23 Doug K.)
    Added parameter bUseCurrUserSchemaSecurityList to $retUserWindowSecurityDetails message to prevent building the list twice in a row on signin.

    oSecurity/$signIn (2006-12-13 Doug K.)
    Abstracted getting the password to the $getUserPassword message so that the password can be stored in the 'userpassword' column or in the more secure 'securityinforow.passwordinforow'. The 'passwordinforow' is used by wSecurityNewPassword for storing extra password information.

    oSecurity/$startTimeoutTimer (2006-12-05 Doug K.)
    Added timeout timer methods to oSecurity.

    oSecurity/$stopTimeoutTimer (2006-12-05 Doug K.)
    Added timeout timer methods to oSecurity.

    oSecurity/convertOldSchemaSecurityLevels (2006-11-22 Doug K.)
    Added method to convert older verion securitylevel based schema security to newer version.

    oSecurity/setOldSchemaSecurityLevels (2006-11-22 Doug K.)
    Added method to convert older verion securitylevel based schema security to newer version.

    oStartupTaskDefaultMethods/$constructMethod (2006-12-07 Doug K.)
    Add call to $constructTaskVars to the start of this method so that object reference task vars can be set and instantiated.

    oStartupTaskDefaultMethods/$destructMethod (2006-12-05 Doug K.)
    Send a $destructTaskVars message to delete the startup task object reference objects.

    oStartupTaskVarsTool/$_INITIALIZESHAREDAPPPREFS (2006-07-13 Doug K.)
    Deprecated $initializeSharedAppPref. Redirect the message to $_initializeAppPrefs_maindatabase.

    oStartupTaskVarsTool/$_initializeAppPrefs_maindatabase (2006-07-13 Doug K.)
    Only initialize the app_prefs tvar to point to the main database if using shared prefs AND not a developer license. Developer license will always use the app_pref.df1 in the modules folder, and only copy cached lists to the main database for updating runtime cached lists.

    oStartupTaskVarsTool/$constructTaskVars (2006-12-06 Doug K.)
    Added a method to initialize the object reference task variables. Changes the kObject to kObjectRef if necessary. This method is called by the $constructMethod of oStartupTaskDefaultMethods.

    oStartupTaskVarsTool/$constructTaskVars (2006-12-21 Doug K.)
    Only construct and initialize the StudioWorks task variables.

    oStartupTaskVarsTool/$destructTaskVars (2006-12-05 Doug K.)
    Added a method to delete the object reference type object instances of the task variables. This method is called by the $destructMethod of oStartupTaskDefaultMethods.

    oStartupTaskVarsTool/$initialize_app_prefs (2006-07-13 Doug K.)
    Moved initialize of 'app_prefs' tvar to a new protected method named $_initializeAppPrefs_localdatafile

    oTimerObservers/$#About (2006-12-05 Doug K.)
    Created a generic timer object which supports observers. Observers are notified when the $timer method is called.

    oVersions_abstract/$:ReleaseNumber (2006-07-12 Doug K.)
    Added method to return the release number. Normally the current hour of the release.

    oVersions_abstract/$:ReleaseType (2006-07-12 Doug K.)
    Added method to return the release type (final or beta).

    oVersions_abstract/$:Version (2006-07-12 Doug K.)
    Modified the $:Version method to return the con($:ReleaseDate / $:ReleaseNumber $:ReleaseType)

    oVersions_abstract/$setReleasePropertyMethods (2006-07-12 Doug K.)
    Added a new method to set the $:Release... property methods in the subclass for a new release.

    tBase/$_initialize_FixNulls (2006-08-15 Doug K. per Andy H.)
    Modified the method so that FixNullCols are not also include in the ForceNullCols list.

    tBase/$insertEmptyRecord (2006-12-31 Doug K per Andy H.)
    Flag was not being set to false for SQL error.

    tBase/$selectWhere (2006-07-28 Doug K per Andy H.)
    Added setting the statement object to $usercursor. Solves problem with SQL server.

    wDBAdminDataMover/setPKeyCounters (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    wDBAdminPrimaryKeys/$setCounterValues (2006-11-10 Doug K. per Will Adkin)
    Bug fix. 'schemaclassref' was removed from the pkeys list. Switch to using 'schemalibname' and 'schemaclassname'. and setting rSchema.

    wDBAdminPrimaryKeys/resetPrimaryKeyCounterValues (2006-11-10 Doug K. per Will Adkin)
    Bug fix. 'schemaclassref' was removed from the pkeys list. Switch to using 'schemalibname' and 'schemaclassname'. and setting rSchema.

    wDBAdminSchemas/sortByFKeyScore (2006-11-15 Doug K.)
    Changed foreignkeyscore sort to match reverse order of Josh's new scoring methods.

    wDBAdminSyncDatabaseToSchemas/insertEmptyRecordsForSelectedSchemas (2006-07-14 Doug K.)
    Remove the sort by foreign key score code from this method as it is in the oDBAdmin $insertEmptyRecords method.

    wDBAdminSyncUsers/$createTablesOwnerLogonFile (2006-09-12 Doug K.)
    Change 'EncryptedString' to 'EncryptedBinVar' to solve version Omnis 4.2 blowfish problem.

    wRebuildLists/moveAdminColsToEndofSQLClasses (2006-07-14 Doug K.)
    Added button and method call for moving the admin columns to the end of the SQL classes in the selected libraries.

    wRebuildLists/sortSchemas_Wn_Mn_Icons (2006-07-14 Doug K.)
    Added button and method call for sorting the sWn , sMn, sIcons class columns in the selected libraries.

    wSQLMetaData/buildChildNodes (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    wSQLMetaDataSchemaColsEditor/buildFKColsList (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    wSecurity/$#About (2006-11-29 Doug K.)
    Overhaul wSecurity (shell) window. Only instantiate subwindows as needed.

    wSecurity/changeUser (2006-12-13 Doug K.)
    Added method to allow the sys admin to signin as a different user, without needing to enter a password. This makes it easy to check a user's actual security after making changes in the security window.

    wSecurityNewPassword/$#About (2006-12-13 Doug K.)
    Created window for generating new passwords.

    wSecurityNewPassword/control_evClick (2006-12-20 Doug K.)
    Bug fix. Changed 'Do method quitOmnis' to 'Quit Omnis (Force quit).

    wSecurity_GroupSchemas/$#About (2006-11-22 Doug K.)
    Complete overhaul of the Security windows user interface and methods.

    swDocs4

    @00 String Tables/@65 Adding a Language (2006-08-30 Doug K.)
    Added documentation for 'Adding a Language' to StudioWorks.

    @50 Field Handler/@00 About (2006-09-21 Doug K.)
    Added documentation on the field handler.

    @50 Preferences/@40 Module Preferences (2006-12-18 Doug K.)
    Added documentation on 'Module Preferences'

    @60 Security/@00 About (2006-11-21 Doug K.)
    Added documentation on how security works in StudioWorks.

    @61 Security Timeout/@00 About (2006-12-12 Doug K.)
    Added documentation on timeout security in StudioWorks.

    @62 Security New Password/@00 About (2006-12-13 Doug K.)
    Added documentation on 'new password' security in StudioWorks.

    @62 Security New Password/@11 Enabling New Password Security (2006-12-13 Doug K.)
    Added documentation on enabling the 'new password' security in StudioWorks.

    @62 Security New Password/@15 Temporary Password (2006-12-13 Doug K.)
    Added documentation on setting a temporary password for the 'new password' security in StudioWorks.

    swGui4

    mContext/$control (2006-10-04 Doug K.)
    Added return FlagOK from observer callback method and break to end of loop if false.

    mMainMenu/$#About (2006-07-21 Doug K.)
    Added cascading menu line 'Runtime Debug Menu' which is an instance of the mRuntimeDebug menu class. Moved the 'Developer Error Messages' menu item to the runtime debug menu. The runtime debug menu is removed if the runtime user is not a system administrator.

    mMainMenu/$construct (2006-07-12 Doug K.)
    Added Runtime Debug cascading menu plus code to remove the cascading menu if the user in not a system administrator.

    mRuntimeDebug/$#About (2006-07-12 Doug K.)
    Added runtime debu menu to help with debugging StudioWorks when opened with runtime version of Omnis Studio.

    oConcretizer/$updateDeveloperWinClass (2006-07-24 Doug K per Chuck M.)
    Bug fix. Added missing first parameter prWin to the $_retWinType method call and check for pos() of 'edit' in the WinType.

    oConcretizer/$updateDeveloperWinClass (2006-07-24 Doug K.)
    Add new fields the default 'iFieldSpacing' below the bottom existing field. It was 50 pixels below.

    oConcretizer/addField (2006-08-31 Doug K. per Andy H.)
    Set $nogray property of checkbox field to kTrue for better appearance when disabled.

    oConcretizer/addField (2006-11-09 Doug K per Chuck Martin.)
    Added code to set properties for kMaskedEntry fields. ($formatmode, $formatstring, $inputmask)

    oConcretizer/calculateObjTypes (2006-11-09 Doug K per Chuck Martin)
    Moved test for kMaskedEntry field above the Switch/Case so that any fields with a formatmode, formatstring, or inputstring will be added as kMaskedEntry type object.

    oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2006-12-12 Doug K.)
    Added kBobj ti the object types that shape fields can be used for labels.

    oConcretizer/setTextAndTooltipProperties (2006-12-12 Doug K.)
    Added kBobj to the kText, kLabel object types that get treated as labels so that shape fields can be used.

    oConcretizer/setTextAndTooltipProperties (2006-12-21 Doug K.)
    If a $bobj is in a complex grid header, set the text to the abbreviation, like we would for a headed list.

    oConcretizer/setTextAndTooltipProperties (2006-12-21 Doug K.)
    Performance enhancement. Cache the current SQL class and ColsList to reduce the calls to oSQLLists.

    oFieldHandler/$:EmptyFieldPropertiesList (2006-09-21 Doug K.)
    Added a property method to return an empty field properties list. For use by methods which wish to include an extra fields list with the $initializeFields message.

    oFieldHandler/$control (2006-12-05 Doug K.)
    Reset the timer on evKey and evClick.

    oFieldHandler/$initializeFields (2006-07-07 Doug K.)
    Clear the window class instance $userinfo after copying it to the iFieldsList. Conserve memory.

    oFieldHandler/$initializeFields (2006-09-07 Doug K.)
    Removed the 'paranoid' code that wipes out the $dataname of entry field which are unknown to the field properties list.

    oFieldHandler/$initializeFields (2006-09-21 Doug K.)
    Added an extra parameter, pExtraFieldsList_opt, to allow the sender to add/set the field handler properties for extra fields.

    oFieldHandler/$initializeFields (2006-09-22 Josh L.)
    Removed an End If that was finishing a loop prematurely

    oFieldHandler/$initializeFields (2006-09-22 Josh L.)
    Changed the check of the fieldstyle from the "previous" one to the actual one the field really has. This is in response to non-schema fields normally coming up without a fieldstyle after being concretized.

    oFieldHandler/$initializeFields (2006-11-30 Doug K.)
    Removed the $filterFieldList and security applied code from this method. The code was adding a lot of unnecessary complication to the method.

    oFieldHandler/$initializeFields_20061130 (2006-07-07 Doug K.)
    Clear the window class instance $userinfo after copying it to the iFieldsList. Conserve memory.

    oFieldHandler/$initializeFields_20061130 (2006-09-07 Doug K.)
    Removed the 'paranoid' code that wipes out the $dataname of entry field which are unknown to the field properties list.

    oFieldHandler/$initializeFields_20061130 (2006-09-21 Doug K.)
    Added an extra parameter, pExtraFieldsList_opt, to allow the sender to add/set the field handler properties for extra fields.

    oFieldHandler/$initializeFields_20061130 (2006-09-22 Josh L.)
    Removed an End If that was finishing a loop prematurely

    oFieldHandler/$initializeFields_20061130 (2006-09-22 Josh L.)
    Changed the check of the fieldstyle from the "previous" one to the actual one the field really has. This is in response to non-schema fields normally coming up without a fieldstyle after being concretized.

    oFieldHandlerGenerateProperties/$buildFieldHandlerProperties (2006-09-21 Doug K.)
    Renamed the _edit suffixed column to remove the _edit suffix, so that the same name is used through StudioWorks. The _edit suffixed columns we're being manually removed in this method, making them different from sFieldProperties_listdef.

    oFieldHandlerGenerateProperties/buildDecoratorProperties (2006-09-21 Doug K.)
    Renamed the _edit suffixed column to remove the _edit suffix, so that the same name is used through StudioWorks.

    oFieldHandlerLookupTypeAhead/$control (2006-07-26 Doug K.)
    Trap tab and shift+tab key events so that tabbing out of a field doesn't get processed in the evKey code. Shift+tab is difficult to trap because only the shift key is detected. We have to assume that shift+empty pKey value is a shift tab.

    oFieldHandlerLookupTypeAhead/$updateLookupList (2006-07-27 Doug K.)
    Bug fix. Refs lookups list was not being filtered.

    oFieldHandlerLookupTypeAhead/event_evAfter (2006-07-26 Doug K.)
    Modified method for better lookup behavior on Refs mandatory and non-mandatory lookup fields.

    oFieldHandlerLookupTypeAhead/setMainListValues (2006-08-29 Josh L.)
    Removed the process event and continue because it was causing the evAfter event to get passed over.

    oMenusList_abstract/addMenuLineToMenusStringTable (2006-12-20 Doug K.)
    Check for len(pMenuLineID) before attempting to add the menu line ID to the sMn_stb schema class.

    oMenusList_abstract/addReportsMenuObjectsAndMethods (2006-12-20 Doug K.)
    Check for len(pMenuLineID) before attempting to add the menu line ID method to the reports menu object class.

    oMenusList_abstract/addWindowMenuLine (2006-12-20 Doug K.)
    Check for len(pMenuLineID) before attempting to add the menu line ID method to the menu observer object class.

    oPrompts/openModalPrompt (2006-08-15 Doug K per Josh L.)
    Added this else so that if the window instance is already present the method doesn't try to open another.

    oWindows/$buildWindowsList (2006-12-18 Doug K.)
    Bug fix. Preset the flag to true before the loop. (was false)

    oWindows/$initialize (2006-08-09 Doug K.)
    Removed early exist points.

    oWindows/$initialize (2006-09-06 Doug K.)
    Changed finding 'sWindows_listdef' to using oFunctions $findClass so that developers can use their own listdef in their main library.

    oWindows/$openWindow (2006-07-12 Doug K.)
    Bug fix. The current line was not being set in the iWindowsList causing the 'If WindowsList.openinshell' to fail.

    oWindowsList_abstract/$_addCustomWinInstID (2006-11-24 Doug K.)
    Added parameter pbSecurityCheckRequired to allow developer to set to false. (It was always set to true) Note: This could affect security settings on existing applications!!!

    oWindowsList_abstract/$_addDefaultWinInstIDsForSchemasInLib (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    wAbout/showLibsList (2006-07-12 Doug K.)
    Cleanup text translation so that if translation not found, leave the text alone. Removed the 'master version' code which was never implemented by oVersions.

    wBase_ToolbarTitlebar_abstract/$_constructToolbar (2006-07-26 Doug K.)
    Refactored method to remove early exits.

    wBase_abstract/$_constructDefineVars (2006-07-26 Doug K.)
    Removed the code which looked for a cached list stored in an object in the window class. This strategy was never implemented. Removed the code which copies iList to iDefinedList. Reduce memory useage. iDefined list is not necessary.

    wBase_abstract/$doCmnd (2006-12-05 Doug K.)
    Reset the timeout timer each time this method is called.

    wBase_abstract/$save (2006-07-27 Doug K.)
    Added $refilter after $doworkBatch to refilter the smartlist if $filter had been used.

    wConcretizer_template/$#About (2006-07-24 Doug K per Chuck M.)
    Added code to the DateFieldCalendarButton to check that the date entry field is enabled before opening the calendar prompt window.

    wContainer_List_ListChildren_abstract/$control (2006-11-20 Doug K per Andy H)
    Send an $eventClose message to the child subwindow before calling $_setChildRecordsList in case the child window is editing a record. Also added $promptonceLastError if any errors.

    wEditList_abstract/$:ToolbarCmndsCSV (2006-08-15 Doug K. per Andy H.)
    Updated the 'Quit method...' comment line to match the actual method line values.

    wEditList_abstract/$delete (2006-09-12 Doug K per Andy H)
    Include all of the 'includeinprompts' columns in the singe record delete confirmation prompt message.

    wEditList_abstract/$eventClose (2006-09-13 Doug K.)
    Calculate the 'Save Changes' dialog message text based on the # of modified records. Refactored the method.

    wHeadedList_autoconfig/$#About (2006-08-31 Doug K.)
    Set the $cursor property to iconid 1000041 which is the context menu hinting cursor. You can unset this property by setting it to zero in a subclass $construct of wList_autoconfig.

    wHeadedList_autoconfig/$control (2006-12-05 Doug K.)
    Added reset timeout timer to various events.

    wList_abstract/$updateList (2006-07-26 Doug K.)
    Define the TargetRow variable by sending a $retDefinedList message to oSQLLists rather than copying iDefinedList. iDefinedList has been removed.

    wList_abstract/$updateList (2006-07-26 Doug K.)
    Removed early exit points.

    wList_autoconfig/$delete (2006-08-02 Doug K.)
    After deleting the selected lines, set the current line to either the previously current line or line one of the list.

    wList_autoconfig/$edit (2006-07-26 Doug K.)
    Copy iList and remove non-selected lines rather than merge selected lines into an empty list. (Get rid of using iDefinedList)

    wList_autoconfig/$view (2006-07-26 Doug K.)
    Copy iList and remove non-selected lines rather than merge selected lines into an empty list. (Get rid of using iDefinedList)

    wLookupList/$getFieldTopLeftPosnInWindow (2006-08-28 Josh L.)
    Multiplied the vertical scroll factor by 8 because the list was appearing far down the page from the field.

    wMainWindow/$construct (2006-09-12 Doug K per Birger R.)
    Added FlagOK and $promptonceLastError error handling to the $construct method.

    wNav_Treelist/$_event_evOpenContextMenu (2006-08-30 Doug K.)
    Added a 'CollapseAllNodes' context menu line to the nav treelist.

    wNav_Treelist/$collapseAllNodes (2006-08-30 Doug K.)
    Added a 'CollapseAllNodes' method for the nav treelist.

    wPromptInput/_addLabel (2006-12-14 Doug K.)
    Added translation of string table formated labels. e.g. 'security.NewPassword'

    wSearchbar_abstract/$#About (2006-08-15 Doug K.)
    Changed the variable cPrevValue to iPrevValue; from a class variable to an instance variable.

    wSearchbar_abstract/$find (2006-08-15 Doug K. (per bug report by Chuck M))
    Set the iPrevValue regardless of whether or not it has a length.

    wSearchbar_abstract/$find (2006-12-05 Doug K.)
    Reset timeout timer each time this method is run.

    wSearchbar_abstract/$initialize (2006-08-15 Doug K.)
    Removed early exits.

    wSearchbar_abstract/loadLastCriteria (2006-08-15 Doug K.)
    Removed early exits and modify method so that null is returned if there was an error.

    wSearchbar_abstract/loadLastCriteria (2006-08-15 Doug K.)
    Added recalling the search criteria value from the LastCriteriaRow.

    wSearchbar_abstract/saveLastCriteria (2006-08-15 Doug K.)
    Removed early exits.

    wSearchbar_abstract/saveLastCriteria (2006-08-15 Doug K.)
    Added storing the search criteria value to the LastCriteriaRow.

    wShell/$doCmnd (2006-12-05 Doug K.)
    Reset the timeout timer each time this method is called.

    wShell/$showSubWin (2006-12-05 Doug K.)
    Reset the timeout timer each time this method is called.

    swRefs4

    oMenusList/$addNavigationMenuLines (2006-07-26 Doug K.)
    Added RefsLookupList to the navigation list.

    oRefs/$buildList (2006-07-15 Doug K. per Andy H.)
    Change passing in the $:SessionObj to $:SessionRow for the 2nd parameter. Also removed early exits.

    oRefs/$retList (2006-07-26 Doug K.)
    Refactored method to remove early exits.

    oRefs/$retLookupList (2006-07-26 Doug K.)
    Fix the code so that the RefsDesc column does get added if any of the RefsDesc are non-blank and don't match the RefsChar column. Sort the lookup list by RefsSortOrder/RefsChar/RefsDesc.

    oRefs/$retLookupList (2006-10-05 Doug K per Tom Maher.)
    Bug fix for showing RefsDesc column if different than value column.

    oRefs/$retPrimaryKeysList (2006-07-28 Doug K.)
    Do not include the 'Refs' table in the primary keys list.

    oWindowsList/$addCustomWinInstIDs (2006-07-26 Doug K.)
    Added RefsLookupList and RefsLookupEdit WinInstIDs. These are windows used specifically for editing Refs lookups.

    tRefs/$updateRow (2006-09-20 Josh L.)
    Changed this from do inherited to do $cinst.$inherited ... so that the parameters would get passed on. They didn't seem to be reaching the next step.

    swReports4

    oReportBuilder/$createReportClass (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oReportProperties/$retColsPropertiesRow (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    oReports/findReportInstIDClass (2006-07-14 Doug K.)
    Replaced 'sqlclassref' with 'sqlclasslibname.sqlclassname'.

    rReportBuilder_template/$#About (2006-07-03 Doug K.)
    Changed the $printif report section properties and all code to use the $: property methods rather than the ivars so that subclasses of this report can successfully override the property methods.

    rReport_abstract/$:CompanyLogoHeight (2006-10-05 Josh L)
    Added this method to control the logo height for different sized logos.

    rReport_abstract/$:CompanyLogoHeight.$assign (2006-10-05 Josh L)
    Added this method to control the logo height for different sized logos.

    rReport_abstract/$:PrintInfoText.$assign (2006-09-29 Josh L)
    I included this method because it was missing. This is a way to control the Print Info in the top left of generated reports.

    rReport_abstract/$setLogo (2006-10-05 Josh L)
    Added this method to size and position the company logo.

    swWeb4

    Startup_Task/$#About (2006-12-06 Doug K.)
    Changed the task variables to object reference where applicable.

    oHTMLTools/$retSearchBarHTML (2006-07-11 Doug K.)
    Get the 'includeinsearches' rather than the non-hidden columns for the search columns list.

    oRemoteTaskMethods/$initializeAllTaskVars (2006-12-07 Doug K.)
    Modified initialization of remote task vars to change/set to object reference type variables.

    oRemoteTaskMethods/$initializePublicSearchTaskVars (2006-12-07 Doug K.)
    Modified initialization of remote task vars to change/set to object reference type variables.

    oSearchPage/addSQLCLassToPublicSearchSQLClasses (2006-12-07 Doug K.)
    Added missing End if. Modified code to work with an empty 'Quit method' in the $:PublicSearchSQLClasses method.

    rtDispatcher/$#About (2006-12-06 Doug K.)
    Changed the task variables to object reference where applicable.

    rtPublicSearch/$#About (2006-12-06 Doug K.)
    Changed the task variables to object reference where applicable.