'use strict'; var BuoyAnalysisBehaviors = { /** * */ reticleDrag: function(d) { d.x += d3.event.dx; d.y += d3.event.dy; d3.select(this).attr("transform", function(d) { return "translate(" + [ d.x, d.y ] + ")" }); BuoyAnalysisMap.findStationsUnderReticle(); BuoyAnalysisChart.updateColor(); BuoyAnalysisChart.draw(); BuoyAnalysisChart3.draw(); }, /** * */ reticleClick: function() { if (d3.event.defaultPrevented) { return; } var d = d3.select('.reticle').data()[0]; d.x = d3.mouse(this)[0]; d.y = d3.mouse(this)[1]; d3.select('.reticle') .attr('transform', 'translate(' + [ d.x, d.y ] + ')') BuoyAnalysisMap.findStationsUnderReticle(); BuoyAnalysisChart.updateColor(); BuoyAnalysisChart.draw(); BuoyAnalysisChart3.draw(); }, /** * */ reticleResize: function() { d3.select('.reticle') .attr('r', BuoyAnalysisMap.reticle.scale(this.value)); BuoyAnalysisMap.findStationsUnderReticle(); BuoyAnalysisChart.draw(); BuoyAnalysisChart3.draw(); }, /** * */ barDisplayClick: function(d) { var e = d3.select(this); d3.selectAll('.bar-display .toggle').classed('selected', false); e.classed('selected', true); if (e.classed('toggle1')) { BuoyAnalysisChart.bars.showYears = true; BuoyAnalysisChart.bars.showMonths = true; } else if (e.classed('toggle2')) { BuoyAnalysisChart.bars.showYears = false; BuoyAnalysisChart.bars.showMonths = true; } else if (e.classed('toggle3')) { BuoyAnalysisChart.bars.showYears = true; BuoyAnalysisChart.bars.showMonths = false; } BuoyAnalysisChart.draw(); }, /** * */ columnDisplayClick: function(d) { var e = d3.select(this); d3.selectAll('.column-display .toggle').classed('selected', false); e.classed('selected', true); if (e.classed('toggle1')) { BuoyAnalysisData.property = 'at'; } else if (e.classed('toggle2')) { BuoyAnalysisData.property = 'wt'; } else if (e.classed('toggle3')) { BuoyAnalysisData.property = 'wh'; } else if (e.classed('toggle4')) { BuoyAnalysisData.property = 'wp'; } else if (e.classed('toggle5')) { BuoyAnalysisData.property = 'ws'; } BuoyAnalysisChart.updateAxes(); BuoyAnalysisChart.draw(); BuoyAnalysisChart3.draw(); }, /** * */ attachBehaviors: function() { d3.select('#map') .on('click', BuoyAnalysisBehaviors.reticleClick); d3.select('.reticle') .call(d3.behavior.drag().on('drag', BuoyAnalysisBehaviors.reticleDrag)); d3.selectAll('.bar-display .toggle') .on('click', BuoyAnalysisBehaviors.barDisplayClick); d3.selectAll('.column-display .toggle') .on('click', BuoyAnalysisBehaviors.columnDisplayClick); d3.select(".reticle-sizer").on("input", BuoyAnalysisBehaviors.reticleResize); } };