Estimates for USACE Ft. Worth / Phil Weinstein / May 2015
Initial Draft: 5-22-2015. Minor Edits: 5-26-2015.

Task Summary:

Task [Estimate rev: 5-22-2015]
Estimate
(Hours)
1 Plotting: Add the ability to change the order of items in the plot legend. 8
2 Output Canvas: Trapezoidal Teacups / Area proportional to the storage 20
3 Visual Description Indicators 16
4 Scripting: Top-level option to show "Script Completed" popup dialog. 4

(1) Plotting: Add the ability to change the order of items in the plot legend.

Note: The order of slot curves in a plot legend corresponds to the order of slots as shown in the Plot Page's Plot's Output Device configuration. However, that order is not currently editable and that dialog (Output Device configuration) and isn't a necessary or typical tool for configuring a plot page. While we could consider using that configuration dialog for this enhancement, probably a different approach would be preferable.

 

Two possible approaches could be considered:

  1. Add "move" context menu controls right to the legend items. A tricky aspect of this is that the legend items may have either a horizontal or vertical layout -- or both, depending on how the legends fit within the width of the dialog. Perhaps we can overlook the semantic problem of "Move Up/Down" and "Move Left/Right" with either just the Up/Down semantics or come up with some other semantic alternative ... Move (or Shift) / Forward or Back, etc.
     
  2. Support slot legend reordering in a popup dialog, for example, as illustrated below. This could be shown from a new "Reorder..." context menu operation.

Estimate: My estimate for this is 8 Hours for either approach. A tricky aspect of this is that the Plot Page configuration data doesn't have a pure model/view implementation. Also, we need to ensure that slot curve display attributes aren't altered in the process -- slots can't just be removed and added back to the plot.

(2) Output Canvas: Trapezoidal Teacups / Area proportional to the storage

Requirements Statement:

On the output canvas, teacup diagrams can be created to represent reservoir storage. These teacups are restricted to be rectangular. This task creates a mechanism that allows the user to change all the teacups in a group to be trapezoidal. The user will have options to define how the trapezoid will be drawn, such as:

Part of this task will include gathering the requirements from the funding agency for how the teacups are to be represented.

   

Major Tasks:

  1. Elaboration of the Teacup Group's current "Bar Width" setting. This could either just be a simple bifurcation ("Top Bar Width" and "Bottom Bar Width") or the addition of a "Shape" option ("Rectangle, Trapezoid") which optionally shows appropriate width settings.

  2. Addition of a setting for the vertical distance algorithm selection:
    1. Height proportional to value
    2. Area proportional to value

Note: We might combine aspects of (1) and (2) with a "Geometry" setting with these three choices:

  1. Rectangle
  2. Trapezoid / Value mapped to Height
  3. Trapezoid / Value mapped to Area
  1. Development and use of a simple arithmetic function to map a teacup value (almost always a volume) to a vertical height, in pixels. Application of that function to most vertical placements, e.g. of vertical axis numeric positions, marker positions, and trapezoidal regions within the teacup bar.
     
  2. Modification of the rendering of tecaup areas. (Probably horizontal markers would still be drawn with the full width).

Estimate: 20 Hours.

(3) Visual Description Indicators

Requirements Statement:

Descriptive text can be entered in various places in RiverWare including: Slot Dialogs, RPL Editors, and Object Dialogs. This task will improve the ornamentation that indicates that a description has been entered through the use of an icon or other visual cue.

I recommend adding a small square "[D]" icon within the Open Object Dialog's Slot List -- alongside the current "[L]" and "[I]" icon columns -- to introduce that as a motif used in other dialogs. That icon would also be used in the following places when a non-empty description is present:

Here is an example of icons on tabs:

Major Tasks:

  1. Creation a "[D]" icon. (If the following task feature is adopted, a subtle "OFF" state is also needed).
  2. Management of another icon column in the Open Object dialog. (This feature is optional, and should be reviewed).
  3. Open Object Dialog: setting of the "[D]" icon on the "Description" tab.
  4. "RowOToggles" enhancement. The ability of the client code to specify an icon for each toggle -- to be shown to the left of the checkbox in the "Relevant" state (e.g. when a non-empty description is present). Application of this provision to the Slot Dialogs and RPL Editors.

See also the Appendix: "Find Slot Description" feature.

Estimate: 16 Hours.

(4) Scripting: Top-level option to show "Script Completed" popup dialog.

Requirements Statement:

Within the Script Management functionality, provide a user setting to show a dialog or window that indicates when the Script has completed.

Scripts already have a settings panel for the overall script. It is a simple matter to add a checkbox setting, e.g. "Show Completion Confirmation", which causes a simple popup dialog to be shown at the completion of a Script. (Note that the title of this checkbox setting shouldn't be long, as it pushes out the Value column more than what is needed for the two existing general settings). A popup is already shown in the case of an ABORT condition, so this really is just for successful script execution completion -- so this can be very simple, with just a message like: "The <script name> script has completed". (We could consider reporting also the Script execution duration).

Estimate: 4 Hours.

   

Appendix: Find Slot Descriptions Feature.

Relative to feature (3) -- Visual Description Indicators -- at least the documentation for these features should perhaps include mention of documentation for the existing ability to locate Slots in the model which have a description -- or a description containing a particular substring. This is accessible from the Workspace's Workspace >> Slots menu. See the accompanying images.

Perhaps the proposed "[D]" icon should be added to the "Find Descriptions..." menu item. Similarly, the existing "[I]" icon would be added to the adjacent "Find Inputs..." menu item.

--- (end) ---