Feb 2013: Estimates for URGWOM 13, 15, 16, 18
Phil Weinstein / CADSWES / 2-22-2013 for estimate request from David (2-18-2013).

13
  • Enhance table slots to allow for columns to be inserted and deleted (as opposed to just being appended or cut from the end of a table with changed table dimensions)
  • Allow for established columns with data to be easily sorted.

(A) "Inserting" is currently supported for table slot rows. It is also supported for table slot columns on data objects. Columns of physical table slots generally have an inherent significance. I propose that we leave this as is (i.e. not supported on physical table slots). However, if we DO apply this to physical table slots, those which support multiple-column "column blocks" need to support the insertion and deletion of columns on a "block" basis.

(B) "Allow for established columns with data to be easily sorted." This needs clarification -- I presume we are we talking about sorting data within a column (i.e. sorting its rows). (We should confirm that the request really isn't for operations to re-order columns). Assuming that "sorting" data is what's meant, would the data in other columns "stay with" the values being sorted within the column being sorted?

15 Add the capability to use different colors for the font for slot names in a data object and also for rule names and function names in a ruleset. (DN: Some of this need made be met with new Report Groups)

The first area of this is associating persistent user-defined colors with: (a) slots on data objects, and (b) RPL rules and functions. In both cases, I would propose assigning colors to entities in the context of a list of those entities within their container, i.e. with a color submenu in a context menu on list items -- rather than as a discrete property set within each object configuration (e.g. in the Slot Configuration dialog or RPL Function editor).

The second area addresses the question of where those color properties are used. Especially in the RPL context, we need to understand whether the motivation for different colors is distinguishing different entities from each other within a particular view (e.g. a RplSet object list) -- or rather to consistently provide particular objects with a "color personality" in every place where that object shows up. In the latter case, each relevant display component needs to be enhanced to support these entity colors.

Probably just for the RPL context, we could consider assigning a color to each Report Group (which contains only references to objects "owned" elsewhere) instead of to individual RPL rules and functions.

Generally, rendering issues for items in lists is somewhat complicated, but for all three basic Qt4 implementations ("item-based" QTreeWidgets -- and "model-view" QTreeViews -- both with and without a custom "item delegate") there is a straightforward way of assigning a color "QBrush" to text foreground.

Estimates (distinct sub-tasks):

... Total for user Slots: 2.5 days.
... Total for RPL applications: 5 days.

16 Enhance the capability to copy/paste multiple scalar values from an SCT (to/from EXCEL)

I'm assuming this is referring to scalar slots in the SCT's "Scalar Slot" tab (which includes 1x1 table slots) -- and not to the SCT's object grid tab. This would be a variation of the "Export Copy" and "Import Paste" operations which make use of popup dialogs to specify arguments to the copy and paste function (e.g. whether slot names and value units should be included as distinct columns).

Our current Import Paste implementations support a "preview" of the clipboard data, and a graphical indication of its application to the current cell selection (to which that data would be applied). This would need to be enhanced to support a row selection within the "Scalar Slot" tab.

Estimates:

18 Set up the capability for RiverWare objects and links to change color when defined slot values exceed specific user input thresholds. This capability would allow for the model user to easily define thresholds, such as a flood flow or low reservoir level, and then animate when the thresholds are met in a model run based on changes in the object and link colors on the workspace as the global timestep is changed by the model user within a completed model run. (DN: let's discuss)

There are several basic parts to this:

  1. A global date/time value and GUI control on the workspace. (This could be the currently defined "global time scroll" value, or some other date/time values). The control could be just the current Date/Time spinner, but we might want to develop an associated slider control (generally mapped to the run range, or some other user-defined time range).
  2. Global definition of a small set of "stages" (stage regions), each having an associated color.
  3. For link objects to which this feature is to be applied (determined dynamically by the user), the numeric levels associated with those stages. This set of values -- edited in a small display table -- needs to be persistent with the link.
  4. For simulation objects to which this feature is to be applied, the required persistent data includes both the numeric levels and the particular series slot on the object to which these level values apply.
  5. Rendering of links. I propose that, when this feature is active, Link Display Group rendering properties are ignored, and all links not configured for this feature are shown as a single-width gray line, and all links with this configuration are shown with a 2-or-3 pixel wide color link.
  6. Rendering of SimObjs -- probably we would use a background color extending several pixels beyond the 40x40 pixel bounding rectangle for SimObj icons.

Estimates:

  1. 0.5 or 2 Days -- Global date/time value and control -- longer estimate for introduction of a slider control with some range-definition options.
  2. 1.5 Days -- GUI and model persistence for the "stage-set" definitions (names and colors).
  3. 2.0 Days -- Link properties (persistent) and editor.
  4. 2.0 Days -- SimObj properties (persistent) and editor.
  5. 2.0 Days -- Link rendering
  6. 2.0 Day -- SimObj rendering.

... Total: 10.0 to 11.5 days, depending on optional slider control for date with a customizable time range.

---