RiverWare Output Canvas: Teacup Storage and Flow Animation: Development Plan / Dec 2014
Phil Weinstein, CADSWES, 12-10-2014.

(0) Overview

This document presents a development overview for the most of the RiverWare "Output Canvas" output device features described in this design document, which have not yet been implemented:

A few development iterations have been completed. This culminating in:

  1. RiverWare 6.6 Output Canvas feature supporting Teacups (with multiple markers and Teacup text items), a Teacup Legend, and Images with settable opacity.
  2. Some initial development for Flow Lines.

(1) Deferred or dropped features:

  1. Animated File Generation (e.g. MPEG). This was never a user-requested feature.
     
  2. Create Multiple Teacups Dialog (see section 5.1 on "Design 3", p. 28). The behavior of the existing "Add Teacup" feature, which supports the selection of multiple SimObjs, is quite sufficient.
     
  3. A "creation wizard" idea which has not yet been design. This would be broader than the wizard-like teacup creation feature idea (prior item), including setup of markers and integrated text items within the Teacup Group.
     
  4. Development of an rwSetting Timestep Date/Time incell editor. In the Output Canvas configuration dialog, this is just a plain text editor. But it is redundant with the Date/Time Spinner and Slider controls within the preview panel. Note that we DID implement special rwSetting editors for: (a) Color chooser, and (b) Local slot names.

(2) Open Questions and Comments

  1. The design called for more numerically labeled tick marks on the vertical axis, as space allows (as is done for the California Dept. of Water Resources teacups). Currently we're supporting the top and zero AND each of the markers. We aren't showing one for the current, nor are we adding additional ones at "nice" values. Is the current functionality sufficient?
     
  2. The range of currently supported animation rates is probably too limited -- not fast enough for large series. Do we want to do anything about this now?
     
  3. The "Slot Selection" settings editor (the GUS slot selector) isn't automatically configured to limit the presented list of slots to those having the required Unit Type. Furthermore, each slot's unit type is presented within the selector only if the Unit Type filter is shown (regardless of whether the filter is actually turned on). (This takes four mouse clicks and a selection within a popup list each time the GUS slot selector is used). Ideally, the Unit Type filter would automatically be shown and set to the required Unit Type.
     
  4. There are some low-level usability issues with the rwSettingsTree item editing. For example, "Enumerated Type" settings (supported with combo box) don't take effect when the user chooses a new value item. The user must click away from the option menu for the change to be reflected in the preview.

(3) Remaining issues with otherwise-completed functionality

  1. Teacups don't hold on to live SimObj or Slot pointers. Instead, only the names of the associated SimObj and optional DataObj are retained, and Slot references are resolved as needed. That's OK. But we need to respond to SimObj name changes by updating Teacups' object names. (This needs to be done at the Sim/OutputCanvasConfig data level -- not within a GUI component).
     
  2. There are a few missing context menu operations on Teacups, e.g. show a Teacup's slots in an SCT.
     
  3. David's review comments from today (12-10-2014):
    1. The viewer's date should update whenever the Ok, Apply, or Generate button is pushed on the configuration. [This is a bug --phil].
    2. The Generate button should show the viewer as it is shown at the time the button is pushed. Could we do an implicit Apply and then generate the viewer.  A tool tip could say this "Apply changes and show Output Canvas Viewer".

... estimates (Phil, 12-10-2014):

Hours
(est)
Task Description
3.0

(3.1) Handle SimObj name changes

2.0 (3.2) Provide missing Teacup context menu operations
5.0 (3.3) Other fixes and adjustments (see above).
10.0 TOTAL (Hours) -- Remaining issues with otherwise-complete functionality

(4) Major Development Areas Still To Do

  1. Free-standing Text Items. (One important use of this is the display of the reference timestep date/time).
  2. Model Report support for Output Canvases.
  3. Flow Lines
    1. Thickness -- relative to the Flow Line Group
    2. Color / Line Style -- relative to the specific channel capacity

(4.1) Free-standing Text Items.

Hours
(est)
Hours
(est)
Task Description
8.0 Basic Data Model and Configuration GUI Support
  4.0 #1 Define rwSettings Identifiers for Text Groups and Items
  #2 Data Model: class definitions for (a) Text Group and Text Item, including rwSetting list definitions, persistence.
  4.0 #3 Object Tree (QTreeView) and Settings support for Text Groups and Text Items.
  #4 "Add Item" Action Menu: implement the six operations enumerated above.
16.0 Canvas Text Items (in Text Groups)
  4.0 #1 Text composition (of the non-Plain text item types)
  4.0 #2 Geometry computations
  4.0 #3 Text Graphics Items / Text drawing
  4.0 #4 Text Item context menu, operations: delete, configure.
24.0 TOTAL (Hours) -- Free-standing Text Items

(4.2) Model Report support for Output Canvases

Hours
(est)
Hours
(est)
Task Description
12.0 Model Report support for Output Canvases

(4.3.1) Flow Lines -- Thickness (relative to Flow Line Group)

Note: See discussions of the tasks below in the 8-27-2014 version of the Development Plan ... http://cadswes2.colorado.edu/~philw/2014/TeaCup/DevPlan.html

Hours
(est)
Hours
(est)
Description
0.0 Basic Data Model and Configuration GUI Support
DONE Define rwSettings Identifiers for Flow Line Groups and Flow Lines.
Data Model: class definitions for those two item types, persistence.
Object Tree (QTreeView) and Settings support.
"Add Item" Action Menu: implement the two operations enumerated above.
28.0 Flow Line Graphics Items
DONE Flow Line Anchor Point (invisible graphics item) development.
Flow Line graphics item, basic implementation.
8.0 Custom rendering, for line thickness
10.0 "Attach" action, initiated by dragging and dropping a "free" Flow Line Anchor Point onto something to which the end can be attached (see above).
10.0 "Detach" action, initiated by a context menu operation on Teacups and Flow Line Anchor Points (having more than one Flow Line).
6.0 Overlooked issues.
6.0 Post-Development Review Changes
40.0 TOTAL (Hours) -- Flow Lines (Thickness, relative to Flow Line Group)

(4.3.2) Flow Lines -- Color / Line Style -- relative to the specific channel capacity

Note: We may want to revisit the design of this particular feature area. It calls for mutliple instances of two new types of configuration objects: (1) Interval Specifications at the group level, and (2) Threshold items in EACH FLOW LINE instance. We may prefer a GUI dialog-based editor so that multiple parallel items can be viewed at once.

Note: See discussions of the tasks below in the 8-27-2014 version of the Development Plan ... http://cadswes2.colorado.edu/~philw/2014/TeaCup/DevPlan.html

Hours
(est)
Hours
(est)
Description
28.0 Basic Data Model and Configuration GUI Support
6.0 Define rwSettings Identifiers for Interval Specifications and Threshold items.
Data Model: class definitions for those two item types, persistence.
6.0 Object Tree (QTreeView) and Settings support.
"Add Item" Action Menu: implement the two operations enumerated above.
8.0 Coordination of Threshold item lifecycle (on Flow Line instances) with the number of Interval Specifications (in Flow Line Groups).
8.0 Flow Interval Threshold editing logic.
6.0 Flow Line Graphics Items
  6.0 Custom rendering, for color and style (pattern).
6.0 Overlooked issues.
6.0 Post-Development Review Changes
46.0 TOTAL (Hours) -- Flow Lines (Color / Line Style -- relative to the specific channel capacity).

(5) Estimates Summary

Hours
(est)
Description
10 (3) Remaining issues with otherwise-completed functionality
24 (4.1) Free-standing Text Items.
12 (4.2) Model Report support for Output Canvases
40 (4.3.1) Flow Lines -- Thickness (relative to Flow Line Group)
46 (4.3.2) Flow Lines -- Color / Line Style -- relative to the specific channel capacity
NOTE: We may want to devise a different design.
132 TOTAL (Hours)

--- (end) ---