Modern UI / New Views: Is interactive row filtering between views (IVFW-like) supported without w...
Hi KNIME community,
We are developing a custom cascading filter node intended to work with Modern UI “New Views” (e.g., New Table View, Scatter Plot, etc.) in a composite component, similar to how legacy JavaScript views and the Interactive Value Filter Widget (IVFW) enable interactivity.
Environment
*
KNIME Analytics Platform: 5.8.2
*
Modern UI / New Views (composite components)
*
Goal: a custom “cascading filter” that updates other views interactively
1) Goal
We want an IVFW-like experience in Modern UI:
When users change a filter (or choose rows) in one view, other connected views update immediately and interactively, ideally on the client-side, without requiring workflow-wide re-execution.
2) Why we are doing this
*
In New Views, linked row selection works (selection is propagated across views).
*
However, we need interactive filtering across New Views (not just selection).
*
We know nodes like Nominal Row Filter Widget may be an option, but in workflows with heavy preprocessing, re-execution of the downstream flow can be expensive. We are looking for a pattern that reduces unnecessary re-execution.
3) Findings from our tests (logs)
1.
Legacy JS views / IVFW style
We observed that
knimeServicepublishes interactivity topics such as:
selection-<tableId>(e.g.,
selection-root:6:0:4)
1.
filter-<tableId>(e.g.,
filter-root:6:0:4)
Calling
knimeService.setSelectedRows()/
setFilteredRows()from the console triggers
GS.publishlogs (topics are published).
1.
New Views (New Table View) selection path
When the user clicks a row in the New Table UI, we consistently see RPC calls like:
NodeService.updateDataPointSelection1.
params example:
[..., "root:6:0:4", "ADD", ["Row1"]]This RPC seems to be the path that actually drives UI highlights and cross-view selection propagation.
1.
Mismatch: publishing via `knimeService` does not update New View UI in our tests
Even though
knimeService.setSelectedRows()/
setFilteredRows()publishes events (
GS.publishvisible), we do not see
NodeService.updateDataPointSelectionbeing triggered by that call, and the New Table UI does not visually reflect selection/filter changes (based on our tests).
Questions
Roadmap / product direction
Are there any plans (roadmap) to improve Modern UI / New Views so that they can support more front-end-side interactive data handling, similar to legacy JavaScript views (e.g., interactive filtering between views)?
If there is no such plan
Is there an official workflow guideline or recommended node pattern to satisfy these requirements (interactive/cascading filtering across views) while minimizing re-execution?
For extension development / customization
If we need to implement this ourselves, it looks like we may need work on both PageBuilder and New View based custom nodes.
Are there any recommended packages/classes/APIs we should study, or any important functions we should pay close attention to (and/or avoid if they are internal/unstable)?
Additional questions that would help us design correctly
*
Is
knimeServiceintended to affect New Views, or is it effectively legacy-only?
*
Is there any supported API to programmatically set:
row selection (so that New View UI highlights update), and/or
*
an interactive “row filter” (so the table/chart updates without re-execution)?
Are rowKeys guaranteed stable across sorting/filtering/virtualization in New Table View, and is there a recommended way to reference rows for interactivity?
If needed, we can share a minimal reproducible example and more log snippets.
Thanks in advance for any guidance.