Skip to content

Commit

Permalink
jshint
Browse files Browse the repository at this point in the history
  • Loading branch information
hthetiot committed Jul 10, 2017
1 parent 6909f55 commit 034492a
Show file tree
Hide file tree
Showing 11 changed files with 214 additions and 204 deletions.
196 changes: 98 additions & 98 deletions composer/key-composer.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,104 @@
var Montage = require("../core/core").Montage,
Composer = require("./composer").Composer;


/**
* @class KeyManagerProxy
* @classdesc Provide a proxy for lazy load of KeyManager.
* @extends Montage
* @private
*/
var _keyManagerProxy = null;

var KeyManagerProxy = Montage.specialize({

/**
* @private
*/
_defaultKeyManager: {
value: null
},

/**
* @private
*/
_loadingDefaultKeyManager: {
value: false
},

/**
* @private
*/
_keysToRegister : {
value: []
},

/**
* Register a `KeyComposer` with the default `KeyManager`.
* @function
* @param {Object} keyComposer. A key composer object.
*/
registerKey: {
value: function (keyComposer) {
var thisRef = this;

if (!this._defaultKeyManager) {
this._keysToRegister.push(keyComposer);
if (!this._loadingDefaultKeyManager) {
this._loadingDefaultKeyManager = true;

require.async("core/event/key-manager")
.then(function (module) {
var keyManager = thisRef._defaultKeyManager = module.defaultKeyManager;
thisRef._keysToRegister.forEach(function (keyComposer) {
keyManager.registerKey(keyComposer);
});
thisRef._keysToRegister.length = 0;
});
}
} else {
// This will happend only if somebody uses a cached return
// value from KeyManagerProxy.defaultKeyManager
this._defaultKeyManager.registerKey(keyComposer);
}
}
},

/**
* Unregister a `KeyComposer` with the default `KeyManager`.
* @function
* @param {Object} keyComposer. A key composer object.
*/
unregisterKey: {
value: function (keyComposer) {
if (this._defaultKeyManager) {
this._defaultKeyManager.unregisterKey(keyComposer);
}
}
}

}, {

/**
* Return either the default `KeyManager` or its `KeyManagerProxy`.
* @function
* @returns {Object} `KeyManager` or `KeyManagerProxy`.
*/
defaultKeyManager: {
get: function () {
if (!_keyManagerProxy) {
_keyManagerProxy = new KeyManagerProxy();
}
if (this._defaultKeyManager) {
return this._defaultKeyManager;
} else {
return _keyManagerProxy;
}
}
}
});


// Event types dispatched by KeyComposer
var KEYPRESS_EVENT_TYPE = "keyPress",
LONGKEYPRESS_EVENT_TYPE = "longKeyPress",
Expand Down Expand Up @@ -240,101 +338,3 @@ var KeyComposer = exports.KeyComposer = Composer.specialize( /** @lends KeyCompo
}

});


/**
* @class KeyManagerProxy
* @classdesc Provide a proxy for lazy load of KeyManager.
* @extends Montage
* @private
*/
var _keyManagerProxy= null;

var KeyManagerProxy = Montage.specialize( {

/**
* @private
*/
_defaultKeyManager: {
value: null
},

/**
* @private
*/
_loadingDefaultKeyManager: {
value: false
},

/**
* @private
*/
_keysToRegister : {
value: []
},

/**
* Register a `KeyComposer` with the default `KeyManager`.
* @function
* @param {Object} keyComposer. A key composer object.
*/
registerKey: {
value: function (keyComposer) {
var thisRef = this;

if (!this._defaultKeyManager) {
this._keysToRegister.push(keyComposer);
if (!this._loadingDefaultKeyManager) {
this._loadingDefaultKeyManager = true;

require.async("core/event/key-manager")
.then(function (module) {
var keyManager = thisRef._defaultKeyManager = module.defaultKeyManager;
thisRef._keysToRegister.forEach(function (keyComposer) {
keyManager.registerKey(keyComposer);
});
thisRef._keysToRegister.length = 0;
});
}
} else {
// This will happend only if somebody uses a cached return
// value from KeyManagerProxy.defaultKeyManager
this._defaultKeyManager.registerKey(keyComposer);
}
}
},

/**
* Unregister a `KeyComposer` with the default `KeyManager`.
* @function
* @param {Object} keyComposer. A key composer object.
*/
unregisterKey: {
value: function (keyComposer) {
if (this._defaultKeyManager) {
this._defaultKeyManager.unregisterKey(keyComposer);
}
}
}

}, {

/**
* Return either the default `KeyManager` or its `KeyManagerProxy`.
* @function
* @returns {Object} `KeyManager` or `KeyManagerProxy`.
*/
defaultKeyManager: {
get: function () {
if (!_keyManagerProxy) {
_keyManagerProxy = new KeyManagerProxy();
}
if (this._defaultKeyManager) {
return this._defaultKeyManager;
} else {
return _keyManagerProxy;
}
}
}

});
146 changes: 74 additions & 72 deletions composer/press-composer.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,80 @@ var Montage = require("../core/core").Montage,
Composer = require("./composer").Composer,
MutableEvent = require("../core/event/mutable-event").MutableEvent;

/*
* @class PressEvent
* @inherits MutableEvent
* @classdesc The event dispatched by the `PressComposer`, providing access to
* the raw DOM event and proxying its properties.
*/
var PressEvent = (function (){

function eventPropDescriptor(prop) {
return {
get: function () {
return this._event[prop];
}
};
}

function typePropDescriptor(prop) {
return {
get: function () {
return (this._touch) ? this._touch[prop] : this._event[prop];
}
};
}

var PressEvent = MutableEvent.specialize({
type: {
value: "press"
},
_event: {
enumerable: false,
value: null
},
event: {
get: function () {
return this._event;
},
set: function (value) {
this._event = value;
}
},
_touch: {
enumerable: false,
value: null
},
touch: {
get: function () {
return this._touch;
},
set: function (value) {
this._touch = value;
}
}
});

// These properties are available directly on the event
[
"altKey", "ctrlKey", "metaKey", "shiftKey",
"cancelBubble", "currentTarget", "defaultPrevented",
"eventPhase", "timeStamp", "preventDefault",
"stopImmediatePropagation", "stopPropagation"
].forEach(function (eventProp) {
Montage.defineProperty(PressEvent, eventProp, eventPropDescriptor(eventProp));
});


// These properties are available on the event in the case of mouse, and
// on the _touch in the case of touch
["clientX", "clientY", "pageX", "pageY", "screenX", "screenY", "target"].forEach(function (typeProp) {
Montage.defineProperty(PressEvent, typeProp, typePropDescriptor(typeProp));
});

return PressEvent;
}());

/**
* @class PressComposer
* @classdesc The `PressComposer` abstracts away handling mouse and touch
Expand Down Expand Up @@ -854,75 +928,3 @@ PressComposer.prototype.handlePointerdown = PressComposer.prototype._handlePoint
PressComposer.prototype.handleMousedown = PressComposer.prototype._handlePointerDown;
PressComposer.prototype.handleTouchstart = PressComposer.prototype._handlePointerDown;

/*
* @class PressEvent
* @inherits MutableEvent
* @classdesc The event dispatched by the `PressComposer`, providing access to
* the raw DOM event and proxying its properties.
*/
var PressEvent = (function (){
var value, eventProps, typeProps, eventPropDescriptor, typePropDescriptor, i;

value = MutableEvent.specialize({
type: {
value: "press"
},
_event: {
enumerable: false,
value: null
},
event: {
get: function () {
return this._event;
},
set: function (value) {
this._event = value;
}
},
_touch: {
enumerable: false,
value: null
},
touch: {
get: function () {
return this._touch;
},
set: function (value) {
this._touch = value;
}
}
});

// These properties are available directly on the event
eventProps = ["altKey", "ctrlKey", "metaKey", "shiftKey",
"cancelBubble", "currentTarget", "defaultPrevented",
"eventPhase", "timeStamp", "preventDefault",
"stopImmediatePropagation", "stopPropagation"];
// These properties are available on the event in the case of mouse, and
// on the _touch in the case of touch
typeProps = ["clientX", "clientY", "pageX", "pageY", "screenX", "screenY", "target"];

eventPropDescriptor = function (prop) {
return {
get: function () {
return this._event[prop];
}
};
};
typePropDescriptor = function (prop) {
return {
get: function () {
return (this._touch) ? this._touch[prop] : this._event[prop];
}
};
};

for (i = eventProps.length - 1; i >= 0; i--) {
Montage.defineProperty(value, eventProps[i], eventPropDescriptor(eventProps[i]));
}
for (i = typeProps.length - 1; i >= 0; i--) {
Montage.defineProperty(value, typeProps[i], typePropDescriptor(typeProps[i]));
}

return value;
}());
2 changes: 1 addition & 1 deletion core/serialization/serialization.js
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,7 @@ var SerializationInspector = Montage.specialize(/** @lends SerializationInspecto

// Update the label if it was changed.
console.log(label, value.label)
if (label!== undefined && label !== value value.label !== label) {
if (label != null && label !== value && value.label !== label) {
this.changeLabel(label, value.label);
}
}
Expand Down
6 changes: 4 additions & 2 deletions core/tree-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ exports.TreeController = Montage.specialize({
value: function () {
this._expansionMap = new WeakMap();
this.handleTreeChange();
return true
return true;
}
},

Expand Down Expand Up @@ -331,7 +331,9 @@ exports.TreeController = Montage.specialize({
delete this._listenersHash[expansionMetadata.listenerId];
}
for (id in this._listenersHash) {
this._removeListener(id);
if (this._listenersHash.hasOwnProperty(id)) {
this._removeListener(id);
}
}
this._listenersHash = listenersHash;
}
Expand Down
Loading

0 comments on commit 034492a

Please sign in to comment.