Enhancements in MasterStudio 1.0.1

This release is supported on Omnis Studio 3.2.1 through 3.3.x. In addition to new improvements, this release implements items 37, 6b, 27, and 50b of the original MasterStudio Function Points list.
  1. Smart searching on partial field data (FP 37): After typing partial data into a joined field, it is automatically completed if only one matching record is found. Otherwise, the pick window described in the joined table's <VIEW> tag is opened.
  2. Pick lists (MD windows opened by a hyperlink) perform appropriate query (FP 6b): When you open a pick list, it automatically jumps to the record that corresponds to the value currently in the join field(s). If the record is not currently in the pick list, it is fetched automatically and added to the end of the list. If an invalid value is entered into a joined field, then the cursor remains in the field and the pick window is opened allowing users to select a different record.
  3. Support of case insensitive searching of character and national fields (FP 27): From now on, all searches are case insensitive by default. On Oracle, queries use the UPPER function. On OmnisSQL, the where-clause uses multiple AND comparisons. To re-enable case sensitive searching, add a <CASE/> tag to the primary key in the schema class.
  4. Smart pick lists automatically search and return matching data (FP 50b): If a pick list is opened from a window in which joined fields are not display-only, then the pick list will automatically paste its current record into all selected records in the main window. No manual coding is needed for this. Developers can easily override or disable this default behavior. See delegate methods $mayAcceptList and $shouldAcceptListForCurrentRecord in chapter 5.2.2 of the MasterStudio book.
  5. The "Select" command used to select record(s) from a pick list is automatically disabled if the corresponding join is display-only.
  6. Full support of the German language: In addition to U.S. English, U.K. English, and Dutch, this release contains initial German translations of strings used by the the Master-Detail framework layer. These translations may still contain some errors which will be eliminated after receiving feedback from German speaking developers.
  7. If you enter Find mode while the cursor is on a grid in "Selecting" mode, the grid is automatically put in $enterable mode so users can immediately start typing search values.
  8. When a user closes and re-opens a window instance, then the cursor is now automatically put into the same field that had the focus before the window was closed.
  9. Tested with Omnis Studio 4 beta 3.1. NOTE: Although we have not found major problems with the current beta release, this release of MasterStudio is not yet supported on Studio 4. We intend to support Studio 4 soon after its official release, but we obviously cannot give any up front guarantees.

New Methods in MasterStudio 1.0.1

(See the Book Addenda for a listing of these new features per chapter of the Developer Manual)
  1. You can now pass a "hold level" to $notificationCenter().$holdNotifications: By passing 2 or higher, you can release notifications in multiple phases using release conditions (see chapters 4.11.3 and 4.11.4 of the MasterStudio book).
  2. Any view class (subclass of MoViewSuperclass) now supports the $queueSetCurrentField method, to which you pass a reference of the window object that you want the cursor to be positioned on. This allows you to put the cursor into a specific field of a view, even if the window is opened for the first time (where assigning $ctarget wouldn't work).
  3. By posting notification kMoNotificationSetFocus to the root notification center, you can have MasterStudio position the cursor in a specific field. You must pass the $fullname of the object to be focused on as $userInfo for the notification.
  4. A window context's $openWindow method now accepts a notification object as an alternative to the location type, meaning that you can trigger a window to be opened by using $notifyOnce. Pass the window location parameter as $userInfo of the notification.

Bugfixes in MasterStudio 1.0.1
  1. The list manager's $performSearch does not take its list parameter (Bug −4): $performSearch now correctly uses the search list you pass into it.
  2. Improved keyboard event handling by the MasterStudio command controller so that commands are no longer triggered twice.
  3. (Mac only) The Last Name field in the demo application's Employees window (class DemoMdEmployeesPane) now correctly traps the evKey method in order to enable or disable the "Speak Name" and "Write Letter" buttons. This avoids that the keyboard event is triggered twice by Omnis Studio. Note: When implementing an $event method behind a field, you should pass the event to the next handler by calling $cinst.$control(), instead of using "Quit even handler {Pass to next handler}":
    On evKey
      Do $cinst.$objs.$findname('pbSpeak').$enableDisable
      Do $cinst.$control()
      Quit event handler
  4. Opening a new context now uses less methods on the stack.
  5. Solved a problem in Omnis Studio 4 beta 3.1 where a dialog message would appear twice after it was triggered from an entry field.


Back to General Release Notes


Copyright © 2011 Master Object Consultancy Terms of Use