Introduce a plugin system and move the legend to it.
authorDan Vanderkam <dan@dygraphs.com>
Fri, 6 Apr 2012 21:53:05 +0000 (17:53 -0400)
committerDan Vanderkam <dan@dygraphs.com>
Fri, 6 Apr 2012 21:53:05 +0000 (17:53 -0400)
commite2c21500ff552f97a80ed02e027df86aecac3c75
treeb213bd7d424746eb2f31593e389d3d715ffdda7f
parent29cb484c249be35c53b4ac336ec49049285b386c
Introduce a plugin system and move the legend to it.

This is still pretty rudimentary, but I wanted to get something into the
mainline to start getting some real experience with it.

This does a few things:
1. Introduces a way to register plugins.
2. Adds some standard methods (e.g. "activate", "destroy").
3. Allows plugins to register "event listeners" and adds a few hooks.
4. Adds a few new public APIs that were valuable.

This is still a work in progress -- plugins/legend.js still uses two private
APIs -- but I'm generally really upbeat about this refactor. It was great to
see how much even this simple exercise forced the legend code to get simpler
and use public APIs.

Squashed commit of the following:

commit bb250bdb928076c763b83d7ad5a60d15b9187510
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 17:50:28 2012 -0400

    clean a few things up, add plugins/README

commit 54328995c79a0091e56d4eda655edbd40e3379e6
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 17:22:03 2012 -0400

    self code review

commit d49379470fbe26388bdf46d45aeb5e5cdbc4004d
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 17:01:46 2012 -0400

    clean up comments

commit 50b731d0559c490771112afc2f0c6c5b50bbeb26
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 16:52:10 2012 -0400

    use public API for highlightSet_

commit 848c0ca24f2302db206e6cf8d2f512432c251813
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 16:44:54 2012 -0400

    factor out generateLegendDashHTML, too

commit 4f54b5061cea5845d7d2ca38f09ec1bb3578015b
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 16:37:13 2012 -0400

    migrate generateLegendHTML out of dygraph.js; only using one private API

commit 060650eeb7007cc32906f1edc62ccfc1ef5b1b54
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 15:52:24 2012 -0400

    misc cleanup

commit ce592df0224fe9953848a074582093a113358c9f
Merge: f05983c 29cb484
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Apr 6 15:35:58 2012 -0400

    Merge branch 'master' into plugin-legend

commit f05983cdf6f0f2ae4dae4753ad9df53ef89addf2
Merge: 19146fb d254d25
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Fri Mar 30 17:58:48 2012 -0400

    merge upstream changes

commit 19146fb11c9eb7cccc1d971dad67b8175570a3e6
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Tue Mar 27 00:34:45 2012 -0400

    cleanup

commit 72e8cbcc829eca1054d7318cc6b5316cb5061a09
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Sun Mar 25 18:34:17 2012 -0400

    remove setLegendHTML

commit f949d4cedfc3107aa4269d496e0c8106ba86a209
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Sun Mar 25 17:23:26 2012 -0400

    support labelsDiv; move more logic into legend.js

commit 3119af67d70891968982fc2dcc042c3f466ed99e
Author: Dan Vanderkam <dan@dygraphs.com>
Date:   Sun Mar 4 13:18:39 2012 -0500

    legend plugin that works!
dygraph-dev.js
dygraph-options-reference.js
dygraph.js
generate-combined.sh
plugins/README [new file with mode: 0644]
plugins/base.js [new file with mode: 0644]
plugins/install.js [new file with mode: 0644]
plugins/legend.js [new file with mode: 0644]