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

Reply via email to