123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-grid-feature-Chunking'>/**
- </span> *
- */
- Ext.define('Ext.grid.feature.Chunking', {
- extend: 'Ext.grid.feature.Feature',
- alias: 'feature.chunking',
- chunkSize: 20,
- rowHeight: Ext.isIE ? 27 : 26,
- visibleChunk: 0,
- hasFeatureEvent: false,
- attachEvents: function() {
- this.view.el.on('scroll', this.onBodyScroll, this, {buffer: 300});
- },
- onBodyScroll: function(e, t) {
- var view = this.view,
- top = t.scrollTop,
- nextChunk = Math.floor(top / this.rowHeight / this.chunkSize);
- if (nextChunk !== this.visibleChunk) {
- this.visibleChunk = nextChunk;
- view.refresh();
- view.el.dom.scrollTop = top;
- //BrowserBug: IE6,7,8 quirks mode takes setting scrollTop 2x.
- view.el.dom.scrollTop = top;
- }
- },
- collectData: function(records, preppedRecords, startIndex, fullWidth, o) {
- //headerCt = this.view.headerCt,
- //colums = headerCt.getColumnsForTpl(),
- var me = this,
- recordCount = o.rows.length,
- start = 0,
- i = 0,
- visibleChunk = me.visibleChunk,
- rows,
- chunkLength,
- origRows = o.rows;
- delete o.rows;
- o.chunks = [];
- for (; start < recordCount; start += me.chunkSize, i++) {
- if (start + me.chunkSize > recordCount) {
- chunkLength = recordCount - start;
- } else {
- chunkLength = me.chunkSize;
- }
-
- if (i >= visibleChunk - 1 && i <= visibleChunk + 1) {
- rows = origRows.slice(start, start + me.chunkSize);
- } else {
- rows = [];
- }
- o.chunks.push({
- rows: rows,
- fullWidth: fullWidth,
- chunkHeight: chunkLength * me.rowHeight
- });
- }
- return o;
- },
- getTableFragments: function() {
- return {
- openTableWrap: function() {
- return '<tpl for="chunks"><div class="' + Ext.baseCSSPrefix + 'grid-chunk" style="height: {chunkHeight}px;">';
- },
- closeTableWrap: function() {
- return '</div></tpl>';
- }
- };
- }
- });
- </pre>
- </body>
- </html>
|