Skip to content

Commit

Permalink
Added Mouse.link_control() to de-dupe some code between Map implement…
Browse files Browse the repository at this point in the history
…ations
  • Loading branch information
migurski committed Feb 8, 2013
1 parent 8b5eb3c commit 29eb673
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 56 deletions.
15 changes: 1 addition & 14 deletions Div.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export class Map implements Base.Map
this.selection = d3.select(parent);
this.parent = parent;

this.setup_mouse_control();
Mouse.link_control(this.selection, new Mouse.Control(this));

var size = Mouse.element_size(this.parent);
this.grid = new Grid.Grid(size.x, size.y, 0);
Expand All @@ -28,19 +28,6 @@ export class Map implements Base.Map
d3.select(window).on('resize.map', function() { map.update_gridsize() });
}

private setup_mouse_control():Mouse.Control
{
var mouse_ctrl = new Mouse.Control(this);

this.selection
.on('dblclick.map', function() { mouse_ctrl.onDoubleclick() })
.on('mousedown.map', function() { mouse_ctrl.onMousedown() })
.on('mousewheel.map', function() { mouse_ctrl.onMousewheel() })
.on('DOMMouseScroll.map', function() { mouse_ctrl.onMousewheel() });

return mouse_ctrl;
}

private update_gridsize():void
{
var size = Mouse.element_size(this.parent);
Expand Down
42 changes: 14 additions & 28 deletions Grid.bro.js
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ var Map = (function () {
};
this.template = template;
this.parent = parent;
this.setup_mouse_control();
Mouse.link_control(this.selection, new Mouse.Control(this));
var size = Mouse.element_size(this.parent);
this.grid = new Grid.Grid(size.x, size.y, 3);
this.grid.coord = new Core.Coordinate(row, column, zoom);
Expand All @@ -457,19 +457,6 @@ var Map = (function () {
map.update_gridsize();
});
}
Map.prototype.setup_mouse_control = function () {
var mouse_ctrl = new Mouse.Control(this);
this.selection.on('dblclick.map', function () {
mouse_ctrl.onDoubleclick();
}).on('mousedown.map', function () {
mouse_ctrl.onMousedown();
}).on('mousewheel.map', function () {
mouse_ctrl.onMousewheel();
}).on('DOMMouseScroll.map', function () {
mouse_ctrl.onMousewheel();
});
return mouse_ctrl;
};
Map.prototype.update_gridsize = function () {
var size = Mouse.element_size(this.parent);
this.grid.resize(size.x, size.y);
Expand Down Expand Up @@ -620,6 +607,18 @@ function element_size(element) {
return new Core.Point(element.clientWidth, element.clientHeight);
}
exports.element_size = element_size;
function link_control(selection, control) {
selection.on('dblclick', function () {
control.onDoubleclick();
}).on('mousedown', function () {
control.onMousedown();
}).on('mousewheel', function () {
control.onMousewheel();
}).on('DOMMouseScroll', function () {
control.onMousewheel();
});
}
exports.link_control = link_control;
var Control = (function () {
function Control(map) {
this.map = map;
Expand Down Expand Up @@ -900,7 +899,7 @@ var Map = (function () {
function Map(parent, row, column, zoom) {
this.selection = d3.select(parent);
this.parent = parent;
this.setup_mouse_control();
Mouse.link_control(this.selection, new Mouse.Control(this));
var size = Mouse.element_size(this.parent);
this.grid = new Grid.Grid(size.x, size.y, 0);
this.grid.coord = new Core.Coordinate(row, column, zoom);
Expand All @@ -909,19 +908,6 @@ var Map = (function () {
map.update_gridsize();
});
}
Map.prototype.setup_mouse_control = function () {
var mouse_ctrl = new Mouse.Control(this);
this.selection.on('dblclick.map', function () {
mouse_ctrl.onDoubleclick();
}).on('mousedown.map', function () {
mouse_ctrl.onMousedown();
}).on('mousewheel.map', function () {
mouse_ctrl.onMousewheel();
}).on('DOMMouseScroll.map', function () {
mouse_ctrl.onMousewheel();
});
return mouse_ctrl;
};
Map.prototype.update_gridsize = function () {
var size = Mouse.element_size(this.parent);
this.grid.resize(size.x, size.y);
Expand Down
15 changes: 1 addition & 14 deletions Image.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export class Map implements Base.Map
this.template = template;
this.parent = parent;

this.setup_mouse_control();
Mouse.link_control(this.selection, new Mouse.Control(this));

var size = Mouse.element_size(this.parent);
this.grid = new Grid.Grid(size.x, size.y, 3);
Expand All @@ -43,19 +43,6 @@ export class Map implements Base.Map
d3.select(window).on('resize.map', function() { map.update_gridsize() });
}

private setup_mouse_control():Mouse.Control
{
var mouse_ctrl = new Mouse.Control(this);

this.selection
.on('dblclick.map', function() { mouse_ctrl.onDoubleclick() })
.on('mousedown.map', function() { mouse_ctrl.onMousedown() })
.on('mousewheel.map', function() { mouse_ctrl.onMousewheel() })
.on('DOMMouseScroll.map', function() { mouse_ctrl.onMousewheel() });

return mouse_ctrl;
}

private update_gridsize():void
{
var size = Mouse.element_size(this.parent);
Expand Down
8 changes: 8 additions & 0 deletions Mouse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@ export function element_size(element:HTMLElement):Core.Point
return new Core.Point(element.clientWidth, element.clientHeight);
}

export function link_control(selection:ID3Selection, control:Control):void
{
selection.on('dblclick', function() { control.onDoubleclick() });
selection.on('mousedown', function() { control.onMousedown() });
selection.on('mousewheel', function() { control.onMousewheel() });
selection.on('DOMMouseScroll', function() { control.onMousewheel() });
}

export class Control
{
private map:Base.Map;
Expand Down

0 comments on commit 29eb673

Please sign in to comment.