Sw4   >   About   >   Version 2007-11-30

Version 2007-11-30

The following is a summary of the changes included in this release.

This release includes a series of terrific additions to the Programmer Workbench window which has now become command central for StudioWorks development. With this release if you make any changes using the Programmer Workbench the cached lists are dynamically updated. As long as you make changes which affect cached lists using the Programmer Tools window you rarely have to rebuild lists!!

The following is a list of the new StudioWorks programmer tools and tools enhancements included with this release.

  1. Icons List Editor - A new programmer tool for editing the sIcons schema classes which map icons to local icon names which you declare. The tool displays the icon you specify so what you see is what you get. The applicable cached lists are immediately updated.
  2. String Tables _stb Schemas Editor - A new programmer tool for editing the _stb schema classes (sMn_stb, sWn_stb, etc.) The tool provides you with fields for label, abbrev, and tooltip. Changes and additions are immediately updated to the applicable cached lists.
  3. Navigation Menus Editor - A new programmer tool for adding window instances to the navigation menus list. This tool does away with writing code in the oMenusList objects for adding window instances to the navigation menus list.
  4. Window Menus List Editor - A new programmer tool for adding menus and menu lines to window instances. This tool does away with writing code in the oMenusList objects for adding menu lines to the window instances menus list. An added feature is that you can now map icons to window menu lines.
  5. SQL Meta-Data Editor - When you modify the SQL meta-data the oSQLLists master list is immediately updated. No need to rebuild SQL lists! (Except for setting the foreign key scores.)

    A minor enhancement to the SQL Meta-Data Editor - If you use the RefdTableName_fkey naming convention for your foreign key columns, the editor will automatically find and set the reference table name and the referenced column name when you click the foreign key checkbox.
  6. Cached List Viewers - A number of cached list viewers have been added to allow you to view each cached list in its current state. The cached list is refetched each time you select the applicable tab within the Programmers Workbench. This can be very helpful for seeing the properties and values is in each cached list.
  7. Query Builder - For those of you who remember the old query builder window in early versions of StudioTips, this release reintroduces Query Builder!

    Query Builder allows you to drag and drop columns from schema classes to build a query class. Based on the meta-data, Query Builder automatically calculates the $extraquerytext WHERE clause to join the tables as you build the query! You don't even need the foreign key columns in the query for this to work.

    Query Builder has a few addition features which you can't do in Omnis Studio.
    • Drag and drop multiple non-contiguous columns to reorder the query columns.
    • Select and delete multiple columns.

The following is a list of other significant modifications included with this release:

  1. QuickStart Tutorial - The tutorial has been reviewed and updated to make use of the new programmer tools added to the Programmer Workbench. Interesting to note: The developer does not need to write a single line of code in the updated QuickStart Tutorial.
  2. Lookup List Return & Enter Keys - Modified the code so that if the lookup droplist is showing and the user presses the enter or return key the event is absorbed by the lookup field and not allowed to issued a default save. Pressing the escape keys does allow a full cancel.
  3. Rebuild Cached Lists - Refactored and cleaned up the methods in the oRebuildCachedLists object. The mProgrammer menu items and wRebuildModules buttons which called oRebuildCachedLists were also reviewed and updated. Rebuilding lists and reloading string tables should be more reliable and in some cases faster with this new release. Do a Find All in your main library and modules for oRebuidCachedLists and review any of your methods which called this object.
  4. PostgreSQL - Omnis Studio version 4.3 adds a PGSQLDAM for connecting to PostgreSQL databases. The appropriate objects have been added to StudioWorks to work with PostgreSQL. Basic testing has been done. Consider this a beta test release. Another developer at EurOmnis 2007 spoke highly of PostgreSQL choosing it over MySQL. I intend to do performance comparisons between PostgreSQL and MySQL.
  5. DB Admin Sessions - Major overhaul of the DB Admin objects and window classes to eliminate holding multiple DBA sessions open while using the DB Admin objects and tools. The DB Admin objects and windows only open a session when a process is running. The DBA session is immediately closed when the operation is completed.
  6. DB Set Primary Key - The code related to deciding whether the RDBMS is used for the primary key counters or the oRefs object is used has been removed. If the RDBMS is can properly handle primary key counters, then it will be used, otherwise the oRefs object will be used. This eliminates all of the confusion over when and where the dbsetprimarykey property is set, and eliminates the potential critical problems that my have occurred. The oDBAdmin series objects have been modified to automatically set the primary key counters whenever $syncDatabaseToSchemas or $copyData is called. This makes it so much easier for developers... if you add a table, the primary key counter is immediately set up. If you import data using $copyData the primary key counter is automatically set higher than the maximum primary key value in each table.
  7. Prompt Color - Added the wPromptColor window class with accompanying $promptColor methods to the oPrompts and oPromptModeless objects.
  8. Sign-In Window - A session selector droplist has been added to the wSignIn window class to make it easier to switch between saved sessions. The Change Session and Quit Omnis buttons and the session information has been removed from the window for a cleaner simpler look. If you have copied wSignIn to your main library you will not be affected by this change.
  9. $stacklimit - I hit the $stacklimit on some complex container windows so the default minimum for StudioWorks has been raised from 14 to 25.

To update to this new release:

  1. Quit Omnis Studio.
  2. Backup your application!
  3. Replace your old studioworks folder and contents with the new studioworks folder included with this release.
  4. Delete the app_prefs.df1 file inside your libraries/modules/ folder. This will force a rebuild of your cached lists.
  5. Open your StudioWorks app.
  6. Open the Database Administration window, select the Primary Keys tab, select all of the tables, and click the Reset Counter Values button to make sure that your primary key counters are setup and have the correct last primary key value.
  7. Test your app.

I came to the realization that the Commands menus is only open when a normal StudioWorks window is on top. It is removed whenever an IDE window comes to the front. The shortcut keys in the Commands menu defaulted to being disabled for developers. There is no reason to do this so I changed them to default to being enabled. If there is an mCommands menu class in your main library and it is not subclassed from swGui4 and you want your Commands menu shortcut keys to default to being enabled for developers you can either delete the mCommands menu from your main library or:

  1. F2 Browser > select your main library.
  2. Select the mCommands class in your main library rename it to X_mCommands and do the following steps.
  3. F2 Browser click Class Wizard > Menu... > Subclasses
  4. Select mCommands and click the Create button. This puts a subclass of swGui4.mCommands in your main library.
  5. Copy any custom changes from X_mCommands to the subclassed mCommands menu class in your main library.
Tip

As a long time Mac user I have always used Cmnd+. (period character) as the shortcut for the Cancel button in dialog windows. I just recently discovered the Esc key does the same thing. Doh! Was the Esc key on the original Mac classic keyboards?

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.

mySysAdmin

No modifications

swBase4

mProgrammer/$#About (2007-11-01 Doug K.)
Deleted the menu item, Create/Update Default Schemas... The menu item is no longer used.

oDBAdmin/$#About (2007-11-23 Doug K.)
Changed to only opening sessions during a request is made through the bridge and immediately closing the session when the request is finished. This solves the problem of 3 or more sessions being opened at once by the oDBAdmin object. Deleted the $:TablesOwnerSessionObj and $:TablesOwnerStmntObj methods from the bridge. Added $openSession and $closeSession to each method in the bridge which requires a DBA session with the database.

oDBAdmin/$#About (2007-11-24 Doug K.)
Removed all of the 'clear logs' code from the implementor methods. Each bridge method first sends a $clearLogs message to the implementor, then calls the implementor method which matches the bridge method name.

oDBAdmin/$#Bridge Design Pattern - Bridge (2007-11-23 Doug K.)
Clarified the role of this object to be a 'Bridge Pattern' object. It is a bridge to the oDBAminMethods_ series of 'Implementor' objects. The bridge does not need to reveal all of the methods of the implementer. The bridge and implementors can be also subclassed to the main library where its methods can be overridden.

oDBAdminMethods_FRONTBASE/$_setUserDefaultSchema (2007-11-23 Doug K.)
Renamed to be a protected method.

oDBAdminMethods_FRONTBASE/$grantAllPrivilegesToUser (2007-11-23 Doug K.)
Renamed to protected method to avoid messing up sessions.

oDBAdminMethods_FRONTBASE/$retDAMIndexesList (2007-11-23 Doug K.)
Renamed to protected method to avoid messing up sessions.

oDBAdminMethods_FRONTBASE/$retForeignKeysList (2007-11-23 Doug K.)
Renamed to protected method so that sessions won't be affected.

oDBAdminMethods_FRONTBASE/$retUsersList (2007-11-23 Doug K.)
Renamed to be a protected method.

oDBAdminMethods_OMNIS/$syncDatabaseTablesToSchemas (2007-11-22 Doug K.)
Added audit for SQL reserved words to the method. Was missed because the superclass method had been overridden.

oDBAdminMethods_OMNIS/$syncDatabaseTablesToSchemas (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when a table is added or updated.

oDBAdminMethods_POSTGRESQL/$_retNextPrimaryKey (2007-11-21 Doug K.)
Overrode method for PostgreSQL

oDBAdminMethods_POSTGRESQL/$_syncNulls (2007-11-23 Doug K.)
Override $_syncNulls for PostgreSQL as it doesn't enforce NOT NULL as 'CHECK constraints'

oDBAdminMethods_POSTGRESQL/$retDAMIndexesList (2007-11-20 Doug K.)
Remove early exit.

oDBAdminMethods_POSTGRESQL/$retForeignKeysList (2007-11-21 Doug K.)
Custom method written to build the foreign keys list for PostgreSQL.

oDBAdminMethods_POSTGRESQL/$retForeignKeysList (2007-11-23 Doug K.)
Renamed to protected method so that sessions won't be affected.

oDBAdminMethods_POSTGRESQL/$setPrimaryKeyCounterValue (2007-11-21 Doug K.)
Overrode method for PostgreSQL

oDBAdminMethods_SQLSERVER/$_retNextPrimaryKey (2007-11-23 Doug K.)
Renamed method from $retNextPrimaryKey to $_retNextPrimaryKey. The method is NOT supposed to be protected, not public.

oDBAdminMethods_abstract/$#About (2007-11-23 Doug K.)
Changed to only opening sessions during a request is made through the bridge and immediately closing the session Added $openSession and $closeSession methods this object which can be called by the bridge.

oDBAdminMethods_abstract/$#About (2007-11-24 Doug K.)
Removed all of the 'clear logs' code from the implementor methods. Added a $clearLogs method which the bridge can call. The decision to clear the logs is made by the bridge, not the implementor.

oDBAdminMethods_abstract/$#Bridge Design Pattern - Implementor (2007-11-23 Doug K.)
Clarified the role of this object to be an 'Implementor' object in the 'Bridge Pattern'. The oDBAmin object is the bridge.

oDBAdminMethods_abstract/$_logSQLError (2007-11-21 Doug K.)
Added method to make it easier for oDBAdmin methods to log a SQL errors when working with a statement object. The second parameter is the statement object, so this method can extract the $nativeerror... and $sqltext.

oDBAdminMethods_abstract/$_retNextPrimaryKey (2007-11-22 Doug K.)
Modified the method to use oRefs if the "$retSQL_SelectPrimaryKeyCounterValue" returns empty.

oDBAdminMethods_abstract/$_retNextPrimaryKey (2007-11-23 Doug K.)
Renamed method from $retNextPrimaryKey to $_retNextPrimaryKey. The method is NOT supposed to be protected, not public.

oDBAdminMethods_abstract/$_syncCollations (2007-11-23 Doug K.)
Only attempt to execute SQLText if a value is returned from '$retSQL_AddCaseInsensitiveCollation'. To date FrontBase is the only one that does this.

oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-20 Doug K.)
Add low() function to do case-insensitive comparison of the datatypes.

oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-21 Doug K.)
Added exception for SQLDataType 'TEXT'. In PostgreSQL there is no 'length' returned for TEXT datatypes.

oDBAdminMethods_abstract/$_syncTableAndColumns (2007-11-23 Doug K.)
Use the 'OmnisDataType' from the DAMColsList rather than the SQLDataType for checking matching data types.

oDBAdminMethods_abstract/$auditSchemaForReservedWords (2007-11-22 Doug K.)
Bug fix. The table name was not being passed as a parameter. Bug fix. The column names search was incorrect. Added the upp() function to the column name. Enhancement - Report spaces in the table and column names as errors.

oDBAdminMethods_abstract/$clearLogs (2007-11-24 Doug K.)
Renamed $_clearLogs to $clearLogs. This method is now only called by the bridge, not the implementors.

oDBAdminMethods_abstract/$closeSession_Superuser (2007-11-23 Doug K.)
Created a protected method to close the superuser session.

oDBAdminMethods_abstract/$closeSession_TablesOwner (2007-11-23 Doug K.)
Created a protected method to close the tables owner session.

oDBAdminMethods_abstract/$copyData (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when data is copied in.

oDBAdminMethods_abstract/$insertEmptyRecords (2007-10-16 Doug K.)
Don't insert zero pkey record if it is a control table.

oDBAdminMethods_abstract/$insertEmptyRecords (2007-10-24 Doug K per Mike M.)
Bug fix. Change ColsList.controltable to SchemasList.controltable.

oDBAdminMethods_abstract/$openSession_Superuser (2007-11-23 Doug K.)
Created a protected method to open a session as the superuser.

oDBAdminMethods_abstract/$openSession_TablesOwner (2007-11-23 Doug K.)
Created a protected method to open a session as the tables owner.

oDBAdminMethods_abstract/$retDAMColsList (2007-11-23 Doug K.)
Added protected method so that other method can call it without affecting the sessions (as would happen if the public method was called)

oDBAdminMethods_abstract/$retDAMIndexesList (2007-11-20 Doug K.)
Remove early exit.

oDBAdminMethods_abstract/$retPrimaryKeysList (2007-11-22 Doug K.)
Remove the If DBSetPkey code, always call the $_retNextPrimaryKey method to get the next pkey.

oDBAdminMethods_abstract/$retPrimaryKeysList (2007-11-23 Doug K.)
Only include tables which are in the database.

oDBAdminMethods_abstract/$retUsersList (2007-11-23 Doug K.)
Moved the method to a protected method and call the protected method.

oDBAdminMethods_abstract/$setPrimaryKeyCounterValue (2007-11-22 Doug K.)
Restructured the method to ignore 'dbsetprimarykey'. Instead if the $retSQL_SetPrimaryKeyCounterValue returns empty, this method will default to using oRefs for the next primary key.

oDBAdminMethods_abstract/$setPrimaryKeyCounterValue (2007-11-23 Doug K.)
Rename this method to be a protected method so that it can be called without affecting open sessions.

oDBAdminMethods_abstract/syncDatabaseTablesToSchemas (2007-11-23 Doug K.)
Added setting the primary key counters to the very end of the method so that they are always in sync when a table is added or updated.

oDBAdminSQLReservedWords/$:SQLReservedWordsList (2007-10-22 Doug K.)
Load the SQL reserved words from the $userinfo property of the object if the linecount is zero.

oDBAdminSQLText_POSTGRESQL/$#About (2007-10-19 Doug K.)
Added new subclass for PostgreSQL DAM.

oDBAdminSQLText_POSTGRESQL/$retSQL_AddCheck_notNull (2007-11-21 Doug K.)
Override SQL text for NOT NULL for PostgreSQL.

oDBAdminSQLText_abstract/$retSQL_SQLDataType (2007-11-20 Doug K.)
Remove the NOT NULL constraint if it exists. For some RDBMSs the NOT NULL constraint is added but it messes up datatype comparisons.

oErrorHandler/$#About (2007-10-24 Doug K.)
Reduced the methodstack column length from 10 million characters to 10000 characters in sErrorlog.

oFunctions/$canModifyClass (2007-11-15 Doug K.)
Added code tool method to oFunctions. The method returns false if a class can not be modified due to VCS settings.

oFunctions/$dragdropmoveLinesInList (2007-10-19 Doug K.)
Added GUI function which handles drag and drop on a list to move lines within a list.

oFunctions/$retAlphaNumeric (2007-11-13 Doug K.)
Added optional parameter pSpecialCharsAllowed, so that the sender can specify special characters to be allowed. e.g. _ underscore

oFunctions/$weekOfYear (2007-11-16 Josh L.)
Created this method because dpart(kweek,...) made some assumptions that didn't work with our application of the method.

oIcons/$deleteIcon (2007-11-05 Doug K.)
Added method to allow dynamic updates of the icons list.

oIcons/$retIconID (2007-11-05 Doug K.)
Modified the method so that if the pIconName includes the icon group, the icon group is parsed from the icon name.

oIcons/$setIcon (2007-11-05 Doug K.)
Added method to allow dynamic updates of the icons list.

oLogon/$:DBSETPRIMARYKEY (2007-11-27 Doug K.)
Deprecated the dbsetprimarykey property method.

oLogon/$:DBSETPRIMARYKEY.$assign (2007-11-27 Doug K.)
Deprecated the dbsetprimarykey property method.

oLogon/$_SETDBSETPRIMARYKEYPROPERTY (2007-11-27 Doug K.)
Deprecated the $_setDBSetPrimaryKey property method.

oLogonMethods/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oLogonMethods_FRONTBASEDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oLogonMethods_MYSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oLogonMethods_OMSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oLogonMethods_OMSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oLogonMethods_PGSQLDAM/$#About (2007-10-19 Doug K.)
Added new subclass for PostgreSQL DAM.

oLogonMethods_PGSQLDAM/$logon (2007-11-20 Doug K.)
Override the superclass method and set the $database property before attempting to logon.

oLogonMethods_PGSQLDAM/$logon (2007-11-27 Doug K.)
Removed the code which called the superclass $_setDBsetPrimaryKeyProperty method.

oPaths/$:PathUserPreferencesFolder (2007-10-12 Doug K.)
Bug fix. Changed 'len(FolderName)=-' to 'len(FolderName)=0'

oPrepareNewDatabase/$prepareNewDatabase (2007-11-24 Doug K.)
Use $findClass to find the oDBAdmin object in case it has been subclassed to the main library.

oRebuildCachedLists/$buildRuntimeWindows (2007-10-11 Doug K.)
Reduce the method to just do what is advertises. Prior to calling this method you must first rebuild all cached lists.

oRebuildCachedLists/$rebuildAllCachedLists (2007-10-11 Doug K.)
Added parameter pRebuildLibsList_opt and then pass it to each of the applicable methods. Do not load string tables in this method.

oRebuildCachedLists/$rebuildRefs (2007-10-11 Doug K.)
Added method to just rebuild the refs object. Removed the $rebuildSQLListsAnRefs method.

oRebuildCachedLists/$reloadStringTables (2007-10-11 Doug K.)
Complete overhaul of the method reducing it to just do with the method name advertises. Deleted the $reloadStringTablesMetaDataOnly method. No longer required since this method now does less work.

oRebuildCachedLists/$saveSharedAppPrefs (2007-10-11 Doug K.)
Renamed the method to correctly advertise what it does. Removed the pbRuntimeRelease parameter. All cached lists are immediately saved to app_prefs when they are rebuild and assigned to the app_prefs object. This method only needs to be called for saving runtime lists to the main database if $:SharedAppPrefs is being used.

oRebuildCachedLists/$saveSharedAppPrefs (2007-11-27 Doug K per Josh L.)
Added parameter pLibsList_opt which is provided causes this method to ONLY replace the portions in the shared cached lists for the specified libraries. This is important for live updates of just one or two modules by the developer.

oSQLLists/$rebuildSQLClassInfo (2007-11-02 Doug K.)
Added method to rebuild the class info for a SQL class. If the SQL class is not found it is added to the master list. This moves towards dynamic updating of the SQL list master list for the developer.

oSQLLists/$removeForeignKey (2007-11-03 Doug K.)
Added method to allow foreign keys to be dynamically removed.

oSQLLists/$removeSQLClass (2007-11-02 Doug K.)
Added method for remove a SQL class from the master list to allow dynamic updates.

oSQLLists/$renameSQLClass (2007-11-02 Doug K.)
Added method for renaming a SQL class in the master list to allow dynamic updates. The method also searches query classes and undates the $schema property for any query columns which pointed to the schema class.

oSQLLists/$retDefinedList (2007-11-27 Doug K.)
Removed all code dealing with dbsetprimarykey. This will now be the RDBMS if it supports it properly.

oSQLLists/$setForeignKey (2007-11-03 Doug K.)
Added method to allow foreign keys to be dynamically added/updated.

oSQLLists/$setTableSessionRow (2007-11-27 Doug K.)
Removed the code that set the 'dbsetprimarykey' value.

oSQLLists/_calcClassMetaDataListRow_kQuery (2007-10-23 Doug K.)
Check to make sure a column is found in the query class before proceeding. The query class might be empty.

oSQLLists/_calcClassMetaDataListRow_kQuery (2007-11-14 Doug K.)
Check to make sure that both the baseschema and basetable are set.

oSQLLists/_calcClassMetaDataListRow_kSchema (2007-11-02 Doug K.)
Set the labelsingular and labelplural if they are empty.

oSQLLists/buildClassInfo (2007-10-23 Doug K.)
Remove any rows where the sqlclassname is empty.

oSQLLists/buildClassInfoForCurrLine (2007-11-02 Doug K.)
Added checking for class reference and log error if a problem.

oSQLLists/buildForeignKeysList (2007-11-02 Doug K.)
Simplified the foreign keys list definition to just the very basic columns needed.

oSQLLists/buildForeignKeysList (2007-11-27 Doug K.)
Added 'schemalibname' column to the foreign keys list so that specific libraries can be updated in the cached list.

oSQLLists/getPrimaryKeyColNamesForCurrLine (2007-11-22 Doug K.)
Clear the return values if a pkey was not found.

oSQLLists/retDatabaseQueriesSchemasViewsList (2007-11-06 Doug K.)
Search and remove empty sqlclassname rows.

oSQLLists/retDatabaseSchemasAndViewsList (2007-11-06 Doug K.)
Search and remove empty sqlclassname rows.

oSQLLists/retDatabaseSchemasList (2007-11-06 Doug K.)
Search and remove empty sqlclassname rows.

oSQLTextJoinTables/$#About (2007-10-18 Doug K.)
New tools object for general SQL methods.

oSQLTextJoinTables/$retJoinTablesText (2007-10-30 Doug K.)
Add kCr between each AND in the extraquerytext to make it easier to read and edit.

oSecurity/$#About (2007-11-21 Doug K.)
Changed the 'userid' column of sSecurityUsers_listdef from 10 character to 50 characters.

oSecurity/$saveUserPasswordInfoRow (2007-11-24 Doug K.)
Use $findClass to find the 'oDBAdmin' object in case it is subclassed to the main library.

oSessionsManager/$:DefaultSessionRow_FRONTBASEDAM (2007-11-27 Doug K.)
Removed code that set the dbsetprimarykey value.

oSessionsManager/$:DefaultSessionRow_PGSQLDAM (2007-10-19 Doug K)
Added default initial statement for PGSQLDAM.

oSessionsManager/$retVendorsList (2007-10-19 Doug K.)
Added PostgreSQL to the list of vendors.

oStartupTaskDefaultMethods/$_setDefaultsAndPrefs (2007-10-10 Doug K.)
Increase minimum stacklimit from 14 to 25. Hitting the stacklimit on autosignin for a web app.

oStartupTaskDefaultMethods/$_setDefaultsAndPrefs (2007-10-11 Doug K per Birger R.)
Renamed the method from a private method to a protected method.

oStartupTaskDefaultMethods/$_setReportDefaults (2007-10-11 Doug K per Birger R.)
Renamed the method from a private method to a protected method.

oStartupTaskDefaultMethods/$constructMethod (2007-10-11 Doug K per Birger R.)
Changed call to setDefaultsAndPrefs to renamed method $_setDefaultsAndPrefs. Changed call to setReportDefaults to renamed method $_setReportDefaults.

oStartupTaskDefaultMethods/$destructMethod (2007-11-05 Doug K.)
Added call to 'saveCachedLists' for developer version of Omnis Studio, so that all dynamic updates to cached lists are saved on closing the app.

oStartupTaskDefaultMethods/saveCachedLists (2007-11-05 Doug K.)
Added method 'saveCachedLists' so that all dynamic updates to cached lists are saved on closing the app.

oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn (2007-11-27 Doug K.)
Removed the code that dealt with dbsetprimarykey

oStartupTaskVarsTool/checkandrebuildListsIfReqd (2007-11-01 Doug K.)
Comment out oRebuildAppPrefs.$saveAppPrefs line. The method is obsolete as caches lists are immediately saved when they are rebuilt.

oStringTables/$:StringTablesMasterList.$assign (2007-10-14 Doug K.)
Added property assign method to allow the string table editor to update the master list.

oStringTables/$loadStringTables (2007-11-02 Doug K.)
Move $sort to a private method and call the method.

oStringTables/$removeLanguage (2007-11-13 Doug K.)
Added method to remove a language from the string tables master list. The method removes the language columns for the specified language from the list.

oStringTables/$removeLine (2007-11-02 Doug K.)
Added method to oStringTable to remove a line from the master list so that dynamic updates can be done.

oStringTables/$setTextTooltipAbbrev (2007-11-02 Doug K.)
Added method to oStringTable to add/update an item in the master list so that dynamic updates can be done.

oStringTables/$updateMasterList (2007-10-14 Doug K.)
Added method to allow the string tables editor to dynamically update the string tables master list.

oStringTables/_loadSchemas_stb (2007-10-14 Doug K.)
Add trim() to strtok() to remove any leading and trailing spaces.

oStringTables/_retDefinedStbList (2007-11-01 Doug K.)
If the base language has not been defined, set it to the current language column name.

oStringTables/loadStringTablesFromDatabase (2007-11-01 Doug K.)
Check for linecount in the stbList before merging into the masterlist.

oStringTables/loadStringTablesFromTextFile (2007-11-01 Doug K.)
Check for linecount in the stbList before merging into the masterlist.

oTableMethods/$doinsertsBatch (2007-10-18 Doug K.)
Use local variable counter instead of List.$line for loop. Slightly better performance. Redraw working message every 100 vs. 5

oTableMethods_POSTGRESQL/$#About (2007-10-19 Doug K.)
Added new subclass for PostgreSQL DAM.

oTableMethods_POSTGRESQL/$checkfixSQLText_LIKE (2007-11-21 Doug K.)
For Postgres change LIKE to ILIKE for case-insensitive searches. PostgreSQL allows LIKE searches on numeric columns, so we don't need replace LIKE with = operator therefore don't run the superclass method code for PostgreSQL.

oTableMethods_POSTGRESQL/$retNextPrimaryKey (2007-11-21 Doug K.)
Added a subclass method for PostgreSQL which returns the next sequence value from the RDBMS. If a sequence row does not exist the method will automatically create one and set the value to the max(pkey) value in table +1001.

oTableMethods_POSTGRESQL/$setSQLText_InsDateTime (2007-11-21 Doug K.)
Added method to allow SQLText to be modified to set the ModDateTime column value using the timenow() PostgreSQL function.

oTableMethods_POSTGRESQL/$setSQLText_ModDateTime (2007-11-21 Doug K.)
Added method to allow SQLText to be modified to set the ModDateTime column value using the timenow() PostgreSQL function.

oTableMethods_SQLSERVER/$doinsertsBatch (2007-10-18 Doug K.)
Use local variable counter instead of List.$line for loop. Slightly better performance. Redraw working message every 100 vs. 5

oTableMethods_SQLSERVER/$retNextPrimaryKey (2007-11-27 Doug K.)
Removed the code that dealt with dbsetprimarykey.

oTableMethods_SQLSERVER/setIdentityInsert (2007-11-27 Doug K.)
Removed the code that dealt with dbsetprimarykey.

owcIconsListEditor/$#About (2007-11-05 Doug K.)
Added icons list editor window controller object for wIconsListEditor window class.

owcStringTablesSchemasEditor/$#About (2007-11-05 Doug K.)
Added icons list editor window controller object for wIconsListEditor window class.

owcStringTablesSchemasEditor/$deleteCurrLine (2007-11-14 Doug K.)
Added method to delete the current line. Called by the context menu.

owcStringTablesSchemasEditor/openGridContextMenu (2007-11-14 Doug K.)
Added context menu item to delete the current line from the cols list and the schema class.

owcStringTablesSchemasEditor/saveColsListChanges (2007-11-14 Doug K.)
Added code to send $recalcLanguageText messages to the main menu and command menu instances so that the menu values are immediately updated.

tBase/$:DBSETPRIMARYKEY (2007-11-27 Doug K.)
Deprecated the $:DBSetPrimaryKey property methods in tBase.

tBase/$:DBSETPRIMARYKEY.$assign (2007-11-27 Doug K.)
Deprecated the $:DBSetPrimaryKey property methods in tBase.

tBase/$dodeletesBatch (2007-10-18 Doug K.)
Use local variable counter instead of List.$line for loop. Slightly better performance.

tBase/$doupdatesBatch (2007-10-18 Doug K.)
Use local variable counter instead of List.$line for loop. Slightly better performance. Redraw working message every 100 vs. 5

tBase/$setPrimaryKey (2007-11-22 Doug K.)
Remove 'If ibDBSetPkey'. Always call the ioTableMethods object and let it decide how to set the primary key.

wDBAdmin/$construct (2007-11-24 Doug K.)
Use $findClass to find the oDBAdmin object in case it has been subclassed to the main library.

wDBAdminDataMover/$construct (2007-11-24 Doug K.)
Use $findClass to find the oDBAdmin object in case it has been subclassed to the main library.

wDBAdminDataMover/moveData (2007-11-23 Doug K.)
Modify the 'moveData' method so that it first does a sync, then moves data (which now also sets the primary key counter) Removed the "Sync Database" button and the "Set PKey Counters" button.

wDBAdminSchemas/setCurrLineInSchemasList (2007-11-02 Doug K.)
Minor fix. Add not() to the search so that the previously selected schema class is reselected if found.

wErrorPrompt/$construct (2007-10-30 Doug K.)
Default the 'More Info' button to hidden. Added switch/case for leaving the button hidden.

wRebuildLists/rebuildRuntimeLists (2007-10-11 Doug K.)
Modified method to work with the refactored oRebuildCachedLists object methods.

wRebuildLists/rebuildRuntimeLists (2007-11-27 Doug K.)
Removed the bRuntimeRelease parameter. No longer required.

wRebuildLists/rebuildRuntimeWindowsAndAllLists (2007-10-11 Doug K.)
Modified method to work with the refactored oRebuildCachedLists object methods.

wRebuildLists/rebuildSQLLists (2007-10-11 Doug K.)
Modified method to work with the refactored oRebuildCachedLists object methods.

wRebuildLists/rebuildWindowsMenusIcons (2007-10-11 Doug K.)
Modified method to work with the refactored oRebuildCachedLists object methods.

wRebuildLists/reloadStringTables (2007-10-11 Doug K.)
Modified method to work with the refactored oRebuildCachedLists object methods.

wSQLMetaData/$#About (2007-10-25 Doug K.)
Modified the code so that checking/unchecking the Show Queries, Schemas, Other checkboxes immediately rebuilds the visible nodes to reflect the user action. Previously you had to collapse/expand the library nodes.

wSQLMetaData/$delete (2007-11-02 Doug K.)
Added code to dynamically remove the SQL class from the oSQLLists master list. Added code to dynamically remove the Tbl and Tblplural lines from the oStringTables master list.

wSQLMetaData/$rebuildExpandedNodes (2007-10-25 Doug K.)
Added method to rebuild the expanded nodes so that the show/hide checkbox actions will be immediately reflected in the treelist.

wSQLMetaData/addChildNodes (2007-10-25 Doug K.)
Build the schemas and queries list directly from the library rather than getting it from oSQLLists so that new schemas and queries show up without having to do a rebuild.

wSQLMetaDataClassEditor_abstract/$_buildDefaultList (2007-11-02 Doug K.)
Check to make sure the class exists in the oSQLLists master list. If not, call $rebuildSQLClassInfo to add it.

wSQLMetaDataEditor_abstract/$inherit (2007-11-15 Doug K.)
Remove early exits.

wSQLMetaDataEditor_abstract/$override (2007-11-15 Doug K.)
Remove early exits.

wSQLMetaDataSchemaColsEditor/_fieldRule_foreignkey (2007-11-02 Doug K.)
Added helpful code to find and set the fkey refdtablename and refdcolnames if StudioWorks naming conventions (_fkey and _pkey) are followed.

wSQLMetaDataSchemaColsEditor/removeForeignKey (2007-11-02 Doug K.)
Added a method to dynamically remove foreign keys.

wSQLMetaDataSchemaColsEditor/setForeignKey (2007-11-02 Doug K.)
Added method to dynamically set/update the foreign keys.

wSQLMetaDataSchemaColsEditor/updateStringTables (2007-11-02 Doug K.)
Added method to update the string tables master list. Method is called from the label, tooltip, and abbrev fields if modified.

wSQLQueryBuilder/$#About (2007-10-18 Doug K.)
'Query Builder' window. Enhancement for building queries and automatically calculating the tables join text.

wSQLQueryBuilder/$#About (2007-10-29 Doug K.)
Added 'old query text' field and options to copy back the old query text so that it can be recovered. Added queries treelist to the right side of the window to make it easier to load and duplicate query classes.

wSQLQueryBuilder/$deleteSelectedLines (2007-11-19 Doug K.)
Only calculate the extra query text if the old query text was empty. Avoid overwriting existing query text.

wSQLQueryBuilder/$duplicate (2007-11-27 Doug K per Josh L)
Set $showascheckedout if applicable on the duplicate class.

wSQLQueryBuilder/$duplicate (2007-11-27 Doug K per Josh L)
Set $showascheckedout if applicable on the duplicate class.

wSQLQueryBuilder/$event (2007-11-19 Doug K.)
Added warning message if the new query text does not match the old query text.

wSQLQueryBuilder/$newQuery (2007-11-02 Doug K.)
Modify method to expand the root node if it hasn't been expanded yet.

wSQLQueryBuilder/$newQuery (2007-11-02 Doug K.)
Modify method to expand the root node if it hasn't been expanded yet.

wSQLQueryBuilder/$newQuery (2007-11-27 Doug K)
Fixed the code for $showascheckedout if applicable on the new class. Fixed the code for select the new class node after it is created.

wSQLQueryBuilder/$newQuery (2007-11-27 Doug K)
Fixed the code for $showascheckedout if applicable on the new class. Fixed the code for select the new class node after it is created.

wSQLQueryBuilder/addSchema (2007-10-24 Doug K per Mike M.)
Prefix the library name if the schema class is in a different library than the query class.

wSQLQueryBuilder/addSchemaCols (2007-10-24 Doug K per Mike M.)
Prefix the library name if the schema class is in a different library than the query class.

wSQLQueryBuilder/addSchemaCols (2007-10-24 Doug K.)
Set the LineNum to 1 so that dropping columns on an empty list goes in the correct order.

wSQLQueryBuilder/editQueryClass (2007-11-19 Doug K.)
Do not disable the entire window if the query class needs to be checked out of the VCS.

wSQLQueryBuilder/eventDrop (2007-11-19 Doug K.)
Only calculate the extra query text if the old query text was empty. Avoid overwriting existing query text.

wSQLQueryBuilder/setMessage (2007-11-19 Doug K.)
Display a warning message if the query class needs to be checked out. Just disable query columns list if the query class needs to be checked out of the VCS.

wSessionEdit/$testSession (2007-11-20 Doug K.)
Close the test session if logon is successful so that we don't end up with extra sessions open. Remove early exits.

wStringTablesEditor/buildTablesList (2007-11-02 Doug K.)
Reselect the last selected table.

wStringTablesEditor/saveMasterList (2007-10-14 Doug K.)
Dynamically update the string tables masters list whenever changes are saved.

wTools_abstract/$#About (2007-11-16 Doug K.)
Added code to the $event method to disable the mCommands menu for the $ctask when this window is on top.

swDocs4

@20 Quick Start Tutorial/@00 About (2007-11-13 Doug K.)
Complete update of the QuickStart Tutorial which makes use of the new programmer tools added to the Programmer Workbench.

@20 Quick Start Tutorial/@05 Setting File And Library Names (2007-11-14 Doug K.)
Updated the tutorial to avoid the notation errors when renaming the main library $defaultname. By opening the main library without running the Startup_Task, and by deleting the app_prefs.df1 file the errors are avoided.

@20 Quick Start Tutorial/@06 Opening the Drivers App (2007-11-14 Doug K.)
Updated the tutorial to match the string tables editor enhancements. The menus are automatically updated, no need to close and reopen the app.

swGui4

mCommands/$construct (2007-11-14 Doug K.)
Default the commands menu to having the shortcut keys enabled for developers. The commands menu is only installed/active when a non-IDE window is on top.

mCommands/$recalcLanguageText (2007-11-14 Doug K.)
Added method to recalc the language text for immediate updating on language change or string table update.

mMenu/$_addMenuLine (2007-11-12 Doug K.)
Added code to use the pMenuLineID if the pMenuLineText is empty.

mMenu/$_addMenuLine (2007-11-13 Doug K.)
Added parameter pIconID and code to set the $iconid if a value is sent.

mMenu/$control (2007-11-13 Doug K.)
Use the new objectlibname and objectclassname columns in the menu lines list, rather than the objectclassref column.

mMenu/$initialize (2007-11-13 Doug K.)
Added sending the iconid property to the $_addMenuLine method.

mReports/$control (2007-11-13 Doug K.)
Use the new objectlibname and objectclassname columns in the menu lines list, rather than the objectclassref column.

oConcretizer/setTextAndTooltipProperties (2007-10-14 Doug K.)
Added kDroplist and kCombo to the type of fields to set the tooltip text from the $tooltip property value.

oFieldHandler/$#About (2007-10-16 Doug K.)
Discovered two ivars pointing to field handler lookup object (ioLookupHandler & ioFieldHandlerLookupTypeAhead) Removed the ioFieldHandlerLookupTypeAhead.

oFieldHandlerLookupTypeAhead/event_evAfter (2007-10-16 Doug K.)
Discard the evAfter event if the next event is evOK and the lookup list window is visible.

oFieldHandlerLookupTypeAhead/selectfetchMasterListRecords (2007-10-22 Doug K.)
Set ibHasActiveCol to kFalse and ibShowInactiveRecords to kTrue for refs lookups since those columns do not apply to refs lookups. This fixes a problem where using a refs lookup field fails after you use a normal lookup field on the same window.

oMenus/$buildLists (2007-11-08 Doug K.)
Remove any window menu lines where the menulineid is empty.

oMenus/$buildLists (2007-11-08 Doug K.)
Moved sorting to separate methods which can be called by other methods as well.

oMenus/$deleteWinMenuLinesListRow (2007-11-12 Doug K.)
Added method to delete a row in the window menu lines list.

oMenus/$recalcLanguageTextAndIcons (2007-11-08 Doug K.)
Recalculate the iconid for each line by sending a $retWinIconID message to oWindows. Allows for dynamic icon updates.

oMenus/$recalcLanguageTextAndIcons (2007-11-13 Doug K.)
Add exceptions for setting the menulinetext value plus set the menu line iconid.

oMenus/$retWindowMenuLinesList (2007-11-12 Doug K.)
Remove any empty menulineid rows from the list before returning it.

oMenus/$saveNavMenuLinesList (2007-10-16 Doug K.)
Modified the method to handle an empty nav list for a home library so that the stored list can be cleared.

oMenus/$saveWinMenuLinesList (2007-11-08 Doug K.)
Added method to save an oMenusList window menus lines list to its object, update and save the cached master list.

oMenus/$updateWinMenuLinesListRow (2007-11-12 Doug K.)
Added method to update a row in the window menu lines list.

oMenus/recalcMenuLineTextAndIconID (2007-11-13 Doug K.)
Added method to set the menulinetext and iconid, so that the method can be called by $recalcLanguageTextIcons and $saveWinMenuLinesList.

oMenusList_abstract/$#About (2007-11-09 Doug K.)
Added columns to the sMenuLinesWin_listdef (objectlibname,objectclassname,menulibname,menuclassname,iconid)

oMenusList_abstract/$:NavigationMenuLinesList (2007-10-10 Doug K.)
Ignoring the $addNavigationMenuLines method is a bit of a problem. Reworked the code to use the method.

oMenusList_abstract/$:WindowMenuLinesList (2007-11-08 Doug K.)
Modified the method to work with a window menus list save to the $userinfo property of subclass objects.

oMenusList_abstract/$:WindowMenuLinesList (2007-11-23 Doug K.)
Added code to put the code based menu lines after the saved list menu lines.

oMenusList_abstract/$_addReportsMenuLine (2007-11-19 Doug K.)
Default rObjectClass to #NULL. Add parameter to receive reference to the observer object class.

oMenusList_abstract/$retNavMenuLinesList (2007-10-26 Doug K.)
If the library name is changed, the homelibname needs to be updated for all the nav menu lines. Mass update the nav menu lines list to set the homelibname to the current instance class library.

oMenusList_abstract/addMenuLineToMenusStringTable (2007-11-09 Doug K.)
Update the string tables cached list if a new line is added to the sMn_stb schema class.

oMenusList_abstract/addMenuLineToMenusStringTable (2007-11-16 Doug K.)
Check to see if we can modify the class (VCS) and skip if we can't.

oMenusList_abstract/addReportsMenuObjectsAndMethods (2007-11-19 Doug K.)
Pass a reference to the observer object class back to the sender via pfRetObserverClassRef. Complete refactor of the method. Moved finding the object classes and setting booleans to the beginning of the method.

oMenusList_abstract/setExtraProperties_WinMenuLinesList (2007-11-19 Doug K.)
Add parameter to receive reference to the observer object class.

oPromptModeless/$promptColor (2007-10-11 Doug K.)
Added method for opening the prompt color window.

oPromptModeless/$promptDelete (2007-11-07 Doug K.)
Added optional parameter pTitle_opt in case the sender wishes to specify the title.

oPromptModeless/$promptDelete (2007-11-12 Doug K.)
Added optional parameter pCSVButtonStbIDsLeftToRight_opt in case the sender wishes to specify the button names.

oPromptModeless/$promptInputVars (2007-11-06 Doug K.)
Added method to simplify doing a modeless prompt for inputs to a single call to oModelessPrompts.

oPromptModeless/$retParamsRow_promptDelete (2007-11-07 Doug K.)
Added optional parameter pTitle_opt in case the sender wishes to specify the title.

oPrompts/$promptColor (2007-10-11 Doug K.)
Added method for opening the prompt color window.

oPrompts/$promptInputVars (2007-10-09 Doug K.)
Added parameters for inputs 5-9 extending the possible input variables from limit of 4 to 9.

oTabPaneController/$#About (2007-11-06 Doug K.)
Created a controller object which can be used to construct a tab pane object on-the-fly. Each tab's subwindow field is added when the user selects the tab.

oWindows/$openWindow (2007-10-16 Doug K.)
Test 'openinshell' for null and default it to true if null.

oWindows/$retWinClassRef (2007-10-30 Doug K.)
If the developer window class can't be found and the wintype is 'list,edit,editnew, or new' then use the appropriate default class.

oWindows/$retWinIconID (2007-11-08 Doug K.)
Added method which returns the IconID for a specified wininstid. Optional parameter pbRebuild refetches the icon from oIcons and sets iconid in the windows list.

oWindows/$retWindowInstancesList (2007-10-24 Doug K.)
Remove any window instances that are not from the correct homelibname. This happens if you rename the library.

oWindows/$retWindowInstancesList (2007-11-08 Doug K.)
Added calls to setWinTypesInList and setExtraValuesInWinInstsList before merging into the master list.

oWindows/$saveWindowInstancesList (2007-11-08 Doug K.)
Added call to setWinTypesInList before saving and then merging into the master list.

oWindows/setExtraValuesInWinInstsList (2007-10-22 Doug K per Chuck M)
Bug fix. The toolbarcmndscsv and enabledcmndscsv was being incorrectly calculated.

oWindows/setExtraValuesInWinInstsList (2007-11-08 Doug K.)
Set the iconid in each line of the windows list.

oWindowsList_abstract/$:WindowInstancesList (2007-10-31 Doug K.)
Modifed the method to use the 'isdefaultwininstid' property so that code based default window instances always overwrite certain properties.

oWindowsList_abstract/$_addDefaultWinInstIDsForSchemasInLib (2007-11-02 Doug K.)
Modify the method to dynamically build its own schema class list, thereby negating the need to rebuild the SQL lists before running this method.

oWindowsList_abstract/$retWindowInstancesList (2007-10-26 Doug K.)
If the library name is changed, the homelibname needs to be updated for all the window instance. Mass update the window instances list to set the homelibname to the current instance class library.

oWindowsList_abstract/addDefaultWinInstID (2007-10-30 Doug K.)
Added a column, isdefaultwininstid, and set it to kTrue for all default window instances generated from schema classes. Various properties of default WinInstIDs can not be modified by the developer so that they can remain dynamic. (wininstid, wintype, sqlclassname, devlibname, devclassname, openinshell, iconid, homelibname)

owcWindowMenusListEditor/$#About (2007-11-05 Doug K.)
Added icons list editor window controller object for wIconsListEditor window class.

owcWindowMenusListEditor/$:CurrClassRef (2007-11-15 Doug K.)
The current class reference will be the oMenusList class in the current home library.

owcWindowMenusListEditor/$addMenuLine (2007-11-22 Doug K.)
Fixed problem where right-click Add Menu Line on a menu node was messing up the treelist.

owcWindowMenusListEditor/$canModifyCurrClass (2007-11-15 Doug K.)
Move/modify the $canModifyClass method to oFunctions and call it there.

owcWindowMenusListEditor/$initialize (2007-11-19 Doug K.)
Removed iWindowsList and related code as it is no longer used.

owcWindowMenusListEditor/$initialize (2007-11-19 Doug K.)
Removed iMenuIDsList from Window Controller Object.

owcWindowMenusListEditor/addChildNodes_level2 (2007-11-15 Doug K per Josh L)
Use the winistid rather than the window title for the node names to avoid the problem of mutliple instances using the same translated name.

owcWindowMenusListEditor/addChildNodes_level3 (2007-11-16 Doug K.)
Set the libname and classname properties for the menu and object if they have not been set.

owcWindowMenusListEditor/addChildNodes_level4 (2007-11-16 Doug K.)
Set the libname and classname properties for the menu and object if they have not been set.

owcWindowMenusListEditor/eventDroplist_evClick (2007-11-14 Doug K.)
If the user changes the menulibname or objectlibname check only clear the classname if a matching class can't be found.

owcWindowMenusListEditor/eventEntry_evAfter (2007-11-19 Doug K.)
Test for valid calcuation before doing the eval() to avoid error message.

owcWindowMenusListEditor/eventTreelist_evDrop (2007-11-14 Doug K.)
Also set the homelibname, menulibname, and menuclassname to match the parent node when moving window menu lines.

owcWindowMenusListEditor/setCurrNodeUsingClassVars (2007-11-19 Doug K.)
Removed the code which defaulted to expanding the first root node. No need to waste time doing this.

owcWindowMenusListEditor/setDisplayFields (2007-11-16 Doug K.)
Added VCS warning if the observer object is not checked out.

wBase_ToolbarTitlebar_abstract/$_constructEnabledCmndsCSV (2007-10-30 Doug K.)
Use ivar iWinInstID instead of lvar WinInstID in the method. Check iList.$BaseSchema with $cando before sending the message and len(BaseSchema) for checking security.

wBase_abstract/$_retActiveCmndsList_winslist (2007-10-10 Doug K.)
Hitting stacklimit on 'If $cinst.$:Modified', change to 'If ibModified'

wContainer_Edit_Edit_abstract/$:ToolbarCmndsCSV (2007-11-27 Doug K.)
Modify the method so that is uses the new window instances toolbarcmndscsv property.

wContainer_abstract/$:ToolbarCmndsCSV (2007-11-27 Doug K.)
Modified the method so that is uses the new window instances toolbarcmndscsv property.

wContainer_abstract/$doCmnd (2007-11-14 Doug K.)
Include the parameter pCmnd & pShift when forwarding the message to the $cinst so that $new exception will work properly.

wContainer_abstract/$new (2007-11-14 Doug K.)
Added $new method which default to redirecting the message to the current subwindow $doCmnd('New'). This is done to work around the problem that $doCmnd send a $new method to the $cinst even if a $new method doesn't exist.

wHeadedList_autoconfig/$event (2007-10-22 Doug K.)
Added evHScrolled to the events which cause the totals to be resized.

wHeadedList_autoconfig/resizeTotals (2007-10-22 Doug K per Chuck M.)
Check the $columnsvisible property for any hidden columns when calculating and setting the totals fields. Check the $hscroll value and adjust the totals fields positions accordingly.

wHeadedList_autoconfig/setTotals (2007-10-22 Doug K.)
Remove duplicate code and call the 'resizeTotals' method instead.

wList_abstract/$_retActiveCmndsList (2007-11-19 Doug K per Chuck M)
Bug fix. Changed 'SQLClassName' to 'iSQLClassName' and deleted local variable 'SQLClassName'.

wList_autoconfig/$toggleActiveInactiveForSelectedLines (2007-10-22 Doug K.)
Send a $refreshList message to the list object subwindow in order to update totals fields.

wMainWindow/$rebuildNavTreelist (2007-11-21 Doug K per Jim Creak.)
Added method so that the treelist can be rebuilt when the Nav list has been modified.

wNav_Treelist/$rebuildTreelist (2007-11-21 Doug K per Jim Creak.)
Added method so that the treelist can be rebuilt when the Nav list has been modified.

wNavigationListEditor/event_evDrop (2007-11-19 Doug K.)
Save the nav list after it is reordered and renumbered.

wNavigationListEditor/newMenuLine (2007-11-02 Doug K.)
If the homelibname is empty, default to the window instance's homelibname.

wNavigationListEditor/saveNavList (2007-10-16 Doug K.)
Remove 'If TempList.$linecount>0' because all of the nav menu lines may have been deleted for a library, so we need to overwrite the old saved list.

wNavigationListEditor/saveNavList (2007-11-21 Doug K per Jim Creak)
Added code to send a $rebuildNavTreelist message to any main window instances which are open.

wPromptColor/$#About (2007-10-11 Doug K.)
Added wPromptColor color picker window class created by Chuck Martin.

wPromptModelessShell/$event_ButtonPressed (2007-11-06 Doug K.)
Added code to handle if the callback observer is an object reference datatype. Requires a little more work to find the instance and send the message.

wSearchbar/$event (2007-10-19 Doug K.)
Discard kReturn and kEnter key events to avoid triggering the default evOK or evCancel.

wSearchbar/$event (2007-10-19 Doug K.)
Discard kReturn and kEnter key events to avoid triggering the default evOK or evCancel.

wSearchbar/$event (2007-10-19 Doug K.)
Discard kReturn and kEnter key events to avoid triggering the default evOK or evCancel.

wSearchbar/$event (2007-10-19 Doug K.)
Discard kReturn and kEnter key events to avoid triggering the default evOK or evCancel.

wShell/$#About wShell (2007-11-16 Doug K.)
Added code to the $event method to disable the mCommands menu for the $ctask when this window is on top.

wSignIn/constructSetLanguagesList (2007-11-01 Doug K.)
Make the languages droplist inactive if there are 1 or less languages availble to select.

wSignIn_20071124/constructSetLanguagesList (2007-11-01 Doug K.)
Make the languages droplist inactive if there are 1 or less languages availble to select.

wWindowInstancesListEditor/$#About (2007-10-22 Doug K per Josh L)
Bug fix. Changed field name & dataname from 'modesactivecsv' to 'activemodescsv'

wWindowInstancesListEditor/$control (2007-11-19 Doug K.)
Moved the $control method to from the centre container methods to the class methods because some nested field were skipping the centre container $control method.

wWindowInstancesListEditor/buildTreelist (2007-11-19 Doug K.)
Removed the code which defaulted to expanding the first root node. No need to waste time doing this.

wWindowInstancesListEditor/setEditFields (2007-10-31 Doug K.)
Enable/disable the default wininstid fields.

wWindowInstancesListEditor/setEditFields (2007-11-02 Doug K.)
If the window instance's sqlclassname is not found in the iSQLClassesList dynamically find and add it to oSQLLists and the iSQLClassesList. This negates the need for rebuild SQL lists before using the window instances editor.

swIcons4

wIconBrowser/$copyIconFullNameToClipboard (2007-11-05 Doug K.)
Added context menu line and method to copy the icon full name to the clipboard to make it easier for developers to enter icons names.

swRefs4

oRefs/$saveStringTablesList (2007-10-14 Doug K.)
Make sure the string table record is inserted by copying the line to a row var and then inserting the row.

swReports4

oReportBuilder/addFieldsAndLabels (2007-10-11 Josh L.)
Removed duplicated code checking for Include in lists and hidden columns (also in oReportProperties.$retColsPropertiesList)

oReportProperties/$retColsPropertiesList (2007-10-11 Josh L.)
Get all the columns when the metadata is not defined.

swWeb4

No modifications