RiverWare Scenario Explorer / Partial Prototype for Workspace Panel / June 2015
Phil Weinstein, CADSWES, Edit: 7-01-2015.

Document Home:

Document Status:

Related Documents:

(1) Overview

Two particular software engineering tasks required for the support of a new "RiverWare Scenario Explorer" were addressed in June 2015. These are:

  1. Building a differently named executable from the RiverWare source tree. (This is described in a related document cited above).
  2. Displaying a simplified version of the RiverWare workspace in a "thumbnail" panel of the Scenario Explorer dialog, and also as a stand-alone popup window.

This development incorporated also the creation of a "stubbed" version of the Scenario Explorer dialog based on the requirement document's "mockup" Qt UI file. When running the new "ScenarioExplorer.exe" program, only the Scenario Explorer is shown, i.e. instead of the standard RiverWare workspace. The Scenario Explorer dialog supports the loading of a RiverWare model file.

(2) Scenario Explorer Dialog Operations

The Scenario Explorer Dialog's file menu supports these two operations:

  1. "Load Model" -- This brings up a file chooser to allow the user to select a RiverWare model file. Note: In the actual application, only Baseline RiverWare Models will be loadable.
  2. "Exit" -- Exit the Scenario Explorer program. A confirmation dialog is shown.
                

The "Open in Separate Window" button shows the workspace in a popup dialog.

(3) Workspace Viewer Widget (Panel) and Dialog

    

The workspace "thumbnail" and popup dialog are implemented as new Qt4 utility widgets which can be deployed in, or from, any dialog. These widgets support both a relatively "static" and "dynamic" presentations of the workspace. The Scenario Explorer makes use of only their static mode. In this mode:

  1. Only a "Zoom" level submenu is supported in the context menu.
  2. Objects and Links show Tooltips.
  3. Objects are selectable; but this is useful only for its visual ornamentation. See the accompanying image.
  4. Object positions are locked (not draggable). Since this is not changeable in the static mode of these workspace widgets, no lock icon button is shown in the lower-right corner.

In this current prototype, the zoom level is automatically adjusted each time the panel (or dialog) is resized. This currently makes use of only the discrete zoom levels supported by the workspace, so that fit isn't always optimal. For the time being, the set of supported zoom levels has been increased so that the full model is more likely to fit within a relatively small "thumbnail" presentation.

Notes:

  1. In the production implementation, we will probably want to provide more control over when "auto-fit" is applied: perhaps only on initial creation and as a one-shot operation (e.g. in the context menu).
     
  2. These workspace widgets were based on some experimental code supporting "Smart Zooming". When zooming in beyond the normal ("100%") zoom level, the object icons do not grow in size; they remain their natural "100%" size (currently, 40x40 pixels). There is one known problem with computed QGraphicsItem "shape" regions when smart zooming is applied. This effects, for example, the locations around the object graphics items which support tooltips and context menus specific to the object.

See the header files in these modules for more information about these new utility widgets:

(4) Other Prototype Features

The Model Description text panel shows the loaded model's description. This is editable only from the RiverWare program -- not within the Scenario Manager.

(5) Testing and Running the Scenario Explorer from RiverWare

    

Since the Scenario Explorer is implemented within the RiverWare source tree, it is technically possible to operate that dialog from within RiverWare.

The Scenario Explorer can be shown from the generally hidden RiverWare "Test" menu. There are also operations to show the new Workspace Viewer in either "Static" or "Dynamic" modes. See these Test menu operations:

  1. Scenario Explorer...
  2. Workspace Viewer (Static)...
  3. Workspace Viewer (Dynamic)...

Notice also the "Enable Cluster Detail" section. This creates a tab in the Object Cluster dialog which shows a mini-workspace including only the object cluster's member objects. It was that experimental code from which the Workspace Widget was developed. This is also the place where "Smart Zooming" was experimentally developed. Note that Smart Zooming has not been provided in an actual RiverWare release.

--- (end) ---