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)
-
Legacy JS views / IVFW style
We observed thatknimeServicepublishes interactivity topics such as:-
selection-<tableId>(e.g.,selection-root:6:0:4) -
filter-<tableId>(e.g.,filter-root:6:0:4)
CallingknimeService.setSelectedRows()/setFilteredRows()from the console triggersGS.publishlogs (topics are published).
-
-
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.updateDataPointSelection -
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.
-
-
Mismatch: publishing via
knimeServicedoes not update New View UI in our tests
Even thoughknimeService.setSelectedRows()/setFilteredRows()publishes events (GS.publishvisible), we do not seeNodeService.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.