http://www.mediawiki.org/wiki/Special:Code/MediaWiki/97883
Revision: 97883
Author: inez
Date: 2011-09-23 01:33:02 +0000 (Fri, 23 Sep 2011)
Log Message:
-----------
Little bit of a cleanup for getOffsetFromPosition
Modified Paths:
--------------
trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js
trunk/parsers/wikidom/lib/synth/views/es.ParagraphBlockView.js
trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js
trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js
trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js
Modified: trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js 2011-09-23
01:10:06 UTC (rev 97882)
+++ trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js 2011-09-23
01:33:02 UTC (rev 97883)
@@ -18,10 +18,22 @@
/* Methods */
+/**
+ * Gets the offset of a position.
+ *
+ * @method
+ * @param position {es.Position} Position to translate
+ * @returns {Integer} Offset nearest to position
+ */
es.ListBlockView.prototype.getOffsetFromPosition = function( position ) {
- var contentOffset;
- var itemHeight;
- var offset = 0;
+ if ( this.items.length === 0 ) {
+ return 0;
+ }
+
+ var contentOffset,
+ itemHeight,
+ offset = 0;
+
for ( var i = 0; i < this.items.length; i++ ) {
contentOffset = this.items[i].$content.offset();
if ( position.top >= contentOffset.top ) {
@@ -29,14 +41,27 @@
if ( position.top < contentOffset.top + itemHeight ) {
position.left -= contentOffset.left;
position.top -= contentOffset.top;
- return offset +
this.items[i].contentView.getOffset( position );
+ return offset + this.items[i].getContentOffset(
position );
}
}
offset += this.items[i].getLength() + 1;
}
- while(!documentView.list) {
-
+ throw 'Position coordinates are outside of the view.';
+};
+
+/**
+ * Draw selection around a given range.
+ *
+ * @method
+ * @param range {es.Range} Range of content to draw selection around
+ */
+es.ListBlockView.prototype.drawSelection = function( range ) {
+ var selectedItems = this.items.select( range );
+ for ( var i = 0; i < selectedItems.length; i++ ) {
+ selectedItems[i].item.drawSelection(
+ new es.Range( selectedItems[i].from,
selectedItems[i].to )
+ );
}
};
@@ -74,21 +99,6 @@
};
/**
- * Draw selection around a given range.
- *
- * @method
- * @param range {es.Range} Range of content to draw selection around
- */
-es.ListBlockView.prototype.drawSelection = function( range ) {
- var selectedViews = this.items.select( range );
- for ( var i = 0; i < selectedViews.length; i++ ) {
- selectedViews[i].item.drawSelection(
- new es.Range( selectedViews[i].from,
selectedViews[i].to )
- );
- }
-};
-
-/**
* Gets length of contents.
*
* @method
Modified: trunk/parsers/wikidom/lib/synth/views/es.ParagraphBlockView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.ParagraphBlockView.js
2011-09-23 01:10:06 UTC (rev 97882)
+++ trunk/parsers/wikidom/lib/synth/views/es.ParagraphBlockView.js
2011-09-23 01:33:02 UTC (rev 97883)
@@ -17,6 +17,13 @@
/* Methods */
+/**
+ * Gets the offset of a position.
+ *
+ * @method
+ * @param position {es.Position} Position to translate
+ * @returns {Integer} Offset nearest to position
+ */
es.ParagraphBlockView.prototype.getOffsetFromPosition = function( position ) {
var blockPosition = this.$.offset();
position.left -= blockPosition.left;
Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js
2011-09-23 01:10:06 UTC (rev 97882)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js
2011-09-23 01:33:02 UTC (rev 97883)
@@ -13,10 +13,17 @@
/* Methods */
+/**
+ * Gets the offset of a position.
+ *
+ * @method
+ * @param position {es.Position} Position to translate
+ * @returns {Integer} Offset nearest to position
+ */
es.TableBlockCellView.prototype.getOffsetFromPosition = function( position ) {
- var blockOffset;
- var itemHeight;
- var offset = 0;
+ var blockOffset,
+ itemHeight,
+ offset = 0;
for ( var i = 0; i < this.items.length; i++ ) {
blockOffset = this.items[i].$.offset();
@@ -28,6 +35,8 @@
}
offset += this.items[i].getLength() + 1;
}
+
+ throw 'Position coordinates are outside of the view.';
};
/**
Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js
2011-09-23 01:10:06 UTC (rev 97882)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js
2011-09-23 01:33:02 UTC (rev 97883)
@@ -14,11 +14,18 @@
/* Methods */
+/**
+ * Gets the offset of a position.
+ *
+ * @method
+ * @param position {es.Position} Position to translate
+ * @returns {Integer} Offset nearest to position
+ */
es.TableBlockRowView.prototype.getOffsetFromPosition = function( position ) {
- var cellOffset;
- var itemWidth;
- var offset = 0;
-
+ var cellOffset,
+ itemWidth,
+ offset = 0;
+
for ( var i = 0; i < this.items.length; i++ ) {
cellOffset = this.items[i].$.offset();
if ( position.left >= cellOffset.left ) {
@@ -29,6 +36,8 @@
}
offset += this.items[i].getLength() + 1;
}
+
+ throw 'Position coordinates are outside of the view.';
};
/**
Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js 2011-09-23
01:10:06 UTC (rev 97882)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js 2011-09-23
01:33:02 UTC (rev 97883)
@@ -15,10 +15,21 @@
/* Methods */
+/**
+ * Gets the offset of a position.
+ *
+ * @method
+ * @param position {es.Position} Position to translate
+ * @returns {Integer} Offset nearest to position
+ */
es.TableBlockView.prototype.getOffsetFromPosition = function( position ) {
- var rowOffset;
- var itemHeight;
- var offset = 0;
+ if ( this.items.length === 0 ) {
+ return 0;
+ }
+
+ var rowOffset,
+ itemHeight,
+ offset = 0;
for ( var i = 0; i < this.items.length; i++ ) {
rowOffset = this.items[i].$.offset();
@@ -30,6 +41,8 @@
}
offset += this.items[i].getLength() + 1;
}
+
+ throw 'Position coordinates are outside of the view.';
};
/**
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs