RiverWare Series Display Compression

Author:     Phil Weinstein, CADSWES
Edit Date:   8-14-2007
Document Status:   Ready for Review

Outline

  1. Overview
  2. Scope
  3. Ornamentation
  4. Tooltips
  5. "Suppress NaN" Edit Operations
  6. "Suppress Repeated Values" Edit Operations
  7. Multiple Series columns
  8. Dialog Box / Menus
  9. Precision Issue
  10. Persistence (NONE)

(A) Appendix: Review Notes


(1) Overview

In the circumstance of series data having:

  1. isolated valid values interspersed with contiguous runs of "NaNs" (i.e. "sparse data"), or
  2. significant contiguous runs of identical values

it would be useful to hide series elements (generally, timesteps) having trivial or repeated values in the series display.

Two new optional "Display Compression Filters" will be implemented in the prominent series data displays, (see "Scope", below) -- (names are tentative):

  1. Suppress NaNs
  2. Suppress Repeated Values

TO BE DETERMINED: It may or may not be reasonable to apply these filters simultaneously. The aspect of this which needs to be considered carefully is whether edit operations can be made to be coherent when both filters are applied. (The Suppress Repeated Values filter has special editing behavior, described below).

Relevant to the description below, these features will be implemented with series displays which show series vertically, as columns. When multiple series are displayed together, each series is displayed as a column, and each row corresponds to a particular timestep date/time (or integer index).

(2) Scope

Series Display Compression will be implemented for the Open SeriesSlot Dialogs, and similar applications of the same C++ classes (SlotQtDlg and SlotQDlgTable). These are:

Series Display Compression will NOT be implemented for the following series data displays. (These are implemented with different C++ classes):

(3) Ornamentation

When series elements are hidden as a result of the Display Compression Filters, a corner triangle will be displayed to indicate the absence of values. The corner triangle will be drawn on the cells above the omitted series elements. See images below.

Note that the cell having the ornamentation has a fundamentally different relationship to the hidden cells with these two filters.

Suppress NaNs

Suppress Repeated Values

(4) Tooltips

When hovering over a cell ornamented by one of the Display Compression Filters, a tooltip (balloon text) will indicate the nature of the subsequent hidden values.

If only a single series is displayed (i.e. with a single GUI column), tooltips for the two filters will have text like this:

If multiple series are displayed (i.e. each in its own GUI column -- see a subsequent section), tooltips for the two filters will have text as follows. (With these semantics, the tooltip for cells in each of the series will be the same):

That is, note that in any given series in a multiple-series display, there can be additional NaNs or repeated values, shown because of non-conforming NaNs or repeated values in other series at those respective series indices.

(5) "Suppress NaN" Edit Operations

Series elements which are hidden due to the "Suppress NaN" filter are not effected by direct edit operations -- i.e. values entered within a selected cell or in the main edit line editor (which causes values to be assigned to all of the selected cells).

The following operations DO effect series elements hidden due to the "Suppress NaN" filter when those elements are part of a selection spanning hidden elements:

Copy and Paste operations are disabled if the current selection spans hidden elements.

(6) "Suppress Repeated Values" Edit Operations

Series elements which are hidden due to the "Suppress Repeated Values" filter are effected by direct edit operations -- i.e. values entered within a selected cell and in the main edit line editor (which causes values to be assigned to all of the selected cells). Basically, the value applied to the visible initial value is also applied to the subsequent hidden values.

The following operations also effect series elements hidden due to the "Suppress Repeated Values" filter when the visible initial element is part of the current selection:

Copy and Paste operations generally are disabled if the current selection includes a visible initial element preceding cells hidden due to the "Suppress Repeated Values" filter. One exception is that the Copy and Paste operations are enabled if current selection is limited to such an element (a visible initial element) -- in that case, the Copy operation takes just the single value, but the Paste operation is applied to the full set of contiguous repeated values (if there is a single value in the copy buffer -- otherwise, the Paste operation is disabled).

(7) Multiple Series columns

When there are multiple series displayed in distinct GUI columns, the filters will be applied to all visible columns. For any particular row to be hidden, the respective filter criteria must apply to all series.

Note: The Tooltip text needs to be adjusted (probably) when multiple series are displayed. See a prior section, "Tooltips".

(8) Dialog Box / Menus

To emphasize the potential of hidden series elements, a "Display Compression Toolbar" will be shown along the top of the dialog box or immediately above the data table, with a brightly colored background. This will include a horizontal arrangement of toggles for the various filters, including a no-filter selection, and a Dismiss Compression button (which also selects the no-filter state). Other filter-related controls or display fields may also be managed in this toolbar. [This won't be implemented as an actual QToolbar].

Under the Dialog Box's "View" menu, the following submenu will be implemented:

Display Compression >>

(o) Suppress NaNs
(o) Suppress Repeated Values
(o) Show All Values (normal)

(9) Precision Issue

The "Suppress Repeated Value" filter will use display precision for the determination of whether a value is repeated from (i.e. equivalent to) the prior value.

An alternative (which would be more efficient in terms of run-time performance) is to use internal precision (preferably standard unit values, possibly without tolerance). But users will likely prefer the use of display precision.

(10) Persistence (NONE)

The selection of a Display Compression filter will not persist. It will default to Off ("Show All Values") when re-opening any of the relevant series display dialog boxes.

If Persistence were required for the filter selection, it would have to be implemented on the following objects. That is, the Display Compression filter state (if not "Off") would have to be written to the RiverWare model file for these objects.

  1. Slots
  2. Accounts
  3. Object Account Summary Configurations
  4. Exchanges

(A) Appendix: Review Notes

(A1) Patrick Lynn, 2007-Aug-10

-------- Original Message --------
Subject: Re: Draft Design: RiverWare Series Display Compression
Date: Fri, 10 Aug 2007 12:39:41 -0600
From: Patrick Lynn
 
... a few comments:
 
1. If the users were willing to see some NaN's we could
    get away with just the suppress repeated values filter, i.e.,
 
    1
    NaN
    NaN
    NaN
    2
 
    would become
 
    1
    NaN (w/ triangle)
    2
 
2. When filtering is on, what visual indication is there that this is so
    other than the possible appearance of triangles?
 
   Phil's response: This need was one of the reasons for the "Display
   Compression Toolbar", with a brightly colored background, to be
   shown when filtering (display compression) is on.  See the section
   on "Dialog Box / Menus".
 
   Note however that (I'm recommending that) the user will be able to 
   temporarily disable the filtering effect with a toggle button in 
   that toolbar.  But that will not be the default, or typical, state 
   of filtering when the Display Compression Toolbar is shown.  The 
   reason for that toggle is that the user may want to quickly switch 
   filtering on and off without having to operate a menu item.
 
3. If it's easy to turn filters on and off and selections remain, then it
    might be safter apply editing of repeated values only to the selected
    cell, perhaps provide a way to select the entire range of repeated 
    values ... Seems a bit dangerous to change all the values.
 
Patrick

--- (end) ---