cytoscape/cytoscape-explore

Implement bypass UI

maxkfranz opened this issue · 3 comments

When in bypass mode (#51), the style tool bar sets bypasses rather than global styles. This may require additional bypass-related function props in the style components.

Depends on: Global mode, bypass mode for style #51

Bypasses don't give feedback for the current state in the popovers:

Screen Shot 2021-01-08 at 10 00 18

This may be difficult to support in an intuitive way. There could be multiple values, e.g. three selected nodes each have a different colour. You could get away with showing multiple colours selected, but it may not work for other properties like node size: You can't show multiple values on a slider.

I don't think this issue should be addressed now, but I just wanted to raise it in case we think of a simple way to address it.

Discussion re. simplification of bypass mental model:

We could simplify the global/bypass system for users by just using selection. We don't necessarily need to expose users to the underlying global/bypass model.

Let's assume that the style UI looks the same, whether you have a selection or not. You can always choose a single value or a mapping.

  • When nothing is selected: Things work as they do today. Global styles are set. The global style clears out the bypass.
  • When something is selected:
    • A single value is set: A bypass is set to the selection.
    • A mapper is set: The global mapper is applied. The unselected elements have bypasses applied s.t. their resultant style remains unchanged. Another alternative would be to just forbid mappers in a selection. This could still work by virtue of clearing the bypasses when a single global style is set.

This should be compatible with portable styles.

History of Cytoscape desktop:

  • XGMML model
  • Discrete mapping for everything: More edge cases
  • Right click only for bypass
  • Added bypass icon to style panel (vizmapper panel)

Brainstorming:

  • Similar to today:
    • Small amount of feedback re. bypass mode.
    • Say, you have only nodes selected: Grey out the edge style buttons.
    • Extra tools: Clear out bypasses. Button to select all bypassed elements.
    • Pros: 1:1 with desktop mental model
    • Cons:
  • Allow multiple mappings per style property
  • Set style always based on selection
  • Show confirmation dialogs when there is a mapping/bypass conflict
  • How do we make decisions? Can we agree as a group to follow user testing results?
  • Specify hypotheses, and you prove or disprove them by prototypes and user testing.
  • Selection button: Select bypassed elements

Hypotheses

  • Do anything at any time, and use selections.
  • Restricted selection system: Can set global/bypass single values at any time (selection or no), but you can't set mappers unless everything is selected (or nothing is selected). You need to provide enough feedback to user to know why and when they can set things.