Sw4   >   About   >   Version 2007-07-31

Version 2007-07-31

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

  1. Platform Specific Paths - Code which figures out platform specific paths have been added to the oPaths object. Methods have been added to oPaths for returning the path to the user's home directory, documents folder, preferences folder, etc. StudioWorks preferences and logs are now stored in the platform specific user preferences files location, outside of the Omnis executible folder. This means that preferences and logs will be retained when upgrading to a new version of Omnis Studio. To implement this you must copy oPaths from the new release to your main library.
  2. Omnis Startup - StudioWorks will now also look for the studioworks folder in an Omnis Startup folder which you can create in your Applications folder (Mac) or Programs Folder (Win). StudioWorks will look for the studioworks folder in the following order: APP, OMNIS, Omnis Startup. The Omnis Startup folder is part of an auto-Omnis-startup utility that is available as a free download from studiotips.net. To implement this you must copy oPaths from the new release to your main library.
  3. Error Handler Log Errors To Database - An enhancement has been added to the error handler so that it can log errors to an Errorlog table in the main database. The StudioWorks default remains to write the errors to a log file on the local client computer. Changing your app so that it logs errors to the database is very simple to do. A big benefit is that the system administrator can view the history all of the errors from all of the users. See StudioWorks > Error Handler > Log Errors Destination for more information and how to implement logging errors to the database.
  4. Find/Search Droplist for FetchAll SQL Classes - An enhancment, thanks to Andy Hilton, has been added to the search bar and the find prompt. If the user selects the is (=) option in the operators list on a fetchall SQL class, the search bar or find prompt will automatically build a list of all the records so the user can select a specific record in a droplist field rather than guess at the exact spelling.
  5. Custom Meta-Data - A custominforow has been added to the class and columns meta-data. A Custom Info Row tab has been added to the SQL Meta-Data Editor subwindows. Custom info row accessor methods have been added to oSQLLists. All of this adds up to giving StudioWorks developers the ability to easily add their own custom meta-data within the StudioWorks framework! See StudioWorks > SQL > Meta-Data > Custom Meta-Data for more information.
  6. Ping Database Server - A column, pingdbserver, has been added to the sessions row to control whether or not a TCPPing is issued by the $pingDatabase method of oLogon. Some database servers are setup to ignore TCPPing, so you might not want to ping the databaser server. You can control set the column value to false by adding pingdatabase = FALSE ; to the logon group in your startupsettings.txt file.
  7. Navigation Treelist - Modifications have been made to the navigation treelist so that the user can not tab into the treelist from a subwindow. The navigation treelist is disabled and only accepts mouse clicks by trapping On evMouseDown.

    A show/hide nav list button has been added to the main window allowing the user to toggle the nav list, giving more room for the current subwindow. You can override this enhancement by creating a subclass of wMainWindow in your main library and overriding the $:ShowHideNavListVisible property method and returning kFalse.

    Changed the border to kBorderChisel and the $dragborder property to kTrue for the nav list container so that the user can adjust the nav list width. Added code to $destruct and $construct to save and restore the nav list width for the current user.
  8. Default OK and Cancel Commands - You can set default commands to be excecuted when an evOK or evCancel is received by the shell window. If the user presses the Return key an evOK event happens (except in a multi-line entry field or a headed list field). If the user presses Esc/Cmnd+. an evCancel event happens. The edit window defaults have been set so that SaveAndClose is the evOK default and Cancel is evCancel default. You can override these defaults. For more information see StudioWorks > Windows > Windows > Default Commands
  9. Load Saved Session - You can now specify the name of a saved session in the startupsettings.txt file. The saved session will be loaded by StudioWorks on startup. The tables owner name and password can be stored in the saved session rather than the tableownerlogon.txt file. Both options are available. For more information see StudioWorks > SQL > Sign-In > Tables Owner Logon

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. Reopen your StudioWorks app.
  5. Copy oPaths from swBase4 to your main library.
  6. Close and reopen your StudioWorks app.
  7. Test your app.
  8. If you wish to log errors to the main database you will need to make a small addition to your main library Startup_Task. See StudioWorks > Error Handler > Log Errors Destination for details.

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

oMenusList/$addNavigationMenuLines (2007-07-11 Doug K.)
Added WinInstID 'ErrorlogListView', a window for the sys admin to look at the errors log in the database if used.

oWindowsList/$addCustomWinInstIDs (2007-07-11 Doug K.)
Added Errorlog windows to the WinInstIDs for the SysAdmin module.

wUsrEdit/$save (2007-07-20 Doug K.)
Bug workaround? If a column of row datatype has a defined row in it, copying over it fails if we don't first calculate it as #NULL.

wUsrEdit/$save (2007-07-20 Doug K.)
Changed ioDBAdmin to local variable oDBAdmin to avoid keeping 2 session open after use.

wUsrEdit/changePassword (2007-07-20 Doug K.)
Changed ioDBAdmin to local variable oDBAdmin to avoid keeping 2 session open after use.

swBase4

oAppPrefs/$_retCachedList (2007-07-14 Doug K.)
Added missing 'End if'

oCreateLibrary/$createWebModule (2007-07-16 Doug K.)
Added 'Calculate FlagOK as kFalse' after various errors in this method which do not set the flag to false.

oDBAdminMethods_abstract/$_executeSQLStmnts (2007-07-17 Doug K per Andy H)
Remove the rubbish code that was using pStmntObj which doesn't even exist in this method.

oDBAdminMethods_abstract/$renameColumn (2007-07-20 Doug K.)
Changed the $renameColumn method from a 'stub method' to a real method.

oErrorHandler/$#About (2007-07-05 Doug K.)
Overhaul of the oErrorHandler object so that it defaults to tracelog, and can be set to use a log file, or a database.

oErrorHandler/$#About (2007-07-05 Doug K.)
Since the $log...Error methods are being use to log an error, we can't return false from these methods. Therefore if an error occurs in any of methods of this object, the error will always be sent to the trace log and set the iLogErrorsDestination to 'tracelog'. The $log...Error method will then open the trace log.

oErrorHandler/$:AppName.$assign (2007-07-10 Doug K.)
Added method to allow the app name to be assigned to the error handler at any time.

oErrorHandler/$:LogErrorsDestination (2007-07-05 Doug K.)
Added method which returns the current destination of the errors log. (tracelog, logfile, database)

oErrorHandler/$OPENLOGFILEVIEWER (2007-07-05 Doug K.)
Remove dependency on oFunctions. Look for the wLogFileView window class in $ctask.$lib, then $clib.

oErrorHandler/$OPENLOGFILEVIEWER (2007-07-10 Doug K.)
Deprecated the method. Replaced with $openErrorLogViewer method which opens the appropriate error log viewer window.

oErrorHandler/$initialize (2007-07-05 Doug K.)
Change the parameter pLogFilePath to optional, and send it as a parameter to the 'setLogFileAndFileOpsVar' method. Only call the 'setLogFileAndFileOpsVar' method if pLogFilePath_opt has been provided.

oErrorHandler/$initialize (2007-07-10 Doug K.)
Default the log errors destination to the tracelog before attempting to set the log file.

oErrorHandler/$logAction (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logCheckDataError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logDataError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logFTPError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logFileOpsError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logMinorError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError_CanNotDoMethod (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError_ClassNotFound (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError_InvalidParameter (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError_SwitchCase (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logProgramError_UnderConstruction (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logSMTPError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logSQLError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$logUserError (2007-07-05 Doug K.)
Open trace log if an internal error occurred.

oErrorHandler/$openErrorLogViewer (2007-07-10 Doug K.)
Added new log viewer method which opens the appropriate log file viewer based on iLogErrorsDestination (tracelog, logfile, database)

oErrorHandler/$promptonceLastError (2007-07-05 Doug K.)
Add test for wErrorPrompt window class and send error to trace log if not found. Look for wErrorPrompt in $ctask.$lib, then $clib.

oErrorHandler/$setDatabaseSession (2007-07-10 Doug K.)
Added method to set the database session which is to be used for the error log. This allows the main database to be used for the error log rather than individual log files on client computers. The sErrorlog schema class was added to support this enhancement.

oErrorHandler/$setDatabaseSession (2007-07-18 Doug K)
Change ioDBAdmin ivar to oDBAdmin local variable so that the 2 extra sessions are destroyed after the method runs. Get the tables list using our own statement object to avoid opening 2 new sessions using oDBAdmin just to check if the 'Errorlog' table exists.

oErrorHandler/_writeToLogFile (2007-07-05 Doug K.)
Added private method which writes to the log file.

oErrorHandler/setLogFileAndFileOpsVar (2007-07-05 Doug K.)
Set the iLogErrorsDestination ivar to 'logfile' if all goes well in this method, 'tracelog' if not. Set the iLogFilePath ivar if all goes well in this method.

oErrorHandler/writeErrorToLog (2007-07-05 Doug K.)
Renamed 'writeToLogFile' method to 'writeErrorToLog' and then created applicable _writeTo... submethods. Errors will automatically be written to tracelog, logfile, or database depending on the state of iLogErrorsDestination.

oLogon/$reconnectSession (2007-07-18 Doug K.)
Added new method which is to reconnect the session doing as little work as possible and not changing the session name.

oLogonMethods/$initialize (2007-07-12 Doug K per Andy H)
Added parameter pbPingDBServer and ivar ibPingDBServer to control whether or not to send a TCPPing to the database server.

oLogonMethods/$reconnectSession (2007-07-18 Doug K.)
Added new method which is to reconnect the session doing as little work as possible and not changing the session name.

oLogonMethods_FRONTBASEDAM/$pingDatabase (2007-07-12 Doug K.)
Added 'If irSessionRow.pingdbserver' to control whether or not a TCPPing is sent to the DB server.

oLogonMethods_MYSQLDAM/$pingDatabase (2007-07-12 Doug K.)
Added 'If irSessionRow.pingdbserver' to control whether or not a TCPPing is sent to the DB server.

oPaths/$#About (2007-07-05 Doug K.)
Added a slew of platform specific private methods from the free FolderPaths library.

oPaths/$:ErrorText (2007-07-05 Doug K.)
Added method $:ErrorText which returns the last error logged by this object.

oPaths/$:OmnisStartupFolderName (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis Startup' folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:OmnisStartupFolderName.$assign (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis Startup' folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:PATHPREFERENCESFOLDER_APP (2007-07-04 Doug K.)
Deprecated the poorly named '$:PathPreferencesFolder_app' method.

oPaths/$:PATHPREFERENCESFOLDER_USER (2007-07-04 Doug K.)
Deprecated the poorly named '$:PathPreferencesFolder_user' method.

oPaths/$:PathAppFolder (2007-07-04 Doug K.)
Removed early exits.

oPaths/$:PathAppPreferencesFolder (2007-07-04 Doug K.)
Added method '$:PathAppPreferencesFolder' which supercedes the poorly named '$:PathPreferencesFolder_app'.

oPaths/$:PathLogsFolder (2007-07-05 Doug K.)
Changed the 'logs' folder location to be inside the '$:PathUserPreferencesFolder'.

oPaths/$:PathOmnisStartupFolder (2007-07-13 Doug K.)
Added 'FolderName' variable to make it easier for developers to change 'Omnis Startup' to a different name.

oPaths/$:PathOmnisStartupFolder (2007-07-17 Doug K per request by Mike Matthews.)
Use the $:OmnisStartupFolderName property method to get the 'FolderName' to make it easy for developers to change 'Omnis Startup' to a different name using the startupsettings.txt file or from the Startup_Task.

oPaths/$:PathTempFilesFolder (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserDesktop (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserDocuments (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserHome (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserPreferencesFolder (2007-07-04 Doug K.)
Added method '$:PathUserPreferencesFolder' which supercedes the poorly named '$:PathPreferencesFolder_user'. The new method uses the platform dependent location for the user preferences folder, not the Omnis Studio folder. By default an /Omnis/[$ctask().$name]/ folder is created inside the platform's 'user preferences' folder. You can override this method in your main library oPaths object to use your own app name for the subfolder(s).

oPaths/$:PathUserPreferencesFolder (2007-07-17 Doug K per request by Mike Matthews)
Use the $:PreferencesParentFolderName method value as the parent folder name, allowing developers to set this in the startupsettings.txt file.

oPaths/$:PathUserPreferencesFolder (2007-07-17 Doug K)
Check for an $:AppName property method in the startup task. If it exists, use the return value as the name for the actual preferences folder.

oPaths/$:PreferencesParentFolderName (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis' preferences folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:PreferencesParentFolderName.$assign (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis' preferences folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$_FINDSTRINGTABLESINFOLDER (2007-07-05 Doug K.)
Deprecated the $_findStringTablesInFolder method. The *.stb files are no longer being used by StudioWorks.

oPaths/$_logError (2007-07-05 Doug K.)
Removed opening the trace log from this method if the sender has the object set to send errors to trace log. Opening the trace log causes all subsequent lines of code to be written to the trace log.

oPaths/$_logError (2007-07-05 Doug K.)
Added an ivar, iErrorText, which is calculated if an error occurs. The sender can get the last error using $:ErrorText.

oPaths/$initialize (2007-07-05 Doug K.)
Removed the old backwards compatible code for 'foldersconfig' settings in the startupsettings file. Removed the ability to set the logs, preferences, or studioworks folder locations from in the startupsettings file. If you want anything other than the defaults you need to modify the methods of oPaths in your main library.

oPaths/trimPath (2007-07-05 Doug K.)
Added new method which trims double quotes off file paths (from Applescript) and trims trailing path delimiters.

oPrepareNewDatabase/$prepareNewDatabase (2007-07-10 Doug K per Andy H.)
After sync'ing the database refresh the session if using the Omnis data file so that the table list will be correct.

oRebuildCachedLists/$_reloadStringTables (2007-07-19 Doug K per Andy H.)
Changed method name 'reloadStringTables' to '$_reloadStringTables' so that the method can be overridden in subclass.

oRebuildCachedLists/$buildRuntimeWindows (2007-07-19 Doug K per Andy H.)
Change 'reloadStringTables' to '$_reloadStringTables' so that the method can be overridden in subclass.

oRebuildCachedLists/$rebuildAllCachedLists (2007-07-19 Doug K per Andy H.)
Change 'reloadStringTables' to '$_reloadStringTables' so that the method can be overridden in subclass.

oRebuildCachedLists/$reloadStringTables (2007-07-19 Doug K per Andy H.)
Change 'reloadStringTables' to '$_reloadStringTables' so that the method can be overridden in subclass.

oSQLLists/$retSQLClassCustomInfoRow (2007-07-12 Doug K.)
Added method to make it easy to get the meta-data custominforow for a class.

oSQLLists/$retSQLColCustomInfoRow (2007-07-12 Doug K.)
Added method to make it easy to get the meta-data custominforow for a column.

oSessionsManager/$:DefaultSessionRow (2007-07-12 Doug K.)
Added 'pingdbserver' to the sSessions_listdef and the default session row, default kTrue.

oSessionsManager/$pingDatabase (2007-07-12 Doug K.)
Added 'If pSessionListRow.pingdbserver' before issuing TCPPing to the database server.

oStartupTaskDefaultMethods/$signIn (2007-07-10 Doug K per Andy H)
Changed $openonce to $open in the error message details.

oStartupTaskDefaultMethods/openLibraries (2007-07-05 Doug K.)
Added missing return FlagOK from initializing oPaths object.

oStartupTaskVarsTool/$_constructObjRefVar (2007-07-10 Doug K per request by Andy H)
Renamed private method 'constructObjRefVar' to protected method '$_constructObjRefVar'

oStartupTaskVarsTool/$_initializeAppPrefs_localdatafile (2007-07-04 Doug K.)
Call oPaths method '$:PathAppPreferencesFolder' instead of deprecated '$:PathPreferencesFolder_app' if $cando.

oStartupTaskVarsTool/$constructTaskVars (2007-07-10 Doug K per request by Andy H)
Changed 'Do method 'constructObjRefVar' to 'Do $cinst.$_constructObjRefVar'

oStartupTaskVarsTool/$initialize_local_prefs (2007-07-04 Doug K.)
Call oPaths method '$:PathUserPreferencesFolder' instead of deprecated '$:PathPreferencesFolder_user' if $cando.

oStartupTaskVarsTool/$initialize_logn (2007-07-12 Doug K.)
Set the 'pingdbserver' column value from to startupsettings 'pingdatabase' or 'pingdbserver' property.

oStartupTaskVarsTool/$initialize_logn (2007-07-19 Doug K per Andy H.)
If a session name is provided by the startupsettings.txt file, then search the saved sessions for a matching 'sessionname'. If a matching saved session is found, then copy it to the SessionRow. Added parameter "bErrorIfNotFound=kFalse" to the 'Do method getTableOwnerLogonInfo' so that the file doesn't have to exist. The tables owner user name and password can be stored in a saved session and used from there if a tablesownerlogon.txt file does not exist.

oStartupTaskVarsTool/$saveTaskVarPropertiesOnSignOut (2007-07-11 Doug K.)
Refresh the session before attemping to save the user preferences. The session may have been lost by the time we sign out. I often lose the database session when moving my laptop from place to place.

oStartupTaskVarsTool/$setTaskVarPropertiesAfterSignIn (2007-07-10 Doug K.)
Added code to set the $:AppName in the error handler.

oStartupTaskVarsTool/checkandrebuildListsIfReqd (2007-07-05 Doug K.)
Don't rebuild the lists if the local_prefs main lib name is empty. This means the app is being opened for the first time by a user.

oStartupTaskVarsTool/getTablesOwnerLogonInfo (2007-07-19 Doug K per Andy H)
Added parameter pbErrorIfNotFound which allows the sender to specify whether or not it is an error if the tableownerlogon.txt file is found.

oStringTables/_loadSchemas_stb (2007-07-14 Doug K.)
Removed the method call to _sortSchemCols. Sorting of schema columns is now done manually by the developer in the Rebuild Lists programmer window.

tBase/$dodeletesBatch (2007-07-11 Doug K.)
Modified method to handle deleting records of tables which do not have a primary key, or have a composite primary key.

tBase/$dodeletesBatch (2007-07-16 Doug K.)
Moved an 'End if' to the correct location. The $includelines and StartLine was not getting reset.

tBase/$doupdatesBatch (2007-07-11 Doug K.)
Modified method to handle updating records of tables which do not have a primary key or a composite primary key.

wDBAdmin/$construct (2007-07-17 Doug K per Andy H)
Added code to make sure the DBAdmin window defaults to the current session which the app (oLogon) is logged on to.

wSQLMetaDataEditorCustomInfoRow_abstract/$#About (2007-07-11 Doug K.)
Added abstract custominforow meta-data superclass which other classes can be subclassed from.

wSQLMetaDataEditor_abstract/$_setCustomInfoRowSubWin (2007-07-11 Doug K.)
Added method to set the custominforow subwindow.

wSQLMetaDataQueryClassEditor/$editClass (2007-07-11 Doug K.)
Added call to $_setCustomWindowInforRow method to set the custominforow subwindow.

wSQLMetaDataQueryColsEditor/$editClass (2007-07-11 Doug K.)
Added call to $_setCustomInfoRowSubWin.

wSQLMetaDataSchemaClassEditor/$editClass (2007-07-11 Doug K.)
Added call to $_setCustomWindowInforRow method to set the custominforow subwindow.

wSQLMetaDataSchemaColsEditor/$editClass (2007-07-11 Doug K.)
Added call to $_setCustomInfoRowSubWin.

wSecurity_GroupWindows/$save (2007-07-10 Doug K per Andy H.)
Bug fix. Change 'to iWindowsList.$line' to 'to iWindowsList.$linecount'

wSecurity_GroupsList/addUsers (2007-07-19 Doug K per Andy H)
Fixed stbid by removing the trailing period character. Added sSecurity_stb rows: 'ThereWereNoUsersFound', 'ThereAreNoMoreUsersToBeAdded', for the other prompts in this method.

wSecurity_GroupsList/removeUsers (2007-07-19 Doug K.)
Added sSecurity_stb row: 'PleaseSelectAtLeastOneUser' for one untranslated prompt in this method.

wSecurity_UsersList/removeUserFromSelectedGroups (2007-07-19 Doug K.)
Added the following rows to sSecurity_stb: PleaseSelectAtLeastOneGroup, UnableToFindTheSelectedUserInTheUsersList, for the prompts in this method.

wSessionEdit/$#About (2007-07-12 Doug K.)
Added 'pingdbserver' checkbox field to the sessions editor.

swDocs4

@00 Error Handler/@31 Log Errors Destination (2007-07-11 Doug K.)
Added documentation on configuring the error handler to use the database for the error log.

@00 Windows/@50 Default Commands (2007-07-19 Doug K.)
Added documentation on default commands for evOK and evCancel events.

@20 Startup Settings/@30 Logon Settings (2007-07-12 Doug K per Andy H.)
Added property 'pingdatabase' to the logon settings sample documentation.

@21 Sign In (Logon)/@11 Tables Owner Logon (2007-07-19 Doug K.)
Updated the 'Tables Owner Logon' documentation to include the option of storing the info in a saved session.

@30 Folders and Files/@50 Folders Configuration (2007-07-17 Doug K.)
Updated the folders configuration documentation.

@50 Meta-Data/@50 Custom Meta-Data (2007-07-12 Doug K.)
Added documentation on adding your own custom meta-data using the custominforow.

oPaths/$#About (2007-07-05 Doug K.)
Added a slew of platform specific private methods from the free FolderPaths library.

oPaths/$:ErrorText (2007-07-05 Doug K.)
Added method $:ErrorText which returns the last error logged by this object.

oPaths/$:OmnisStartupFolderName (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis Startup' folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:OmnisStartupFolderName.$assign (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis Startup' folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:PATHPREFERENCESFOLDER_APP (2007-07-04 Doug K.)
Deprecated the poorly named '$:PathPreferencesFolder_app' method.

oPaths/$:PATHPREFERENCESFOLDER_USER (2007-07-04 Doug K.)
Deprecated the poorly named '$:PathPreferencesFolder_user' method.

oPaths/$:PathAppFolder (2007-07-04 Doug K.)
Removed early exits.

oPaths/$:PathAppPreferencesFolder (2007-07-04 Doug K.)
Added method '$:PathAppPreferencesFolder' which supercedes the poorly named '$:PathPreferencesFolder_app'.

oPaths/$:PathLogsFolder (2007-07-05 Doug K.)
Changed the 'logs' folder location to be inside the '$:PathUserPreferencesFolder'.

oPaths/$:PathOmnisStartupFolder (2007-07-13 Doug K.)
Added 'FolderName' variable to make it easier for developers to change 'Omnis Startup' to a different name.

oPaths/$:PathOmnisStartupFolder (2007-07-17 Doug K per request by Mike Matthews.)
Use the $:OmnisStartupFolderName property method to get the 'FolderName' to make it easy for developers to change 'Omnis Startup' to a different name using the startupsettings.txt file or from the Startup_Task.

oPaths/$:PathTempFilesFolder (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserDesktop (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserDocuments (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserHome (2007-07-04 Doug K.)
Revised to use private methods copied from the StudioTips 'FolderPaths' library.

oPaths/$:PathUserPreferencesFolder (2007-07-04 Doug K.)
Added method '$:PathUserPreferencesFolder' which supercedes the poorly named '$:PathPreferencesFolder_user'. The new method uses the platform dependent location for the user preferences folder, not the Omnis Studio folder. By default an /Omnis/[$ctask().$name]/ folder is created inside the platform's 'user preferences' folder. You can override this method in your main library oPaths object to use your own app name for the subfolder(s).

oPaths/$:PathUserPreferencesFolder (2007-07-17 Doug K per request by Mike Matthews)
Use the $:PreferencesParentFolderName method value as the parent folder name, allowing developers to set this in the startupsettings.txt file.

oPaths/$:PathUserPreferencesFolder (2007-07-17 Doug K)
Check for an $:AppName property method in the startup task. If it exists, use the return value as the name for the actual preferences folder.

oPaths/$:PreferencesParentFolderName (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis' preferences folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$:PreferencesParentFolderName.$assign (2007-07-17 Doug K per request by Mike Matthews.)
Added assignable property method to allow developers to change the 'Omnis' preferences folder name to their own brand name using the startupsettings.txt file or the Startup_Task.

oPaths/$_FINDSTRINGTABLESINFOLDER (2007-07-05 Doug K.)
Deprecated the $_findStringTablesInFolder method. The *.stb files are no longer being used by StudioWorks.

oPaths/$_logError (2007-07-05 Doug K.)
Removed opening the trace log from this method if the sender has the object set to send errors to trace log. Opening the trace log causes all subsequent lines of code to be written to the trace log.

oPaths/$_logError (2007-07-05 Doug K.)
Added an ivar, iErrorText, which is calculated if an error occurs. The sender can get the last error using $:ErrorText.

oPaths/$initialize (2007-07-05 Doug K.)
Removed the old backwards compatible code for 'foldersconfig' settings in the startupsettings file. Removed the ability to set the logs, preferences, or studioworks folder locations from in the startupsettings file. If you want anything other than the defaults you need to modify the methods of oPaths in your main library.

oPaths/trimPath (2007-07-05 Doug K.)
Added new method which trims double quotes off file paths (from Applescript) and trims trailing path delimiters.

swGui4

oConcretizer/_createRuntimeToolbar (2007-07-18 Doug K.)
Close the toolbar generator when we're done creating the runtime toolbar. Was causing trouble with prompt window.

oConcretizer/setRuntimeFieldsAndFieldPropertiesList (2007-07-20 Doug K.)
Added kPictureobj to the object types for text and tooltip translation.

oMenusList_abstract/$_addSpecialMenuLine (2007-07-11 Doug K.)
Call 'addSpecialMenuObjectMethod' to add the method with placeholders for the parameters.

oMenusList_abstract/addSpecialMenuObjectMethod (2007-07-11 Doug K.)
New method to add the special menu object method with placeholders for the parameters.

oWindowsList/$addCustomWinInstIDs (2007-07-11 Doug K.)
Added Errorlog window instances to the WinInstIDs for the swGui4 module. Added Errorlog to sIcon_nav for the Errorlog icon in the nav list.

oWindowsProperties/checkSizeAndFit_MacOS (2007-07-18 Doug K per Josh L.)
Discovered that the applescript doesn't work on older versions of Mac OS X. Added code to check the script result and use default method if empty.

wBase_ToolbarTitlebar_abstract/$_constructEnabledCmndsCSV (2007-07-19 Doug K.)
Revised the method to check $canEdit and remove the 'Edit' command if not permitted.

wBase_ToolbarTitlebar_abstract/$_constructToolbar (2007-07-11 Doug K.)
Check the $:ToolbarVisible property before constructing the toolbar.

wBase_ToolbarTitlebar_abstract/$construct (2007-07-18 Doug K.)
Remove early exits and return FlagOK. Method was returning kTrue even if there was an error.

wBase_ToolbarTitlebar_abstract/$construct (2007-07-19 Doug K.)
Added call to $_constructSetDefaultCmnds to set the default commands to execute on evOK and evCancel.

wBase_abstract/$:DefaultCmnd_evCancel (2007-07-19 Doug K.)
Added property method which returns the default command to do 'On evCancel'.

wBase_abstract/$:DefaultCmnd_evCancel.$assign (2007-07-19 Doug K.)
Added property method to assign the default command to do 'On evCancel'.

wBase_abstract/$:DefaultCmnd_evOK (2007-07-19 Doug K.)
Added property method which returns the default command to do 'On evOkay'.

wBase_abstract/$:DefaultCmnd_evOK.$assign (2007-07-19 Doug K.)
Added property method to assign the default command to do 'On evOK'.

wBase_abstract/$_constructSetDefaultCmnds (2007-07-19 Doug K.)
Added $_constructSetDefaultCmnds method to give subclass methods an opportunity to set specific commands for kBMok and/or kBMcancel.

wBase_abstract/$construct (2007-07-19 Doug K.)
Added call to $_constructSetDefaultCmnds to set the default commands to execute on evOK and evCancel.

wBase_abstract/$doCmnd (2007-07-19 Doug K.)
Added code to handle pCmnd = defaultcancel or defaultokay. This method calls $:DefaultCmnd_evCancel/evOK to get the default command.

wBase_abstract/$refresh (2007-07-19 Doug K.)
Removed the prompt error handler if flag false. Not needed in this method.

wBase_abstract/$save (2007-07-19 Doug K.)
Removed the prompt error handler if flag false. Not needed in this method.

wBase_abstract/$saveAndClose (2007-07-19 Doug K.)
Removed early exit.

wContainer_Edit_ListChildren_abstract/$subwinCmnd (2007-07-19 Doug K per Andy H)
Set the flag to true in cases where it is not an error.

wContainer_Edit_ListChildren_abstract/$subwinCmnd (2007-07-19 Doug K. per Andy H.)
Added 'Default' to switch/case to trap and log errors.

wContainer_List_Edit_abstract/$listChildRecords (2007-07-18 Josh L.)
Improved Error handling in method

wContainer_List_Edit_abstract/$subwinCmnd (2007-07-19 Doug K.)
Added case for 'preparelist' to avoid error.

wContainer_List_Edit_abstract/$subwinCmnd (2007-07-19 Doug K per Andy H)
Added 'Default' to Switch/Case to log error if the case is not found.

wContainer_List_ListChildren_abstract/$subwinCmndParent (2007-07-19 Doug K per Andy H)
Added Default to switch/case to trap and log error. Added FlagOK to the method logic. Replaced the method code with updated code from Andy H.

wContainer_Tab_abstract/$setupWindow (2007-07-19 Josh L.)
Method returns kTrue, so inherited verisons don't break

wContainer_abstract/$_retActiveCmndsList (2007-07-23 Doug K.)
Make 'SaveAndClose' always active for the 'Return' key evOK to close the window.

wEdit_abstract/$_retActiveCmndsList (2007-07-18 Doug K.)
Moved SaveandClose to always active so that user can hit the 'Return' key to close the edit window without using the mouse.

wEdit_abstract/$editRecord (2007-07-11 Doug K.)
Check for primary key in order to be able to fetch the record. Log error if no primary key.

wEdit_abstract/$editRecord (2007-07-19 Doug K per Josh L.)
Refactored method to solve some confusion over the current line in the list vs. multiple line list.

wErrorlogEdit/$#About (2007-07-11 Doug K.)
Added window class wErrorlogEdit for viewing Errorlog table record details.

wErrorlogList/$#About (2007-07-11 Doug K.)
Added window class wErrorlogList for viewing Errorlog table records.

wErrorlogListView/$#About (2007-07-11 Doug K.)
Added container window class wErrorlogListView for viewing Errorlog table records and record details.

wList_abstract/$#About (2007-07-19 Doug K.)
Added $findall method to wList_autoconfig so that the superclass $doCmnd can be used. Inherited the superclass $doCmnd method.

wList_abstract/$construct (2007-07-18 Doug K.)
Added parameter pWinInstID for steppping through Do inherited. Removed multiple exits.

wList_autoconfig/$edit (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$export (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$find (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$findall (2007-07-19 Doug K.)
Added $findall method so that it can be called directly from the superclass $doCmnd.

wList_autoconfig/$new (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$newCopy (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$print (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wList_autoconfig/$view (2007-07-19 Doug K.)
Removed prompt error handler if flag not true. Not required in this method.

wNav_Treelist/$#About (2007-07-18 Doug K.)
Enhancements made to prevent tabbing into the navigation treelist from the list/edit subwindows. Set treelist to $enabled=kFalse. Added On evMousedown to $event treelist method to catch mouse clicks on the treelist. Removed the On evClick code from the $event method of the treelist. Even though the treelist is disabled it is still possible to tab into the treelist. (possible Omnis bug?) Added On evBefore to $event treelist method to Queue tab or shift-tab when focus comes to the treelist.

wNav_Treelist/$eventShow (2007-07-18 Doug K.)
Added method which allows the main window to notify the NavList subwindow that it is about to be shown.

wPromptFindMultiCriteria/$#About (2007-07-11 Doug K. per Andy H.)
Added enhancement to build a droplist for 'fetchall' tables on 'is' comparison.

wPromptFindMultiCriteria_subwin/$#About (2007-07-11 Doug K per Andy H.)
Added droplist field for 'is' on 'fetchall' tables.

wPromptFindMultiCriteria_subwin/$construct (2007-07-11 Doug K. per Andy H.)
Add code to define iList.

wPromptFindMultiCriteria_subwin/setEntryField (2007-07-11 Doug K.)
Added code for setting droplist select on hasfetchall tables.

wPromptModelessShell/setWindowSizeAndLocation (2007-07-18 Doug K.)
Modified method so that the prompt window will always be visible, even if the top window is off screen.

wPromptShell/$_setWindowSizeAndLocation (2007-07-18 Doug K.)
Modified method so that the prompt window will always be visible, even if the top window is off screen.

wSearchbar/$#About (2007-07-11 Doug K per Andy H.)
Added droplist field for 'is' selection on fetchall columns.

wSearchbar_abstract/$initialize (2007-07-11 Doug K per Andy H.)
Check the columns list for hasfetchall and add if required.

wSearchbar_abstract/$setEntryField (2007-07-11 Doug K.)
Add case for 'is' with 'hasfetchall' which then setup the list field rather than the entry field for entries to select.

wShell/$#About wShell (2007-07-19 Doug K.)
Added 'On evCancel' to the $event method of the shell to trap evCancel and send a $doCmnd('defaultcancel') to the current subwindow so that Esc/Cmnd+. can have default actions. Added 'On evOK' to the $event method of the shell to trap evOK and send a $doCmnd('defaultokay') to the current subwindow so that the 'Return' key can have default actions.

swRefs4

oRefs/$:SessionRow (2007-07-10 Doug K.)
Added method which returns the Refs database session row. Needed for setting the error handler object to use the same session.

wRefsEdit/$event_evClick (2007-07-11 Doug K per Andy H)
Bug fix. Changed 'Do $cinst.$event_evClick' in $event method to 'Do $cfield.$event_evClick'.

wRefsLookupList/$buildGroupsList (2007-07-20 Doug K.)
Added code to reselect the previous selected group.

wRefsLookupList/buildLookupsListForCurrGroup (2007-07-20 Doug K.)
Added code to reselect the previous selected lookup record.

swWeb4

oHTMLTools/$:DefaultSearchOperator (2007-07-16 Doug K.)
Added $:DefaultSearchOperator method so that subclass objects can change 'begins with' to 'contains' or other.

oHTMLTools/$retSearchBarHTML (2007-07-16 Doug K.)
Added call to $:DefaultSearchOperator method so that subclass objects can change 'begins with' to 'contains' or other.

oHTMLTools/$retSearchBarHTML (2007-07-21 Doug K.)
Added EntryFieldType for 'date' and 'number' for date, number, and integer column types.

oHTMLTools/retLookupSelectListHTML (2007-07-21 Doug K.)
Add the zero pkey record to the first line of the lookup list for web interface. Web users needs to be able to select the zero pkey record in the select lists on the web page.

oRemoteTaskMethods/$initializePublicSearchTaskVars (2007-07-16 Doug K.)
Added initialize 'logn' task variable to the list of variables to be initialized.

oSearchPage/$retStaticSearchPage (2007-07-21 Doug K.)
Set the ioHTMLTools ivar before calling other methods.

oSearchPage/retWebModuleRef (2007-07-21 Doug K.)
Added private method to find and return a reference to the web module.

oSearchPage/setVar_ioHTMLTools (2007-07-21 Doug K.)
Added private method to point ioHTMLTools to the subclass in the current web module.

rtDispatcher/$#About (2007-07-16 Doug K.)
Added 'webmon' tvar.

rtPublicSearch/$#About (2007-07-16 Doug K.)
Added 'webmon' tvar.