This page collects my notes about the crazy "pluggable renderers" idea I posted to the cytoscape-staff mailling list.
The current plan is to produce a proof-of-concept prototype by the cytoscape retreat in Toronto. (which means in one week)
Immediate TODO
- read viewmodel api, structure proposals (["Cytoscape_3.0/ViewModelDiscussions"] and cyto-staff)
- re-read vizmapper architecture
Implementation plan
- only do nodes at first
- don't care about benchmarking, at first
- don't care about OSGi framework, at first
Do in following order:
refactor GraphGraphics and GraphRenderer to call separate NodeRenderers for rendering. No vizmap changes yet, and only original renderers/ nodeshapes kept
- refactor vizmapper to be able to use pluggable 'mappable visual attributes'.
(Try to simplify vizmapper API at this step, creating and applying custom visual style are apparently not simple enough; see VisualStyleSimplification and ... (there was one page on wiki where this was mentioned but I can't find it now.))
- Lift some noderenderers from other code (ideally the following: pie nodes, custom bitmap and custom vector graphic image)
- use OSGi for pluggability (this will be about simply figuring out OSGi and how to use it for renderers-as-service)
- do some benchmarks to show that all this didn't make rendering slow as molasses.
Things to figure out
- place in model / viewmodel / view division (I'll have to study the current plan for the viewmodel api)
Notes about current rendering architecture
render.immed is only GraphGraphics, which is only a collection of methods
- good description of visual mapping framework: ["Visual_Mapping_System_Guide"]