Skip to content

User Interface

Chris Meyer edited this page Aug 13, 2020 · 1 revision

User Interface

Application

Workspace

Panels

Navigation, acquisition mostly on left. Inspectors mostly on right.

Computation Inspector

2020-08-10 Architecture Decision: Replace Computation Inspector/Editor

There are two existing computation inspectors: the twist down in the inspector section; and the computation editor.

The computation inspector is difficult to access. The user must focus on a data item, make the inspector panel visible if not already, and then scroll down in the inspector to the bottom. If the computation involves a graphic on another data item, it is impossible to edit that graphic without the inspector changing to the new focused data item. In addition, there is no ability to edit computations that do not result in a single data item output.

The computation editor is slightly different in that it is associated with a specific data item and more than one computation editor can be open simultaneously. However, the computation editor was added with the goal of being able to construct an entirely new computation consisting of inputs, parameters, and an output. The editor itself is complicated, poorly designed, and buggy. Nor does it function well as an inspector - it shows parameters, but provides no UI for editing those parameters. What it does do is provide an easy way for users to edit existing computations with a custom script. The lack of being able to adjust parameters easily, however, makes users want to use the inspector after the custom script has been finalized.

Newer computations are more general and require an improved inspector. Newer computations support multiple outputs, outputs other than data, input data masks, arrays of items, graphics, etc. In addition, automatic support for iteration over collection dimensions (mapping) is in the future. For slower computations, a progress bar would be helpful. And for certain situations, a user interface based on declarative UI would be helpful. Newer computations implement their processing directly rather than as a [possibly custom] text script that runs.

In addition, the improved inspector should be quickly accessible and allow editing of the chosen computation even when focus changes. Some displays might have several associated computations and the user should be able to choose which one to inspect. For instance, a pick from an spectrum image with live ZLP and background subtraction would have three computations: the pick, the live ZLP, and then background subtraction.

To accomplish this functionality, a new inspector based on declarative UI is to replace the computation section of the inspector panel. The new inspector can be called up quickly while displaying a data item. It remains open until the computation is deleted, the user closes the inspector window, or the user calls up another computation inspector, in which case the window is replaced with the new one. This allows the user to edit a computation without worrying about focus. The drawback is that the user cannot have two computation inspectors open at once.

TODO: Figure out how to define a computation separately from instantiating one. This will facilitate custom computations.

TODO: How should users define and edit custom computations going forward?

Dialogs

References

How to choose between a Popover, Inspector, or Toolbar to edit properties?