* New brush mode '1D-axes-multiple' added in brushes/1D.multi.js * adopted brushing example and Makefile accordingly * Note that this feature requires examples/lib/d3.svg.multibrush.js
dimensions. fixes #97
When manually adjusting element order: * Firstly, do it correctly (doh). I didn't make a distinction between moving an axis left or right, which obviously matters when rearringing the html elements. * Secondly, apparently this messes up the "i" passed to callbacks by d3. I'm not sure why this is the case, but for now I worked around this issue by calculating the index of the element myself and by using this.parentElement.
When the order of axes actually has changed due to user ineraction, we also want to reorder the actual dom elements that represent the axes. That is, the g.dimension elements. If we don't do this, we get a weird and confusing transition when updateAxes is called. This is due to the fact that, initially the nth g.dimension element represents the nth axis. However, after a manual reordering, without reordering the dom elements, the nth dom elements no longer necessarily represents the nth axis.
Before the order of items on the scale was just determined by how they appeared in the data. Now, we calculate counts and sort the items ascending. As a result, the categories with "chosen" by most items (lines) will be at the top.
In stead of updating all axes on an axis flip, we now just update the one that is affected. This avoids confusing behavior which I observed when first swapping order of axes and next flipping one. I also removed code duplication by moving out this function into a seperate one which is reused in createAxes and updateAxes.
When there are many coordinates, coordinate labels tend to overlap. To solve this problem I added the ability to change the orientation of the labels by means of scroll wheel interaction. Scrolling up/down on one of the labels will cause the labels to rotate right/left.