Sw4   >   About   >   Version 2007-05-31

Version 2007-05-31

This release greatly reduces the size of the cached list of the SQL lists master list. It does so by no longer storing the pre-defined lists in the master list.

This release is mostly just minor bug fixes and code tweaks. Look through the detailed modifications for each library in this section to see all of the modifications. The following is a summary of the more important changes.

  1. SQL Master List Size Reduced - The cached list for the oSQLLists master list was getting bloated because we were storing pre-defined lists for each schema and query class in the master list. (The defined lists created using the $definesfromqlclass method.) This was becoming a problem for mega-apps as the cached list was growing to over 20MB. Elimating the definedlist column from the master list reduced the cached list size to 25% of its original size. This change greatly speeds up loading of cached lists during startup for runtime users.
  2. Multiple Monitors - Support has been added for remembering the last window size and location on multiple monitors on Mac OS X computers.
  3. MySQL - Minor changes to the preferences objects for working with MySQL databases.
  4. Programmer Workbench - A window has been added which combines all of the popular programmer windows in a single shell window that uses a tab pane interface. Programmer Workbench has been added to the programmer menu with the shortcut key combination Ctrl/Cmnd+Shift+Z. All of the programmer windows now support restoring the window size and location for multiple monitors.
  5. Programmer Toolbar - A programmer toolbar has been added. It can be installed/removed by checking/unchecking the Programmer Toolbar menu item on the Programmer Menu. The last setting is stored in the local preferences.
  6. Lookup Droplist Column Headings - Column headings will now appear for any lookup droplist that has two or more columns.
  7. Web Stats - Object classes oWebMonitor and oWebStatsEmailTimer have been added to swWeb4. These object can be used to perform non-visual web monitoring. A record is inserted into the Webappstat table for each web app request. Daily, weekly, monthly, and yearly web stats summary can be generated and automatically emailed to a specified user by the oWebStatsEmailTimer object. See the StudioWorks > Web documentation for instructions on how to set up web monitoring.
  8. Paths Object - Important bug fixes have been made to the oPaths object class. It now supports storing your studioworks folder in a common Omnis Startup folder that can be located inside your Applications or Program Files folder. Methods have been added which return the path to the user's home directory, user's desktop directory, and user's documents directory. Be sure to copy oPaths from swBase4 to your main library (see instructions below)

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 in your APP/libraries/modules/ folder.
  5. Reopen your StudioWorks app and rebuild cached lists.
  6. Rename oPaths in your main library to X_oPaths_20070525
  7. Copy oPaths from swBase4 to your main library.
  8. Quit OMSt and reopen your StudioWorks app.
  9. Test your app.

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.

swBase4

mProgrammer/installProgrammerToolbar (2007-05-30 Doug K.)
Added method to install the programmer toolbar when swBase4 is opened.

mProgrammer/removeProgrammerToolbar (2007-05-30 Doug K.)
Added method to remove the programmer toolbar if the 'Programmer Toolbar' menu item is unchecked.

mProgrammer/setMenuLine_ShowHideProgrammerToolbar (2007-05-30 Doug K.)
Added 'Programmer Toolbar' menu line and method to check/uncheck the item based on whether or not the toolbar is to be shown or hidden.

oAppPrefs/$_init_prepareCachedlistTable (2007-05-15 Doug K.)
Added switch/case for MYSQLDAM and set datatype to MediumBlob.

oAppPrefs/$_init_prepareCachedlistTable (2007-05-22 Josh L.)
Changed MYSQLDAM Syntax to set the datatype to MEDIUMBLOB instead of LARGEBLOB

oAppPrefs/$_saveCachedList (2007-05-15 Doug K.)
Added check for cached list size greater than 16MB which is a problem for the MYSQLDAM.

oCreateLibrary/createSubLibClasses (2007-05-14 Doug K per enhancement request by Mike M.)
Check for sSchema_template in the main library before using the default in swBase4.

oDBAdminMethods_SQLSERVER/$_retConstraintsList (2007-05-28 Doug K. per Andy H.)
Modified the code so that a second $fetch is attempted if the first fetch fails. SQL Server quirk.

oLocalPrefs/$:ShowProgrammerToolbar (2007-05-30 Doug K.)
Added 'showprogrammertoolbar' method to 'sLocalPrefs_listdfef' and the appropriate property method to oLocalPrefs.

oLogonMethods_MYSQLDAM/$logon (2007-05-17 Doug K.)
MySQLDAM bug workaround with fields reporting data truncation. Set the $connectoption for kMySqlOptDataTruncation to kFalse.

oPaths/$:PathOmnisStartupFolder (2007-05-25 Doug K.)
Added method which returns the path to special the 'Omnis Startup' folder if it exists. This folder, located in 'Applications' or 'Program Files' is an alternate, optional location for storing your 'studioworks' folder.

oPaths/$:PathStudioWorksFolder (2007-05-25 Doug K.)
Modified method to also check the optional 'Omnis Startup' folder for a 'studioworks' folder. Developers can now locate their 'studioworks' folder in a central 'Omnis Startup' folder located in 'Applications' or 'Program Files'.

oPaths/$:PathUserDesktop (2007-05-25 Doug K.)
Added method which returns the path to the current user's 'Desktop' directory, based on the operating system.

oPaths/$:PathUserDocuments (2007-05-25 Doug K.)
Added method which returns the path to the current user's 'Documents' directory, based on the operating system.

oPaths/$:PathUserHome (2007-05-25 Doug K.)
Added method which returns the path to the current user's home directory, based on the operating system.

oPaths/$initialize (2007-05-28 Doug K.)
Added switch/case for 'htmltemp' to 'Do $cinst.$:PathHtmlTempFolder.$assign' Added switch/case for 'urlhtmltemp' to 'Do $cinst.$:URLHtmlTempFolder.$assign' Completed code missing in the 'Default' case.

oPaths/$retStartupItemsFilePropertiesList (2007-05-28 Doug K. per Mike M.)
Remove code that considered a double slash // to be a comment. Causes problems with URLs (http://...) oPaths will need to be copied from swBase4 to the main library for this update to take effect.

oPrefs_abstract/$_init_preparePrefsTable (2007-05-14 Doug K.)
Added switch/case in create table to use LONGBLOB for MYSQLDAM.

oRebuildCachedLists/$saveAppPrefs (2007-05-15 Josh L.)
Add the missing returns FlagOK from each $assign method.

oRebuildCachedLists/$sortSchemaClassCols_stb (2007-05-31 Doug K.)
Added method which sorts the _stb schema class columns into alphabetic order. The method can be called from the 'Rebuild Lists' programmer window.

oSQLLists/$#About (2007-05-15 Doug K.)
Deleted the 'definedlist' column from the 'sSQLListsMaster_listdef' because it bloats the size of the cached list. Modified all code that was using the 'definedlist' column in master list.

oSQLLists/$buildLists (2007-05-15 Doug K.)
Comment out the method called to 'buildDefinedLists' as this is no longer being done for the SQL lists master list.

oSQLLists/$retDefinedList (2007-05-15 Doug K.)
Stop using the cached 'definedlist' and instead always call 'retDefinedListForCurrLine'.

oSQLLists/retDefinedListForCurrLine (2007-05-15 Doug K.)
Created new method 'retDefinedListForCurrLine' to replace 'buildDefinedListForCurrLine' because the 'definedlist' column has been eliminated.

oSecurity/$signIn (2007-05-11 Doug K.)
Added string table entries to sSecurity_stb for error messages so they support multiple languages.

oSecurity/$signIn (2007-05-31 Doug K.)
Added string table entry to sSecurity_stb for the first error messages that was missed.

oStartupTaskDefaultMethods/$#About (2007-05-25 Doug K. per Birger R.)
Added $cinst prefix to all calls to ioTaskVarsTool so that overridden subclass will work correctly.

oStartupTaskVarsTool/initializeStartupSettingsFileVar (2007-05-15 Doug K.)
Changed the search to look for an exact file name match to 'startupsettings.txt'

tBase/$insertEmptyRecord (2007-05-09 Josh L.)
Changed the SQL Keywords to uppercase.

tBase/$selectOperatorRecords (2007-05-14 Doug K per Andy H.)
Added code to parse pColName if it has a dot in it (servertable.colname) and then search the iColsList for the colname. If unable to find the colname in the listcolname, then search the colname in schemacolname. Removed early exits, use 'If FlagOK' instead.

tProgrammer/$#About (2007-05-30 Doug K.)
Created programmer toolbar with the toolbar buttons for the popular programmer windows. Developers can subclass this toolbar to their main library and add more buttons to it. When the 'swBase4.mProgrammer' menu is installed it will automatically find the correct 'tProgrammer' toolbar and install it, if the 'Programmer Toolbar' menu item is 'checked'. Note: If you have more than one StudioWorks app open, the toolbar will only work for the 1st StudioWorks app you opened.

wDBAdminDataMover/_moveTableData (2007-05-09 Josh L.)
Changed the SQL Keywords to uppercase.

wProgrammerWorkbench/$#About (2007-05-29 Doug K.)
Added new window for StudioWorks developers. The 'workbench' brings all the developer windows into a single tab interface shell.

wRebuildLists/$#About (2007-05-30 Doug K.)
Removed the toolbar buttons from this window. Use either the Programmer Toolbar or the Programmer Workbench instead.

wRebuildLists/sortSchemas_stb (2007-05-31 Doug K.)
Added button and method call for sorting the string table (_stb) schema class columns in the selected libraries.

wSecurity_GroupWindows/$event (2007-04-17 Josh L.)
If the user cannot access the window, they shouldn't be able to view it. Just cleaning up the permissions.

wSecurity_GroupWindows/$event (2007-04-17 Josh L.)
I like to end all methods, even events with something rational.

wSessionEdit/$control (2007-05-29 Doug K.)
Added 'On evClipChangedData' to set modified to true if values are copy/pasted in to an entry field.

wSessionEdit/$event (2007-05-29 Doug K.)
Removed the call to $save. User has to remember to click the save button.

wTools_abstract/$destruct (2007-05-29 Doug K.)
Changed from setting the window class size and location on close, to saving the window size to the StudioWorks window properties list so that multiple monitors can be supported.

wTools_abstract/$setWindowSizeAndLocation (2007-05-29 Doug K.)
Changed to setting restoring the window size and location from the StudioWorks window properties list. so that multiple monitors can be supported.

swGui4

oConcretizer/$updateDeveloperWinClass (2007-05-29 Doug K.)
Remove the 'MainScrollBox' from the ObjsList so it doesn't throw off the CurrTop calculate when adding new fields.

oWindows/$openProgrammerWindow (2007-05-29 Doug K.)
Added case for 'programmerworkbench'.

oWindows/$openProgrammerWindow (2007-05-31 Doug K.)
Added testinitializeDBAdmin before attempting to open DB Admin window.

oWindows/testinitializeDBAdminObject (2007-05-31 Doug K.)
Added method to test initialize DBAdmin before attempting to open DB Admin window.

oWindowsProperties/$saveWindowSize (2007-05-29 Doug K.)
Changed 'Do iWindowPropertiesList.$search(...' to 'If not(iWindowPropertiesList.$search(...'

oWindowsProperties/checkSizeAndFit_MacOS (2007-04-11 Andy Hilton)
Applescript code added to figure out the location and size of external monitors.

oWindowsProperties/checkSizeAndFit_MacOS (2007-05-25 Doug K.)
Modified code to allow for toolbar in either monitor & fixed some problems with $width & $height being restored incorrectly. Tested the modifications with external monitor on left and right, and toolbar in either location. Appears to be all okay.

oWindowsProperties/checkSizeAndFit_MacOS (2007-05-25 Doug K.)
Added tests near the beginning of the method to check the window width and height and adjust if they are larger than the overall available width and height

wBase_abstract/$notifyDataObservers (2007-05-25 Doug K.)
Added 2 optional field reference parameters which developers can use to pass additional information to data observers.

wContainer_Edit_ListChildren_abstract/$subwinCmnd (2007-05-25 Doug K. per Josh L.)
Added Default to Switch/Case and log an error if pCmnd is not handled in the switch/case. Removed prompt error if flag false. The prompt can/should be handled by a higher level.

wEdit_abstract/$editRecord (2007-05-24 Josh L.)
Removed early exit points.

wEdit_abstract/$editRecord (2007-05-24 Josh L.)
Removed errhndlr.$promptOnceLastError(), they get reported when this method returns.

wLookupList/setPosition (2007-05-31 Doug K per Andy H.)
Add the column header, if it is visible, to the desired height.

wLookupList/setSize (2007-05-31 Doug K.)
Added code to set the $columnnames and show the header if there are more than 1 column in the lookup list.

wLookupList/setSize (2007-05-31 Doug K. per Tom Maher)
Added $cando test for $:ColsList because Refs lookups do not have a columns list. No column headings for Refs lookups.

wPromptModelessShell/setWindowSizeAndLocation (2007-05-29 Doug K. as requested by Andy H.)
Modified the code so that the prompt window will be centred over the top window of the current task, or else centred in the main screen.

wPromptShell/$_setWindowSizeAndLocation (2007-05-29 Doug K. as requested by Andy H.)
Modified the code so that the prompt window will be centred over the top window of the current task, or else centred in the main screen.

wSignIn/$signIn (2007-05-29 Doug K per Andy H)
Moved the $promptonceLastError from the end to the beginning of the last 'Else'.

wWindowInstancesBrowser/$event (2007-05-29 Doug K per Will Adkin)
Bug fix. Call the 'rebuildTreelistSelectedWinInstIDs' method. It was calling a method that did not exist.

swIcons4

wTools_abstract/$destruct (2007-05-29 Doug K.)
Changed from setting the window class size and location on close, to saving the window size to the StudioWorks window properties list so that multiple monitors can be supported.

wTools_abstract/$setWindowSizeAndLocation (2007-05-29 Doug K.)
Changed to setting restoring the window size and location from the StudioWorks window properties list. so that multiple monitors can be supported.

swWeb4

oHTMLSecurity/$_signInSessionID (2007-05-11 Doug K.)
Change 'Do secur.$signIn@TEST_logAllErrors' to Do.secur.$signIn'. Since originally writing this method the $signIn method has been modified to log all errors using $logMinorError.

oHTMLSecurity/$_signInUser (2007-05-11 Doug K.)
Change 'Do secur.$signIn@TEST_logAllErrors' to Do.secur.$signIn'. Since originally writing this method the $signIn method has been modified to log all errors using $logMinorError.

oRemoteTaskMethods/$eventMethod (2007-05-11 Doug K.)
Added test for null event code with send error message to trace log.

oWebMonitor/$#About (2007-05-30 Doug K.)
Deleted the visual web monitoring object in the 'Server Monitor' folder. They are not supported by StudioWorks and were not very useful.

oWebMonitor/$addConnection (2007-05-30 Doug K.)
Changed method code to use pEventCode_opt rather than pEventCode.

oWebMonitor/$sendWebStatsEmail (2007-05-11 Doug K.)
Renamed $testEmailWebStats method to $sendWebStatsEmail and added parameters.

oWebStatsEmailTimer/$initialize (2007-05-11 Doug K.)
Added ivars for end week, end month, end year.

oWebStatsEmailTimer/$sendWebStatsEmail (2007-05-22 Doug K.)
Added optional parameter 'pInterval', and prefix it to the email subject if provided. (e.g. Daily, Weekly, Monthly, Custom)

oWebStatsEmailTimer/$timer (2007-05-11 Doug K.)
Modified timer method to test for end week, end month, end year and send web stats summary email for each of those periods as they occur.