Phil Weinstein / Accomplishments -- August 2015 -- Edit 9-03-2015 (a)

General Development Accomplishments

--------------------------------------------
[I.A] New/Enhanced Software / TVA Slot Work
   Copy Slots to Multiple Data Objects, and related new features.
--------------------------------------------

Three slot-related enhancements to the Open Object Dialog, primarily for Data Objects, were implemented for RiverWare 6.8. (The latter two listed here are relatively minor).

  1. New operation: Copy selected slots to multiple specified data objects.
  2. New operation: Duplicate selected slots.
  3. Existing Copy Slots and Paste Slots operations now have keyboard shortcuts: Ctrl-C and Ctrl-V.

The new Copy Slots to Data Objects operation applies to the currently selected slots within the Open Object Dialog. This shows a new dialog in which the user specifies to which Data Objects those slots are copied, and the following options:

  1. When copying slots from a Non-Data Object, e.g. from a Reservoir, the user can specify whether that original object's name is represented within the names of the copied slots, or not. (Including the object's name the convention when doing a manual copy and paste of slots, but can be disabled in this higher-level copy operation).
  2. What should be done for slots for which the destination data object already has a slot of the same name? The user can select between: (a) Do not paste slot, (b) Paste and overwrite existing slot, or (c) Paste with new name.

The new Duplicate Slots operation (available for only Data Objects) is effectively a quick way to perform a Copy Slots and Paste Slots operation, both within the same Open Object Dialog. The newly created slots always have a modified name, using the standard name uniqueness algorithm: digit characters are trimmed from the end of the original slots' names, and the next available four digit number (for the initial part of the slot name) is appeneded.

These new features are described in more detail in this document:

--------------------------------------------
[I.A] New/Enhanced Software / TVA Slot Work
   Slot Groups on Data Objects
--------------------------------------------

In August, much work on support for user-defined Slot Groups on Data Objects went into both: (a) several iterations of analysis and design, and (b) initial development. (Development is continuing into September).

Three architectures were considered for slot groups. We ended up choosing the first of these:

  1. A new architectural implementation of Slot Groups, as a new entity placed on Data Objects (or on simulation objects, in general).
  2. Full internal use of Aggregate Object and their Element Object C++ classes to represent Slot Groups within a Data Object. This would have added a lot of complexity to Aggregate Object implementation for something which wasn't actually a good functional match.
  3. An abstracted slot grouping scheme based on slot names starting with the "names" of slot groups enumerated by the user. This approach would have simplified many aspects of the implementation, but turned out not to be sufficiently expressive.

Development was started in August which achieved a rough level of functionality of Slot Group creation, maintenance, display and persistence (in model files and exported object files) -- but without provisions for custom ordering or copy/paste slot clipboard support. While this is initially being coded specifically for Data Objects, much of the higher-level application code does not make the assumption that this will ultimately be limited to Data Objects. (In the future, we may want to generalize this feature for all simulation objects).

Maintenance Accomplishments / August 2015

--------------------------------------------
[II] RiverWare Software Maintenance / Software Updates / Bug Fixes
--------------------------------------------

The following bugs were fixed:

--- (end) ---