From 7040739a7debb7aa3b820e7897b950930b22a8d9 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 17:45:30 +0200 Subject: [PATCH 1/8] Additional flags: Modern dialog, Kai --- application/META-INF/MANIFEST.MF | 3 +- .../jsondocgen/JsonNodeDocuGenerator.java | 15 +++- .../knime/jsondocgen/docs/NodeDoc.java | 20 ++++++ ...onNodeDocuGeneratorTest_NewFlags_Test.java | 70 +++++++++++++++++++ 4 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java diff --git a/application/META-INF/MANIFEST.MF b/application/META-INF/MANIFEST.MF index 2039bb9..6498fd8 100644 --- a/application/META-INF/MANIFEST.MF +++ b/application/META-INF/MANIFEST.MF @@ -14,7 +14,8 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,5.0.0)", org.knime.product;bundle-version="[5.3.0,6.0.0)", org.apache.log4j;bundle-version="[1.2.0,2.0.0)", com.google.gson;bundle-version="[2.8.6,3.0.0)", - org.knime.workflow.migration;bundle-version="[5.3.0,6.0.0)" + org.knime.workflow.migration;bundle-version="[5.3.0,6.0.0)", + org.knime.core.ui;bundle-version="[5.3.0,6.0.0)" Bundle-ClassPath: ., lib-download/mockito-core.jar, lib-download/byte-buddy.jar, diff --git a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java index 1473500..8c185d0 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java +++ b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java @@ -88,6 +88,8 @@ import org.knime.core.node.port.PortTypeRegistry; import org.knime.core.node.streamable.PartitionInfo; import org.knime.core.util.IEarlyStartup; +import org.knime.core.webui.node.dialog.NodeDialogFactory; +import org.knime.core.webui.node.dialog.kai.KaiNodeInterfaceFactory; import org.knime.workbench.repository.RepositoryManager; import org.knime.workbench.repository.model.Category; import org.knime.workbench.repository.model.IContainerObject; @@ -421,6 +423,7 @@ private static void processPorts(Collection> portObj * @return true, if the element was added to the documentation, false if it has * been skipped */ + @SuppressWarnings("restriction") private boolean generate(final File directory, final IRepositoryObject current, final IRepositoryObject parent, CategoryDocBuilder parentCategory) throws TransformerException, Exception { @@ -475,6 +478,10 @@ private boolean generate(final File directory, final IRepositoryObject current, LOGGER.warn(String.format("Could not create NodeModel for %s", factory.getClass().getName()), t); } + builder.setHasModernDialog(hasModernDialog(factory)); + // since KNIME 5.5 (?) + builder.setHasKaiInterface(factory instanceof KaiNodeInterfaceFactory); + if (deprecated) { // there are two locations, where nodes can be set to deprecated: // so, do not overwrite with false, if already set to true @@ -717,8 +724,14 @@ private static String getPath(final IRepositoryObject object) { return ""; } } - + /* package */ static enum PortDirection { In, Out } + + @SuppressWarnings("restriction") + static boolean hasModernDialog(NodeFactory nodeFactory) { + // supported since KNIME 4.5 + return nodeFactory instanceof NodeDialogFactory nodeDialogFactory && nodeDialogFactory.hasNodeDialog(); + } } diff --git a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java index b12dabd..14a17af 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java +++ b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java @@ -27,6 +27,10 @@ public static final class NodeDocBuilder extends AbstractDocBuilder { private List dynamicInPorts; /** @since 1.12 -- added with KNIME 4.2 */ private List dynamicOutPorts; + /** @since v1.15 */ + private boolean hasModernDialog; + /** @since v1.15 */ + private boolean hasKaiInterface; public NodeDocBuilder setIntro(String intro) { this.intro = intro; return this; @@ -103,6 +107,16 @@ public NodeDocBuilder setDynamicOutPorts(List dynamicOutPorts) this.dynamicOutPorts = dynamicOutPorts; return this; } + /** @since v1.15 */ + public NodeDocBuilder setHasModernDialog(boolean hasModernDialog) { + this.hasModernDialog = hasModernDialog; + return this; + } + /** @since v1.15 */ + public NodeDocBuilder setHasKaiInterface(boolean hasKaiInterface) { + this.hasKaiInterface = hasKaiInterface; + return this; + } } public static final class OptionTab { @@ -211,6 +225,10 @@ public DynamicPortGroup(Integer insertBefore, String name, String groupIdentifie public final List dynamicInPorts; /** @since v1.12 -- added with KNIME 4.2 */ public final List dynamicOutPorts; + /** @since v1.15 */ + public final boolean hasModernDialog; + /** @since v1.15 */ + public final boolean hasKaiInterface; private NodeDoc(NodeDocBuilder builder) { super(builder); @@ -230,6 +248,8 @@ private NodeDoc(NodeDocBuilder builder) { links = builder.links; dynamicInPorts = copyOrNull(builder.dynamicInPorts); dynamicOutPorts = copyOrNull(builder.dynamicOutPorts); + hasModernDialog = builder.hasModernDialog; + hasKaiInterface = builder.hasKaiInterface; } private static List convert(List ports) { diff --git a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java new file mode 100644 index 0000000..e514f1f --- /dev/null +++ b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java @@ -0,0 +1,70 @@ +package de.philippkatz.knime.jsondocgen; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import org.knime.core.node.NodeDialogPane; +import org.knime.core.node.NodeFactory; +import org.knime.core.node.NodeModel; +import org.knime.core.node.NodeView; +import org.knime.core.webui.node.dialog.NodeDialog; +import org.knime.core.webui.node.dialog.NodeDialogFactory; +import org.knime.core.webui.node.dialog.kai.KaiNodeInterface; +import org.knime.core.webui.node.dialog.kai.KaiNodeInterfaceFactory; + +public class JsonNodeDocuGeneratorTest_NewFlags_Test { + + @SuppressWarnings("restriction") + private static class MyNodeFactory extends NodeFactory + implements KaiNodeInterfaceFactory, NodeDialogFactory { + + @Override + public NodeModel createNodeModel() { + // TODO Auto-generated method stub + return null; + } + + @Override + protected int getNrNodeViews() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public NodeView createNodeView(int viewIndex, NodeModel nodeModel) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected boolean hasDialog() { + // TODO Auto-generated method stub + return false; + } + + @Override + protected NodeDialogPane createNodeDialogPane() { + // TODO Auto-generated method stub + return null; + } + + @Override + public KaiNodeInterface createKaiNodeInterface() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NodeDialog createNodeDialog() { + // TODO Auto-generated method stub + return null; + } + + } + + @Test + public void test() { + assertTrue(JsonNodeDocuGenerator.hasModernDialog(new MyNodeFactory())); + } + +} From d0fd47c0a4a7943a4174e97723f62cf9d6a54db0 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 17:45:36 +0200 Subject: [PATCH 2/8] Update to 1.15.0 --- application/META-INF/MANIFEST.MF | 2 +- application/pom.xml | 4 ++-- feature/feature.xml | 2 +- feature/pom.xml | 4 ++-- p2/pom.xml | 4 ++-- pom.xml | 4 ++-- targetplatform/pom.xml | 2 +- tests/META-INF/MANIFEST.MF | 4 ++-- tests/pom.xml | 4 ++-- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/application/META-INF/MANIFEST.MF b/application/META-INF/MANIFEST.MF index 6498fd8..3ea71b0 100644 --- a/application/META-INF/MANIFEST.MF +++ b/application/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: JSON node documentation generator Bundle-SymbolicName: de.philippkatz.knime.jsondocgen.application;singleton:=true -Bundle-Version: 1.14.2.qualifier +Bundle-Version: 1.15.0.qualifier Bundle-Vendor: Philipp Katz; Selenium Nodes Bundle-RequiredExecutionEnvironment: JavaSE-17 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,5.0.0)", diff --git a/application/pom.xml b/application/pom.xml index d02960e..2f9989d 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -4,13 +4,13 @@ 4.0.0 de.philippkatz.knime.jsondocgen.application - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT eclipse-plugin de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT diff --git a/feature/feature.xml b/feature/feature.xml index 83cc352..fe7a387 100644 --- a/feature/feature.xml +++ b/feature/feature.xml @@ -2,7 +2,7 @@ 4.0.0 de.philippkatz.knime.jsondocgen.feature - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT eclipse-feature de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT diff --git a/p2/pom.xml b/p2/pom.xml index df7280b..050f1a4 100644 --- a/p2/pom.xml +++ b/p2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 de.philippkatz.knime.jsondocgen.p2 - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT eclipse-repository de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT diff --git a/pom.xml b/pom.xml index 34ee2cb..76cb764 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT pom @@ -39,7 +39,7 @@ de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen.targetplatform - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT diff --git a/targetplatform/pom.xml b/targetplatform/pom.xml index 1bc8d10..b0c1291 100644 --- a/targetplatform/pom.xml +++ b/targetplatform/pom.xml @@ -9,7 +9,7 @@ de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT diff --git a/tests/META-INF/MANIFEST.MF b/tests/META-INF/MANIFEST.MF index e2cf4a1..cb0f54f 100644 --- a/tests/META-INF/MANIFEST.MF +++ b/tests/META-INF/MANIFEST.MF @@ -2,8 +2,8 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: JSON node documentation generator tests Bundle-SymbolicName: de.philippkatz.knime.jsondocgen.tests;singleton:=true -Bundle-Version: 1.14.2.qualifier +Bundle-Version: 1.15.0.qualifier Bundle-Vendor: Philipp Katz; Selenium Nodes Bundle-RequiredExecutionEnvironment: JavaSE-17 -Fragment-Host: de.philippkatz.knime.jsondocgen.application;bundle-version="1.14.2" +Fragment-Host: de.philippkatz.knime.jsondocgen.application;bundle-version="1.15.0" Require-Bundle: org.junit;bundle-version="4.12.0" diff --git a/tests/pom.xml b/tests/pom.xml index 99b3379..5bd8c13 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -4,13 +4,13 @@ 4.0.0 de.philippkatz.knime.jsondocgen.tests - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT eclipse-test-plugin de.philippkatz.knime.jsondocgen de.philippkatz.knime.jsondocgen - 1.14.2-SNAPSHOT + 1.15.0-SNAPSHOT From 3fc6d46ee838b21a8774c80fbf6998ee2a84a668 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 17:53:19 +0200 Subject: [PATCH 3/8] s4u/setup-maven-action@v1.18.0 --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6e214e4..fca6f23 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,7 +9,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 - - uses: s4u/setup-maven-action@v1.14.0 + - uses: s4u/setup-maven-action@v1.18.0 with: java-version: '17' java-distribution: temurin From 34b1d6d1a8e412919a9345b66e365b40d6052c1d Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 17:59:50 +0200 Subject: [PATCH 4/8] Min. KNIME 5.5 --- application/META-INF/MANIFEST.MF | 10 +++++----- ....philippkatz.knime.jsondocgen.targetplatform.target | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/application/META-INF/MANIFEST.MF b/application/META-INF/MANIFEST.MF index 3ea71b0..323fcde 100644 --- a/application/META-INF/MANIFEST.MF +++ b/application/META-INF/MANIFEST.MF @@ -6,16 +6,16 @@ Bundle-Version: 1.15.0.qualifier Bundle-Vendor: Philipp Katz; Selenium Nodes Bundle-RequiredExecutionEnvironment: JavaSE-17 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,5.0.0)", - org.knime.workbench.core;bundle-version="[5.3.0,6.0.0)", - org.knime.workbench.repository;bundle-version="[5.3.0,6.0.0)", + org.knime.workbench.core;bundle-version="[5.5.0,6.0.0)", + org.knime.workbench.repository;bundle-version="[5.5.0,6.0.0)", org.eclipse.equinox.p2.metadata;bundle-version="[2.3.100,3.0.0)", org.eclipse.equinox.p2.core;bundle-version="[2.4.100,3.0.0)", org.eclipse.equinox.p2.engine;bundle-version="[2.4.100,3.0.0)", - org.knime.product;bundle-version="[5.3.0,6.0.0)", + org.knime.product;bundle-version="[5.5.0,6.0.0)", org.apache.log4j;bundle-version="[1.2.0,2.0.0)", com.google.gson;bundle-version="[2.8.6,3.0.0)", - org.knime.workflow.migration;bundle-version="[5.3.0,6.0.0)", - org.knime.core.ui;bundle-version="[5.3.0,6.0.0)" + org.knime.workflow.migration;bundle-version="[5.5.0,6.0.0)", + org.knime.core.ui;bundle-version="[5.5.0,6.0.0)" Bundle-ClassPath: ., lib-download/mockito-core.jar, lib-download/byte-buddy.jar, diff --git a/targetplatform/de.philippkatz.knime.jsondocgen.targetplatform.target b/targetplatform/de.philippkatz.knime.jsondocgen.targetplatform.target index 6224813..b335733 100644 --- a/targetplatform/de.philippkatz.knime.jsondocgen.targetplatform.target +++ b/targetplatform/de.philippkatz.knime.jsondocgen.targetplatform.target @@ -1,5 +1,5 @@ - + @@ -17,7 +17,7 @@ - + From 3937ab3398a52a7c1db47f2fbda7093b8808c8c2 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 18:01:38 +0200 Subject: [PATCH 5/8] Update readme --- readme.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 6135d15..5a89d0f 100644 --- a/readme.md +++ b/readme.md @@ -30,6 +30,11 @@ https://download.nodepit.com/jsondocgen/5.0 https://download.nodepit.com/jsondocgen/5.1 https://download.nodepit.com/jsondocgen/5.2 https://download.nodepit.com/jsondocgen/5.3 +https://download.nodepit.com/jsondocgen/5.4 +https://download.nodepit.com/jsondocgen/5.5 +https://download.nodepit.com/jsondocgen/5.6 +https://download.nodepit.com/jsondocgen/5.7 +https://download.nodepit.com/jsondocgen/5.8 ``` Beside that, the `master` branch is available through the following software site: @@ -262,7 +267,7 @@ License - - - -Copyright (c) 2017 – 2024 Philipp Katz +Copyright (c) 2017 – 2025 Philipp Katz [1]: https://seleniumnodes.com [2]: https://github.com/NodePit/knime-json-node-doc-generator/issues From b049b118096dd9689d778bf18f75dfe1debf60ce Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 21:49:43 +0200 Subject: [PATCH 6/8] Naming of tests - otherwise they do not run --- ...JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test.java} | 2 +- ...ts.java => JsonNodeDocuGeneratorTest_DynamicPorts_Test.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename tests/src/de/philippkatz/knime/jsondocgen/{JsonNodeDocuGeneratorTest_ConfigurableNodeFactory.java => JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test.java} (94%) rename tests/src/de/philippkatz/knime/jsondocgen/{JsonNodeDocuGeneratorTest_DynamicPorts.java => JsonNodeDocuGeneratorTest_DynamicPorts_Test.java} (97%) diff --git a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory.java b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test.java similarity index 94% rename from tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory.java rename to tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test.java index 25da93c..adb9247 100644 --- a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory.java +++ b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test.java @@ -11,7 +11,7 @@ import org.knime.core.node.NodeView; import org.knime.core.node.context.NodeCreationConfiguration; -public class JsonNodeDocuGeneratorTest_ConfigurableNodeFactory { +public class JsonNodeDocuGeneratorTest_ConfigurableNodeFactory_Test { private static final class ConfigurableStubNodeFactory extends ConfigurableNodeFactory { diff --git a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts.java b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts_Test.java similarity index 97% rename from tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts.java rename to tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts_Test.java index bb4c29a..028c9d9 100644 --- a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts.java +++ b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_DynamicPorts_Test.java @@ -16,7 +16,7 @@ import de.philippkatz.knime.jsondocgen.JsonNodeDocuGenerator.PortDirection; import de.philippkatz.knime.jsondocgen.docs.NodeDoc.DynamicPortGroup; -public class JsonNodeDocuGeneratorTest_DynamicPorts { +public class JsonNodeDocuGeneratorTest_DynamicPorts_Test { // https://github.com/knime/knime-core/blob/master/org.knime.core/src/eclipse/org/knime/core/node/NodeDescription41Proxy.java // https://github.com/knime/knime-excel/blob/master/org.knime.ext.poi2/src/org/knime/ext/poi2/node/write3/XLSWriter2NodeFactory.java From d4425e415d5f58801af634a5a47a8fbdcbc91128 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 22:03:53 +0200 Subject: [PATCH 7/8] Add keywords, sinceVersion --- .../jsondocgen/JsonNodeDocuGenerator.java | 7 ++++++- .../knime/jsondocgen/docs/NodeDoc.java | 20 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java index 8c185d0..94ea629 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java +++ b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java @@ -423,7 +423,7 @@ private static void processPorts(Collection> portObj * @return true, if the element was added to the documentation, false if it has * been skipped */ - @SuppressWarnings("restriction") + @SuppressWarnings({ "restriction", "unchecked" }) private boolean generate(final File directory, final IRepositoryObject current, final IRepositoryObject parent, CategoryDocBuilder parentCategory) throws TransformerException, Exception { @@ -477,6 +477,11 @@ private boolean generate(final File directory, final IRepositoryObject current, } catch (Throwable t) { LOGGER.warn(String.format("Could not create NodeModel for %s", factory.getClass().getName()), t); } + + Node node = new Node((NodeFactory) factory); + var nodeDescription = node.invokeGetNodeDescription(); + builder.setKeywords(Arrays.asList(nodeDescription.getKeywords())); + builder.setSinceVersion(nodeDescription.getSinceVersion().map(v -> v.toString()).orElse(null)); builder.setHasModernDialog(hasModernDialog(factory)); // since KNIME 5.5 (?) diff --git a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java index 14a17af..b200f72 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java +++ b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java @@ -31,6 +31,10 @@ public static final class NodeDocBuilder extends AbstractDocBuilder { private boolean hasModernDialog; /** @since v1.15 */ private boolean hasKaiInterface; + /** @since v1.15 */ + private List keywords; + /** @since v1.15 */ + private String sinceVersion; public NodeDocBuilder setIntro(String intro) { this.intro = intro; return this; @@ -117,8 +121,16 @@ public NodeDocBuilder setHasKaiInterface(boolean hasKaiInterface) { this.hasKaiInterface = hasKaiInterface; return this; } + public NodeDocBuilder setKeywords(List keywords) { + this.keywords = keywords; + return this; + } + public NodeDocBuilder setSinceVersion(String sinceVersion) { + this.sinceVersion = sinceVersion; + return this; + } } - + public static final class OptionTab { public final String name; public final String description; @@ -229,6 +241,10 @@ public DynamicPortGroup(Integer insertBefore, String name, String groupIdentifie public final boolean hasModernDialog; /** @since v1.15 */ public final boolean hasKaiInterface; + /** @since v1.15 */ + public final List keywords; + /** @since v1.15 */ + public final String sinceVersion; private NodeDoc(NodeDocBuilder builder) { super(builder); @@ -250,6 +266,8 @@ private NodeDoc(NodeDocBuilder builder) { dynamicOutPorts = copyOrNull(builder.dynamicOutPorts); hasModernDialog = builder.hasModernDialog; hasKaiInterface = builder.hasKaiInterface; + keywords = copyOrNull(builder.keywords); + sinceVersion = builder.sinceVersion; } private static List convert(List ports) { From f0ee3b0854318485ed00b73d8d4d9acf5ea81847 Mon Sep 17 00:00:00 2001 From: Philipp Katz Date: Sat, 27 Sep 2025 22:18:02 +0200 Subject: [PATCH 8/8] Fixes --- .../knime/jsondocgen/JsonNodeDocuGenerator.java | 2 +- .../src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java | 2 ++ .../JsonNodeDocuGeneratorTest_NewFlags_Test.java | 7 ------- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java index 94ea629..c8b1f37 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java +++ b/application/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGenerator.java @@ -484,7 +484,7 @@ private boolean generate(final File directory, final IRepositoryObject current, builder.setSinceVersion(nodeDescription.getSinceVersion().map(v -> v.toString()).orElse(null)); builder.setHasModernDialog(hasModernDialog(factory)); - // since KNIME 5.5 (?) + // since KNIME 5.5; https://github.com/knime/knime-core-ui/commit/8769e99ab4df0a435fb90936d664fdc6c6ac2b6d builder.setHasKaiInterface(factory instanceof KaiNodeInterfaceFactory); if (deprecated) { diff --git a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java index b200f72..333ff4d 100644 --- a/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java +++ b/application/src/de/philippkatz/knime/jsondocgen/docs/NodeDoc.java @@ -121,10 +121,12 @@ public NodeDocBuilder setHasKaiInterface(boolean hasKaiInterface) { this.hasKaiInterface = hasKaiInterface; return this; } + /** @since v1.15 */ public NodeDocBuilder setKeywords(List keywords) { this.keywords = keywords; return this; } + /** @since v1.15 */ public NodeDocBuilder setSinceVersion(String sinceVersion) { this.sinceVersion = sinceVersion; return this; diff --git a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java index e514f1f..c512113 100644 --- a/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java +++ b/tests/src/de/philippkatz/knime/jsondocgen/JsonNodeDocuGeneratorTest_NewFlags_Test.java @@ -20,43 +20,36 @@ private static class MyNodeFactory extends NodeFactory @Override public NodeModel createNodeModel() { - // TODO Auto-generated method stub return null; } @Override protected int getNrNodeViews() { - // TODO Auto-generated method stub return 0; } @Override public NodeView createNodeView(int viewIndex, NodeModel nodeModel) { - // TODO Auto-generated method stub return null; } @Override protected boolean hasDialog() { - // TODO Auto-generated method stub return false; } @Override protected NodeDialogPane createNodeDialogPane() { - // TODO Auto-generated method stub return null; } @Override public KaiNodeInterface createKaiNodeInterface() { - // TODO Auto-generated method stub return null; } @Override public NodeDialog createNodeDialog() { - // TODO Auto-generated method stub return null; }