Workspace Object Aggregation for RiverWare 6.5 / Analysis

Workspace Object Aggregation is a new capability of the RiverWare Workspace which allows arbitrary sets of simulation objects to appear on the workspace as a single icon.

See Project Index webpage.

Document Status:

General Definitions and Conventions:

  1. These collections of simulation objects will be called one of the following (TBD):
    1. (Workspace) Object Aggregates
    2. (Workspace) Object Groups  (See Note-1).
       
  2. Object Groups are a display-only provision; they have no effect on the model solution.
  3. Object Groups will be supported on the Simulation Workspace, and possibly the Geospatial Workspace, but not on the Accounting Workspace. (See related open issue).
  4. An Object Group will appear on the workspace as an icon, similar to the existing simulation object icons (40x40 pixels).
  5. An Object Group will have a name which is displayed on the workspace under its icon.
  6. Any given simulation object can be a member of only one Object Group.
  7. The definition of an Object Group will be persistent in the RiverWare model file.
     
  8. Each Object Group will have two display states:
    1. "Collapsed": Only the Object Group icon is shown; the group's member object icons are hidden.
    2. "Expanded": The Object Group icon AND all of the group's member object icons are shown.

Note-1: Object Display Groups are already (in RiverWare 6.4) presented as "Object Groups" in the user interface, e.g. in the simulation object context menu. We will need to ensure that these two sorts of "Object Groups" are appropriately characterized in the user interface.

Operations on Object Groups:

Object Group icons will have a set of context menu operations different from those of the simulation object context menu. Unless otherwise noted, the following operations are presented as context menu operations on the Object Group icon:

  1. Create Object Group: context menu operation on the workspace. All currently selected objects are made members of the group. Selected objects which are a member of another group are quietly removed from that other group. (See Note-2).
  2. Expand / Collapse Group ... (two radio button).
  3. Add Object to Group. This could be implemented with either or both:
    1. dragging an object icon over to an object group icon.
    2. context menu operation on simulation objects ... submenu of object groups.
  4. Remove Object from Group ... submenu of member objects.
  5. Open (Member) Object ... submenu of member objects.
  6. Edit Group Name.
  7. Delete Object Group ... (with confirmation). This will not cause the member simulation objects to be deleted.

It will be necessary to "Expand" an Object Group in order to access context menu operations which are available only on the simulation object context menu, e.g. creating new links between objects.

Note-2: There is a functional complication with implementing "Create Object Group" as a context menu on the workspace: clicking on the workspace deselects all simulation object icons. Even though we could "capture" that set of object icons, it will be somewhat astonishing to the user for that to work. We might instead include a <New Group> item to the simulation object's Add Object to Group context menu submenu.

Display Provisions:

  1. We will initially provide only a single icon to represent Object Groups.
  2. The tooltip on the Object Group Icon will list the member simulation objects.
  3. The simulation object icon tooltip (which currently shows just the name of the object) will also include, in parentheses, the name of the Object Group of which it is a member (if it is a member of a group).
  4. When an Object Group is collapsed:
    1. Its individual member object icons are hidden.
    2. Links between the group's objects and other objects (not in the group) are drawn to the Object Group icon.
    3. Links between the group's objects are not drawn (of course).

Advanded Display Provisions (to be considered):

  1. Distinct icon appearances for the Expanded and Collapsed states of an Object Group. Perhaps the Expanded state would be shown as partially transparent (faded) (or grey).
  2. When mousing over an expanded Object Group Icon, a yellow halo is drawn around its member objects' icons.

Additional Behavioral Provisions:

  1. Object Group icons will be selectable, and can visually be part of a multiple simulation object selection. Multiple simulation object and Object Group selections can be dragged to reposition them on the workspace.
  2. Selecting an Object Group automatically selects all of its member simulation objects.

No Current Requirement for an "Open Object Group" Dialog.

None of the currently proposed operations on Object Groups (described above) require the introduction of a new "Open Object Group" dialog. But a dialog could certainly be implemented if, for example, we prefer not to rely on context menu operations for managing an Object Group.

Naming and renaming an Object Group could be implemented with the "unique name entry" dialog which shows a list of the existing names (of the particular type of object). [QtUtils/UniqueNameEntryDlg].

Open Issues

(1) Object Group "Scope" with respect to the Workspace.

Should an Object Group exist only within the context of the Workspace (i.e. Simulation vs. Geospatial) within which it is created? Or would it operate in all workspaces in which Object Groups are supported.

--- (end) ---