Question about custom ports and multiple node development.

Hey all,

I have two small question on the development process of knime nodes
1.) Is there a documentation how to develop custom ports? I found bit's and pieces but now details or structured tutorial
2.) Is there a way to develop multiple different nodes in one eclipse project?


Context: I intend to do something similar to the SQL or DL4J integration.
My idea is to have a bunch of model definition nodes and a few execution nodes.
For the definition nodes I want to use my custom port objects, where I send the model in serialized form.

As there are many different nodes which I need, it would be nice to develop all nodes in one one project and more specifically one package.
E.g. I need several nodes which take two models combine them with a function. So most nodes will share a large portion of code.

Last but not least is it possible to programatically exchange the icon of a Knime node based on the configuration?

 

Br,

Ingo 

  • You can have multiple nodes per plugin
  • You can have multiple nodes in one package but this would make it more difficult to navigate your code?
  • The icon is defined in the xml file, so I wouldn't expect you could change this programatically unless you are changing the image itself. 

> E.g. I need several nodes which take two models combine them with a function. So most nodes will share a large portion of code. 

Could you node not create your own custom node model (extend NodeModel) with your shared methods/code and then the actual node would extend your CustomNodeModel rather than KNIME's NodeModel? A have my own internal implementation of NodeModel and SimpleStreamableNodeModel (may not be correct class name) that handle the repeated code they all all. 

You'd still need to create a new node for each indepenent task but you can reuse your code.

W.r.t ports I don't recally if I read some documentation or just looked at existing implementations when I created mine. 

Cheers

Sam