SCT: Multiple Series Tabs / Design Review Report (Oct 20, 2014)
Phil Weinstein, CADSWES, 10-21-2014 (b)
Project Document:
- SCT enhancements to support TVA's Preschedule Editor functionality [See Task 2]
Source: R:\doc\sct\2014\TvaPreschedEdit\SctPreschedDesign-Sept2014.docx
PDF: R:\doc\sct\2014\TvaPreschedEdit\SctPreschedDesign-Sept2014-19.pdf
HTML: http://cadswes2.colorado.edu/~philw/2014/TVA/FEWS/SctPreschedDesign.html
(1) Abandoning Initial Approach
We are deciding against continuing the initial approach to supporting multiple Series Slot Tabs within the SCT. Briefly, support was being implemented as fundamental architectural enhancements to the internal SCT configuration data model and GUI components. The primary concern was that the interpretation of SCT "Slot Index" values (for a series slot reference or slot divider item shown in the series data table) became ambiguous in certain contexts. The attempt to encapsulate knowledge of the "current" / currently selected series tab -- so as to minimize the impact software changes throughout the SCT -- did not apply well to all ancillary SCT internals, e.g. the SCT slot/timestep cell clipboard. This Slot Index ambiguity was likely to result in subtle bugs which would be difficult to test for and discern.
There were also some user interface issues raised by this approach which weren't fundmental to the current requirement (for the TVA Preschedule application), e.g. whether or not series slot table's axis orientation or aggregation setting changes would apply to all series slot tabs; either decision would have required additional coding. Also, "Edit Series Slots List" tab's apply/cancel paradigm didn't fit well with configuration support for multiple series slot tabs.
Several design diagrams which were prepared for this review follow.
Various mappings of slot and timestep references within the SCT:

Slot Index Uses: RiverWare 6.5 and Abandoned Redesign:


SctDialog and SctViews: RiverWare 6.5 and Abandoned Redesign

For Reference: the Four SCT Views:
- Vertical Time / Non-Aggregated
- Vertical Time / Aggregated
- Horizontal Time / Non-Aggregated
- Horizontal Time / Aggregated

The "initial approach" code is currently a single commit in the TvaPreschedSctTemp1 GIT branch. (Commit: cc5277773a4d79e1f8050c11ad4b5ee36c189368).
(2) New Implementation Design
A new approach was devised in a full software group meeting (10-20-2014). This new "orthogonal" approach leaves most of the SCT internal archtecture unchanged. This approach has the following provisions:
- The SCT will continue to have only a single "Series Slots" tab among the five currently supported SCT tabs.
- Multiple "Series Slot Subtabs" will be shown along the bottom of the SCT Series Slots tab (but only if the SCT configuration makes use of this capability).
- The "Edit Series Slot List" tab will support a new "Tab Divider" item. This is used to delimit the blocks of slot items (series slot references and slot dividers) which make up each series slot subtab. The subtab text can be edited right in the Tab Divider item. (To provide custom text for the first series subtab, a Tab Divider would need to be configured as the first slot item).
Implementation Details:
- The QTabWidget deployed for Series Slot Subtabs will be used only as a selector widget. Each tab will actually be empty. The currently selected tab will be used only to conditionally show or hide individual slot items within the full set of slot items defined within the SCT configuration. As indicated above, this QTabWidget will be shown only if multiple series slot subtabs are configured.
- Note that QTabWidget supports a "Tab Position" property, allowing tabs to be located on any of the four edges of the widget.
- In the SCT View's display tables' (row header and series data tables') rows or columns for slot items not belonging to the currently selected series subtab will be hidden (at the QTableView level).
For reference, below is a screenshot of the current (RiverWare 6.5) Edit Series Slot List tab:

--- (end) ---