ContinuumIO/bokeh — pull request #407 by mattpap (2014-03-07 21:07:31+00:00)
Title: Object Explorer

This adds `ObjectExplorer` (a view and a tool). This is currently a simple tree (using jstree jquery plugin) that displays collections, objects, attributes and values. The ultimate goal (for future PRs) is to have a qt properties viewer kind of plugin, that will allow as to manipulate object structure and see changes in real-time. As an example see `glyphs/line.py`, which has `ObjectExplorerTool` enabled by default.

Currently packets of events (`ObjectExplorer` listens on `all` on all collections) arriving withing 200 ms (configurable) trigger rendering of the tree. References are resolved and cycles cut. Refreshing the tree causes collapse of nodes, so you have to reexpand manually branches that you were exploring (this I would like to improve soon, because it's rather unhelpful to monitor changes to the tree this way). Editing isn't supported yet. There are cases where this component doesn't work very well, e.g. together with `GridPlot`, but this is mostly because of bugs in / or my misunderstanding of `Tool.View` for this special case (I will leave this for another PR) (rendering of the tool happens too many times).

I made a few partially unrelated fixes during development (clean up `.gitignore` (narrow rules), change `base` to `@base()`, add `work_dir` to `bokeh_app` (required for CDX)).