Files
iD/js/id/behavior/drag_midpoint.js
John Firebaugh 7e68e8e114 Add iD.Context
This is a facade interface that ties together a bunch of
different internal objects and will make it easier to write
tests for behaviors, modes, and operations.
2013-02-01 12:40:15 -05:00

30 lines
932 B
JavaScript

iD.behavior.DragMidpoint = function(context) {
var behavior = iD.behavior.drag()
.delegate(".midpoint")
.origin(function(d) {
return context.projection(d.loc);
})
.on('start', function(d) {
var node = iD.Node();
context.perform(iD.actions.AddMidpoint(d, node));
var vertex = d3.selectAll('.vertex')
.filter(function(data) { return data.id === node.id; });
behavior.target(vertex.node(), vertex.datum());
})
.on('move', function(d) {
d3.event.sourceEvent.stopPropagation();
context.replace(
iD.actions.MoveNode(d.id, context.projection.invert(d3.event.point)));
})
.on('end', function() {
context.replace(
iD.actions.Noop(),
t('operations.add.annotation.vertex'));
});
return behavior;
};