All right, let's see.
I think the best start is to read the Technical Report of Knime, especially the II. part (Architecture).
After installing knime, I've created a sample workflow to get more familiar with it. Their Quickstart guide was a great help, it took just some minutes to see it work.
To create the nodes I've used the knime extension howto, that provided help too, but I felt it a bit too linear and limited to the sample they provide.
I've put the sources to
http://www.chemaxon.com/shared/knime, please bear in mind that it is just a test code, far from being complete.
Some notes:
- Legal note: these sources cannot be used for commercial purposes.
- In mspace some code change was also necessary, and since it is not released yet, I've uploaded the test version of the necessary libraries too.
- It was not obvious for me, that the main configuration is done in the plugin.xml files, and they are displayed with tabs.
The workflow
Data flowing between nodes is wrapped in a DataTable. If I understood well, numeric and string values can be easily used here.
I decided to create a workflow of 2 nodes: one imports molecules from file, puts them in the datatable rows in string (smiles) format, and the other node finally displays them.
Note, that I didn't want to figure out a more sophisticated data flowing now.
The MolImporter node
A configuration dialog was created (MolImporterDialog) where input file can be set, and the DataTable was built (in MolImporterNodeModel).
The MarvinSpace node
Note, that MarvinSpace can read molecules from files directly, so the first node was necessary only to test the data flow.
Configuration dialog was disabled here.
The main things: the mspace canvas is created in the MarvinSpaceNodeView constructor, data changing is handled in MarvinSpaceNodeView.modelChanged().
This might be enough for a start, please give a feedback soon.
Have a good work!
Judit