Files
iD/js/id/controller/controller.js
2012-11-27 17:51:03 -05:00

23 lines
623 B
JavaScript

// A controller holds a single action at a time and calls `.enter` and `.exit`
// to bind and unbind actions.
iD.Controller = function(map) {
var event = d3.dispatch('enter', 'exit');
var controller = { mode: null };
controller.enter = function(mode) {
mode.controller = controller;
mode.map = map;
if (controller.mode) {
controller.mode.exit();
event.exit(controller.mode);
}
mode.enter();
controller.mode = mode;
event.enter(mode);
};
controller.enter(iD.modes.Move);
return d3.rebind(controller, event, 'on');
};