From 585e3b6254577d5a1693de470c95b3b8dc822f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Lehni?= Date: Sun, 8 May 2011 15:45:40 +0100 Subject: [PATCH] Clean up and shorten code. --- src/tool/ToolEvent.js | 48 ++++++++++++++--------------------------- src/tool/ToolHandler.js | 34 +++++++++++++---------------- 2 files changed, 31 insertions(+), 51 deletions(-) diff --git a/src/tool/ToolEvent.js b/src/tool/ToolEvent.js index b99be5f7..8b685932 100644 --- a/src/tool/ToolEvent.js +++ b/src/tool/ToolEvent.js @@ -44,12 +44,8 @@ var ToolEvent = this.ToolEvent = Base.extend({ * Convenience method to allow local overrides of point values. * See application below. */ - choosePoint: function(point, toolPoint) { - if (point) - return point; - if (toolPoint) - return new Point(toolPoint); - return null; + _choosePoint: function(point, toolPoint) { + return point ? point : toolPoint ? toolPoint.clone() : null; }, /** @@ -70,7 +66,7 @@ var ToolEvent = this.ToolEvent = Base.extend({ * */ getPoint: function() { - return this.choosePoint(this._point, this.tool.point); + return this._choosePoint(this._point, this.tool.point); }, setPoint: function(point) { @@ -82,7 +78,7 @@ var ToolEvent = this.ToolEvent = Base.extend({ * event was fired. */ getLastPoint: function() { - return this.choosePoint(this._lastPoint, this.tool.lastPoint); + return this._choosePoint(this._lastPoint, this.tool.lastPoint); }, setLastPoint: function(lastPoint) { @@ -94,7 +90,7 @@ var ToolEvent = this.ToolEvent = Base.extend({ * was last clicked. */ getDownPoint: function() { - return this.choosePoint(this._downPoint, this.tool.downPoint); + return this._choosePoint(this._downPoint, this.tool.downPoint); }, setDownPoint: function(downPoint) { @@ -109,7 +105,7 @@ var ToolEvent = this.ToolEvent = Base.extend({ */ getMiddlePoint: function() { // For explanations, see getDelta() - if (this._middlePoint == null && this.tool.lastPoint != null) { + if (!this._middlePoint && this.tool.lastPoint) { // (point + lastPoint) / 2 return this.tool.point.add(this.tool.lastPoint).divide(2); } @@ -131,10 +127,9 @@ var ToolEvent = this.ToolEvent = Base.extend({ // Instead, keep calculating the delta each time, so the result can be // directly modified by the script without changing the internal values. // We could cache this and use clone, but this is almost as fast... - if (this._delta == null && this.tool.lastPoint != null) { - return this.tool.point.subtract(this.tool.lastPoint); - } - return this._delta; + return this._delta && this.tool.lastPoint + ? this.tool.point.subtract(this.tool.lastPoint) + : this._delta; }, setDelta: function(delta) { @@ -160,27 +155,16 @@ var ToolEvent = this.ToolEvent = Base.extend({ * */ getCount: function() { - switch (this.type) { - case 'mousedown': - case 'mouseup': - // Return downCount for both mouse down and up, since - // the count is the same. - return this.tool.downCount; - default: - return this.tool.count; - } + // Return downCount for both mouse down and up, since + // the count is the same. + return /^mouse(down|up)$/.test(this.type) + ? this.tool.downCount + : this.tool.count; }, setCount: function(count) { - switch (this.type) { - case 'mousedown': - case 'mouseup': - this.tool.downCount = count; - break; - default: - this.tool.count = count; - break; - } + this.tool[/^mouse(down|up)$/.test(this.type) ? 'downCount' : 'count'] + = count; }, getModifiers: function() { diff --git a/src/tool/ToolHandler.js b/src/tool/ToolHandler.js index e6382d77..8c164974 100644 --- a/src/tool/ToolHandler.js +++ b/src/tool/ToolHandler.js @@ -35,8 +35,8 @@ var ToolHandler = this.ToolHandler = Base.extend({ * * Sample code: * - * // Fire the onMouseDrag event after the user has dragged - * // more then 5 points from the last onMouseDrag event: + * // Fire the onMouseDrag event after the user has dragged more then 5 + * // points from the last onMouseDrag event: * tool.minDistance = 5; * */ @@ -104,16 +104,12 @@ var ToolHandler = this.ToolHandler = Base.extend({ this.downCount++; break; case 'mouseup': - // Mouse up events return the down point for last point, - // so delta is spanning over the whole drag. + // Mouse up events return the down point for last point, so delta is + // spanning over the whole drag. this.lastPoint = this.downPoint; break; } - if (start) { - this.count = 0; - } else { - this.count++; - } + this.count = start ? 0 : this.count + 1; return true; }, @@ -125,15 +121,15 @@ var ToolHandler = this.ToolHandler = Base.extend({ this.onMouseDown(new ToolEvent(this, type, event)); break; case 'mousedrag': - // In order for idleInterval drag events to work, we need to - // not check the first call for a change of position. - // Subsequent calls required by min/maxDistance functionality - // will require it, otherwise this might loop endlessly. + // In order for idleInterval drag events to work, we need to not + // check the first call for a change of position. Subsequent calls + // required by min/maxDistance functionality will require it, + // otherwise this might loop endlessly. var needsChange = false, - // If the mouse is moving faster than maxDistance, do not - // produce events for what is left after the first event is - // generated in case it is shorter than maxDistance, as this - // would produce weird results. matchMaxDistance controls this. + // If the mouse is moving faster than maxDistance, do not produce + // events for what is left after the first event is generated in + // case it is shorter than maxDistance, as this would produce weird + // results. matchMaxDistance controls this. matchMaxDistance = false; while (this.updateEvent(type, pt, this.minDistance, this.maxDistance, false, needsChange, matchMaxDistance)) { @@ -144,8 +140,8 @@ var ToolHandler = this.ToolHandler = Base.extend({ } break; case 'mouseup': - // If the last mouse drag happened in a different place, call - // mouse drag first, then mouse up. + // If the last mouse drag happened in a different place, call mouse + // drag first, then mouse up. if ((this.point.x != pt.x || this.point.y != pt.y) && this.updateEvent('mousedrag', pt, this.minDistance, this.maxDistance, false, false, false)) {