Closed jdanish closed 1 year ago
@jdanish is this always a focus on just ONE node? Or might you have multiple nodes selected for focus?
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:
filter-logic.js
.@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
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?
@jdanish I have this mostly working now. One question is how much validation we want to do on the range field. e.g.
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).
The basic idea here is that you should be able to:
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: