netcreateorg / netcreate-2018

Please report bugs, problems, ideas in the project Issues page: https://github.com/netcreateorg/netcreate-2018/issues
Other
11 stars 2 forks source link

Focus filter first pass for VFOI #249

Closed jdanish closed 1 year ago

jdanish commented 1 year ago

The basic idea here is that you should be able to:

  1. Select a node
  2. Tell the system to focus
  3. Set the range of the focus (e.g., how far out we focus) with a default / min of 1
  4. Remove the focus much like you clear filters

Focus means the equivalent of hiding any nodes that are further away than the range. For example, If Joshua -> Kalani -> Ben -> Srithen focusing on Joshua with a range of 1 will show Joshua and Kalani, range of 2 will add Ben, and 3 will show Sri .

The focus button can go below the 3 buttons in the top right, and the range / clear can appear on the top once focus is activated.

Key elements:

benloh commented 1 year ago

@jdanish is this always a focus on just ONE node? Or might you have multiple nodes selected for focus?

benloh commented 1 year ago

Implementation Notes

We probably want to create a selection manager to properly handle this because we need to distinguish between... ...nodes

...edges

...everything else

Due to the complexity, upping Estimate to 20.

UPDATE 2023-0530 11pm

A few more thoughts:

jdanish commented 1 year ago

@jdanish is this always a focus on just ONE node? Or might you have multiple nodes selected for focus?

One node, but then a distance. The default distance is 1. Ideally, long-term, we can set the distance and adjust it, but short-term a distance of 1 is fine. I think unless @kalanicraig disagrees, you would only focus on a node, not an edge to help simplify.

What this means: if we assume Joshua - Kalani - Ben - Sri and Joshua - Nathan (using lines to ignore direction) if we focus on Joshua we see:

Joshua - Kalani, Joshua - Nathan

If we focus on Kalani we see: Joshua - Kalani - Ben

If we focus on Joshua but change distance to 2, we see:

Joshua - Kalani - Ben, and Joshua - Nathan

If we change distance to 3:

Joshua - Kalani - Ben - Sri, and Joshua - Nathan

jdanish commented 1 year ago

We probably want to create a selection manager to properly handle this because we need to distinguish between... ...nodes

  • What is being highlighted by search, which may include nodes not selected in the NodeSelector component.
  • What is currently selected for display in the NodeSelector component.
  • Whether the current NodeSelector component is being edited
  • The currently entered text snippet
  • Matching nodes that can be used as AutoSuggest for the text snippet

...edges

  • Which edges are selected
  • Which edges are expanded
  • Which edges are in edit mode
  • Any text entered as a search term as a source or target in any number of open Edge edit fields.

...everything else

  • Matches also affect the NodeTable and EdgeTable displays

Due to the complexity, upping Estimate to 20.

OK. However, and I'll email this - let's pause on these "quick" features until we can get a ballpark estimate on major features for Fall 2024 so that we can make sure we don't eat into those or do so intentionally?

benloh commented 1 year ago

@jdanish I have this mostly working now. One question is how much validation we want to do on the range field. e.g.

jdanish commented 1 year ago

Hm. I guess let's force it to be a positive integer from 1 up? If something else is entered, default back to either whatever the last number was (if easy) or 1 (if the last number is not easy).