http://www.mediawiki.org/wiki/Special:Code/MediaWiki/99772

Revision: 99772
Author:   inez
Date:     2011-10-14 15:26:11 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
Working proof of concept code for movin cursor up and down

Modified Paths:
--------------
    trunk/parsers/wikidom/lib/synth/views/es.DocumentView.js
    trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js
    trunk/parsers/wikidom/lib/synth/views/es.SurfaceView.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.DocumentView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.DocumentView.js    2011-10-14 
15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.DocumentView.js    2011-10-14 
15:26:11 UTC (rev 99772)
@@ -87,9 +87,9 @@
                return 0;
        }
        
-       var blockView;
+       var blockView = this.items[0];
 
-       for ( var i = 0; i < this.items.length; i++ ) {
+       for ( var i = 1; i < this.items.length; i++ ) {
                if ( this.items[i].$.offset().top > position.top ) {
                        break;
                }

Modified: trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js   2011-10-14 
15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.ListBlockView.js   2011-10-14 
15:26:11 UTC (rev 99772)
@@ -74,9 +74,9 @@
                return 0;
        }
 
-       var listItemView;
+       var listItemView = this.items[0];
 
-       for ( var i = 0; i < this.items.length; i++ ) {
+       for ( var i = 1; i < this.items.length; i++ ) {
                if ( this.items[i].$.offset().top > position.top ) {
                        break;
                }

Modified: trunk/parsers/wikidom/lib/synth/views/es.SurfaceView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.SurfaceView.js     2011-10-14 
15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.SurfaceView.js     2011-10-14 
15:26:11 UTC (rev 99772)
@@ -280,14 +280,37 @@
                        this.showCursor( this.cursor.offset + 1 );
                        break;
                case 'up':
-                       var position = this.documentView.getRenderedPosition( 
this.cursor.offset );
-                       position.top--;
-                       this.showCursor( 
this.documentView.getOffsetFromPosition( position ) );
+                       var currentOffset = this.cursor.offset;
+                       var currentPosition = 
this.documentView.getRenderedPosition( currentOffset );
+                       var newPosition = new es.Position(currentPosition.left, 
currentPosition.top, currentPosition.bottom);
+                       var off = -1;
+                       var newPosTop = newPosition.top;
+
+                       while ( currentPosition.top === newPosition.top && off 
!== 0 ) {
+                               newPosTop = newPosTop - 10;
+                               newPosition.top = newPosTop;
+                               off = this.documentView.getOffsetFromPosition( 
newPosition );
+                               newPosition = 
this.documentView.getRenderedPosition( off );
+                       }
+                       newPosition.left = currentPosition.left;
+                       this.showCursor( 
this.documentView.getOffsetFromPosition( newPosition ) );
                        break;
                case 'down':
-                       var position = this.documentView.getRenderedPosition( 
this.cursor.offset );
-                       position.top = position.bottom + 1;
-                       this.showCursor( 
this.documentView.getOffsetFromPosition( position ) );
+                       var currentOffset = this.cursor.offset;
+                       var currentPosition = 
this.documentView.getRenderedPosition( currentOffset );
+                       var newPosition = new es.Position(currentPosition.left, 
currentPosition.top, currentPosition.bottom);
+                       var off = -1;
+                       var newPosTop = newPosition.top;
+                       var alllength = this.documentView.getLength();
+
+                       while ( currentPosition.top === newPosition.top && off 
!== alllength ) {
+                               newPosTop = newPosTop + 10;
+                               newPosition.top = newPosTop;
+                               off = this.documentView.getOffsetFromPosition( 
newPosition );
+                               newPosition = 
this.documentView.getRenderedPosition( off );
+                       }
+                       newPosition.left = currentPosition.left;
+                       this.showCursor( 
this.documentView.getOffsetFromPosition( newPosition ) );
                        break;
                default:
                        break;

Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js      
2011-10-14 15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockCellView.js      
2011-10-14 15:26:11 UTC (rev 99772)
@@ -71,13 +71,13 @@
        
        var blockView = this.items[0];
 
-       for ( var i = 0; i < this.items.length; i++ ) {
-               if ( this.items[i].$.offset().top >= position.top ) {
+       for ( var i = 1; i < this.items.length; i++ ) {
+               if ( this.items[i].$.offset().top > position.top ) {
                        break;
                }
                blockView = this.items[i];
        }
-       
+
        return blockView.list.items.offsetOf( blockView ) + 
blockView.getOffsetFromPosition( position );
 };
 

Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js       
2011-10-14 15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockRowView.js       
2011-10-14 15:26:11 UTC (rev 99772)
@@ -70,9 +70,9 @@
                return 0;
        }
 
-       var cellView;
+       var cellView = this.items[0];
 
-       for ( var i = 0; i < this.items.length; i++ ) {
+       for ( var i = 1; i < this.items.length; i++ ) {
                if ( this.items[i].$.offset().left > position.left ) {
                        break;
                }

Modified: trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js  2011-10-14 
15:17:15 UTC (rev 99771)
+++ trunk/parsers/wikidom/lib/synth/views/es.TableBlockView.js  2011-10-14 
15:26:11 UTC (rev 99772)
@@ -71,9 +71,9 @@
                return 0;
        }
        
-       var rowView;
+       var rowView = this.items[0];
 
-       for ( var i = 0; i < this.items.length; i++ ) {
+       for ( var i = 1; i < this.items.length; i++ ) {
                if ( this.items[i].$.offset().top > position.top ) {
                        break;
                }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to