Don't clone objects in the persistence cache; instead,
ensure that one instance per object is used/given
wherever possible. Goal is to keep object state in
sync between visible instances for WTD-791 et al.
Implement data structures which support lossless/lossy
behaviors for telemetry subscriptions (that is, allow
users of the telemetrySubscriber to decide whether or not
they are willing to drop updates in favor of only being
notified with the latest available values.) WTD-784.
Add specs for data structures which will support resolution
of WTD-784 by retaining all data not yet received by callbacks
(instead of just the very latest) such that plots can ensure
they do not miss streaming data.
Add a test case for subscriptions which should be handled
losslessly (that is, which should notify subscribers once
per data event, not once per execution cycle.) This
test case reflects the underlying cause for WTD-784.
Fix bug wherein number of points-to-plot is misreported
with multiple traces in a plot; clean up on modifications
to plot to self-cache streaming telemetry, to remove
other cache, WTD-751.
Fix usages of the plot updater, introduced to track real-time
telemetry to remove the need to cache values elsewhere. This
allows memory usage to be decreased for WTD-751.
Remove unused container definition for split pane; this
turned out not to be a suitable quick-fix approach to
WTD-747 (implementation of this behavior directly from
the browse template turned out to be more convenient.)
Fix styles used to reposition context menus when they are
near the edge of the screen, so that these menus remain
both on-screen and near the user's mouse. WTD-719.
Restrict actions which cause mutation of domain objects to
types of domain objects which can be created. (This does not
include Packet or Telemetry Point, WTD-723.)
Add tests for capabilities which have been updated to work
when only a model (and not whole objects) are cached; that
change was introduced to prevent misbehavior of the Remove
action in Edit mode, WTD-473.
Utilize model cache, permitting object models in edit mode to
be reused across multiple distinct instances with unique
contexts (unique contexts are necessary to avoid ambiguity in
the Remove action, WTD-473).
To avoid infinite digest cycles as a consequence of this,
refactor context/composition capability wrappers such that the
former is idempotent (since idempotence is no longer ensured
by the EditableDomainObjectCache) to avoid infinite digest
errors in Edit mode.
Implement a cache to store domain object models,
to allow the cache for individual objects to distinguish
objects based on their parentage and avoid ambiguous
Remove actions (WTD-473.)
Add a spec for an editable model cache; this will behave
similarly to the existing domain object cache, except
that it will cache only models. Use of this will permit
multiple instances of editable objects to be created with
unique contexts (that is, distinct parent objects accessible
via the context capability) which in turn will avoid the
ambiguous parentage which results in unexpected behavior of
the Remove action in Edit mode, WTD-473.
Update frame positions when model.composition changes,
instead of when model changes. Ensures correct display
after changes to avoid redrawing on every update,
WTD-716.