function DomController( minesweeperGame, domView) {
//...установили что нужно
this ._setEvents( ) ;
}
DomController.prototype ._setEvents = function ( ) {
var that = this ;
this ._domView.setLeftMouseDownEventToCell ( function ( event) {
if ( event.which == 1 ) {
that._domView.setFaceType ( "danger-face" ) ;
}
} ) ;
this ._domView.setLeftMouseUpEventToCell ( function ( event) {
var target = event.target ;
if ( event.which == 1 ) {
that.open ( target.dataset .x , target.dataset .y ) ;
that._domView.setFaceType ( "cool-face" ) ;
}
} ) ;
this ._domView.setRightDownEventToCell ( function ( event) {
var target = event.target ;
if ( event.which == 3 ) {
that.toggleFlag .apply ( that, [ target.dataset .x , target.dataset .y ] ) ;
}
} ) ;
this ._domView.setClickEventToFace ( function ( event) {
that.reset .call ( that) ;
} ) ;
} ;
DomView.prototype .setLeftMouseUpEventToCell = function ( func) {
this ._field.addEventListener ( "mouseup" , func) ;
} ;
//Поменять смайлик как в классическом сапере
DomView.prototype .setLeftMouseDownEventToCell = function ( func) {
this ._field.addEventListener ( "mousedown" , func) ;
} ;
//Установка флажков
DomView.prototype .setRightDownEventToCell = function ( func) {
this ._field.addEventListener ( "mousedown" , func) ;
} ;
DomView.prototype .setClickEventToFace = function ( func) {
this ._face.addEventListener ( "click" , func) ;
} ;
ZnVuY3Rpb24gRG9tQ29udHJvbGxlcihtaW5lc3dlZXBlckdhbWUsIGRvbVZpZXcpIHsKICAgIC8vLi4u0YPRgdGC0LDQvdC+0LLQuNC70Lgg0YfRgtC+INC90YPQttC90L4KICAgIAogICAgdGhpcy5fc2V0RXZlbnRzKCk7Cn0KCkRvbUNvbnRyb2xsZXIucHJvdG90eXBlLl9zZXRFdmVudHMgPSBmdW5jdGlvbigpIHsKICAgIHZhciB0aGF0ID0gdGhpczsKICAgIHRoaXMuX2RvbVZpZXcuc2V0TGVmdE1vdXNlRG93bkV2ZW50VG9DZWxsKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEpIHsKICAgICAgICAgICAgdGhhdC5fZG9tVmlldy5zZXRGYWNlVHlwZSgiZGFuZ2VyLWZhY2UiKTsKICAgICAgICB9CiAgICB9KTsKICAgIHRoaXMuX2RvbVZpZXcuc2V0TGVmdE1vdXNlVXBFdmVudFRvQ2VsbChmdW5jdGlvbihldmVudCkgewogICAgICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7CiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEpIHsKICAgICAgICAgICAgdGhhdC5vcGVuKHRhcmdldC5kYXRhc2V0LngsIHRhcmdldC5kYXRhc2V0LnkpOwogICAgICAgICAgICB0aGF0Ll9kb21WaWV3LnNldEZhY2VUeXBlKCJjb29sLWZhY2UiKTsKICAgICAgICB9CiAgICB9KTsKICAgIHRoaXMuX2RvbVZpZXcuc2V0UmlnaHREb3duRXZlbnRUb0NlbGwoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgIGlmIChldmVudC53aGljaCA9PSAzKSB7CiAgICAgICAgICAgIHRoYXQudG9nZ2xlRmxhZy5hcHBseSh0aGF0LCBbdGFyZ2V0LmRhdGFzZXQueCwgdGFyZ2V0LmRhdGFzZXQueV0pOwogICAgICAgIH0KICAgIH0pOwogICAgdGhpcy5fZG9tVmlldy5zZXRDbGlja0V2ZW50VG9GYWNlKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgdGhhdC5yZXNldC5jYWxsKHRoYXQpOwogICAgfSk7Cn07CgpEb21WaWV3LnByb3RvdHlwZS5zZXRMZWZ0TW91c2VVcEV2ZW50VG9DZWxsID0gZnVuY3Rpb24oZnVuYykgewogICAgdGhpcy5fZmllbGQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIGZ1bmMpOwp9OwoKLy/Qn9C+0LzQtdC90Y/RgtGMINGB0LzQsNC50LvQuNC6INC60LDQuiDQsiDQutC70LDRgdGB0LjRh9C10YHQutC+0Lwg0YHQsNC/0LXRgNC1CkRvbVZpZXcucHJvdG90eXBlLnNldExlZnRNb3VzZURvd25FdmVudFRvQ2VsbCA9IGZ1bmN0aW9uKGZ1bmMpIHsKICAgIHRoaXMuX2ZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGZ1bmMpOwp9OwoKLy/Qo9GB0YLQsNC90L7QstC60LAg0YTQu9Cw0LbQutC+0LIKRG9tVmlldy5wcm90b3R5cGUuc2V0UmlnaHREb3duRXZlbnRUb0NlbGwgPSBmdW5jdGlvbihmdW5jKSB7CiAgICB0aGlzLl9maWVsZC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBmdW5jKTsKfTsKCkRvbVZpZXcucHJvdG90eXBlLnNldENsaWNrRXZlbnRUb0ZhY2UgPSBmdW5jdGlvbihmdW5jKSB7CiAgICB0aGlzLl9mYWNlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuYyk7Cn07