Add ViewPort.currentViewableRange()
authorMichael M Slusarz <slusarz@curecanti.org>
Fri, 20 Nov 2009 22:22:49 +0000 (15:22 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Fri, 20 Nov 2009 23:54:59 +0000 (16:54 -0700)
imp/js/DimpBase.js
imp/js/ViewPort.js

index 3cb4214..5a45a6e 100644 (file)
@@ -1301,12 +1301,12 @@ var DimpBase = {
 
     setMessageListTitle: function()
     {
-        var offset,
+        var range,
             rows = this.viewport.getMetaData('total_rows');
 
-        if (rows > 0) {
-            offset = this.viewport.currentOffset();
-            $('msgHeader').update(DIMP.text.messages + ' ' + (offset + 1) + ' - ' + (Math.min(offset + this.viewport.getPageSize(), rows)) + ' ' + DIMP.text.of + ' ' + rows);
+        if (rows) {
+            range = this.viewport.currentViewableRange();
+            $('msgHeader').update(DIMP.text.messages + ' ' + range.first + ' - ' + range.last + ' ' + DIMP.text.of + ' ' + rows);
         } else {
             $('msgHeader').update(DIMP.text.nomessages);
         }
index 5281219..517b49f 100644 (file)
@@ -911,6 +911,18 @@ var ViewPort = Class.create({
         return this.scroller.currentOffset();
     },
 
+    // return: (object) The current viewable range of the viewport.
+    //         first: Top-most row offset
+    //         last: Bottom-most row offset
+    currentViewableRange: function()
+    {
+        var offset = this.currentOffset();
+        return {
+            first: offset + 1,
+            last: Math.min(offset + this.getPageSize(), this.getMetaData('total_rows'))
+        };
+    },
+
     _getLineHeight: function()
     {
         var mode = this.pane_mode || 'horiz';