'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.draw(); }, /** * */ reticleClick: function() { if (d3.event.defaultPrevented) { return; } var x = d3.mouse(this)[0]; var y = d3.mouse(this)[1]; if (x < 200) { x = 200; } if (x > 800) { x = 800; } var d = d3.select('.reticle').data()[0]; d.x = d3.event.x; d.y = d3.event.y; d3.select('.reticle') .attr('transform', 'translate(' + [ d.x, d.y ] + ')') BuoyAnalysisMap.findStationsUnderReticle(); BuoyAnalysisChart.draw(); }, /** * */ reticleResize: function() { d3.select('.reticle') .attr('r', BuoyAnalysisMap.reticle.scale(this.value)); BuoyAnalysisMap.findStationsUnderReticle(); BuoyAnalysisChart.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')) { BuoyAnalysisChart.bars.property = 'ATMP'; } else if (e.classed('toggle2')) { BuoyAnalysisChart.bars.property = 'WTMP'; } else if (e.classed('toggle3')) { BuoyAnalysisChart.bars.property = 'WVHT'; } else if (e.classed('toggle4')) { BuoyAnalysisChart.bars.property = 'WPER'; } else if (e.classed('toggle5')) { BuoyAnalysisChart.bars.property = 'WSPD'; } BuoyAnalysisChart.updateAxes(); BuoyAnalysisChart.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); } };