| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 | 
							- <!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-resizer-BorderSplitterTracker'>/**
 
- </span> * Private utility class for Ext.BorderSplitter.
 
-  * @private
 
-  */
 
- Ext.define('Ext.resizer.BorderSplitterTracker', {
 
-     extend: 'Ext.resizer.SplitterTracker',
 
-     requires: ['Ext.util.Region'],
 
-     getPrevCmp: null,
 
-     getNextCmp: null,
 
-     // calculate the constrain Region in which the splitter el may be moved.
 
-     calculateConstrainRegion: function() {
 
-         var me = this,
 
-             splitter = me.splitter,
 
-             collapseTarget = splitter.collapseTarget,
 
-             defaultSplitMin = splitter.defaultSplitMin,
 
-             sizePropCap = splitter.vertical ? 'Width' : 'Height',
 
-             minSizeProp = 'min' + sizePropCap,
 
-             maxSizeProp = 'max' + sizePropCap,
 
-             getSizeMethod = 'get' + sizePropCap,
 
-             neighbors = splitter.neighbors,
 
-             length = neighbors.length,
 
-             box = collapseTarget.el.getBox(),
 
-             left = box.x,
 
-             top = box.y,
 
-             right = box.right,
 
-             bottom = box.bottom,
 
-             size = splitter.vertical ? (right - left) : (bottom - top),
 
-             //neighborSizes = [],
 
-             i, neighbor, minRange, maxRange, maxGrowth, maxShrink, targetSize;
 
-         // if size=100 and minSize=80, we can reduce by 20 so minRange = minSize-size = -20
 
-         minRange = (collapseTarget[minSizeProp] || Math.min(size,defaultSplitMin)) - size;
 
-         // if maxSize=150, maxRange = maxSize - size = 50
 
-         maxRange = collapseTarget[maxSizeProp];
 
-         if (!maxRange) {
 
-             maxRange = 1e9;
 
-         } else {
 
-             maxRange -= size;
 
-         }
 
-         targetSize = size;
 
-         for (i = 0; i < length; ++i) {
 
-             neighbor = neighbors[i];
 
-             size = neighbor[getSizeMethod]();
 
-             //neighborSizes.push(size);
 
-             maxGrowth = size - neighbor[maxSizeProp]; // NaN if no maxSize or negative
 
-             maxShrink = size - (neighbor[minSizeProp] || Math.min(size,defaultSplitMin));
 
-             if (!isNaN(maxGrowth)) {
 
-                 // if neighbor can only grow by 10 (maxGrowth = -10), minRange cannot be
 
-                 // -20 anymore, but now only -10:
 
-                 if (minRange < maxGrowth) {
 
-                     minRange = maxGrowth;
 
-                 }
 
-             }
 
-             // if neighbor can shrink by 20 (maxShrink=20), maxRange cannot be 50 anymore,
 
-             // but now only 20:
 
-             if (maxRange > maxShrink) {
 
-                 maxRange = maxShrink;
 
-             }
 
-         }
 
-         if (maxRange - minRange < 2) {
 
-             return null;
 
-         }
 
-         box = new Ext.util.Region(top, right, bottom, left);
 
-         me.constraintAdjusters[splitter.collapseDirection](box, minRange, maxRange, splitter);
 
-         me.dragInfo = {
 
-             minRange: minRange,
 
-             maxRange: maxRange,
 
-             //neighborSizes: neighborSizes,
 
-             targetSize: targetSize
 
-         };
 
-         return box;
 
-     },
 
-     constraintAdjusters: {
 
-         // splitter is to the right of the box
 
-         left: function (box, minRange, maxRange, splitter) {
 
-             box[0] = box.x = box.left = box.right + minRange;
 
-             box.right += maxRange + splitter.getWidth();
 
-         },
 
-         // splitter is below the box
 
-         top: function (box, minRange, maxRange, splitter) {
 
-             box[1] = box.y = box.top = box.bottom + minRange;
 
-             box.bottom += maxRange + splitter.getHeight();
 
-         },
 
-         // splitter is above the box
 
-         bottom: function (box, minRange, maxRange, splitter) {
 
-             box.bottom = box.top - minRange;
 
-             box.top -= maxRange + splitter.getHeight();
 
-         },
 
-         // splitter is to the left of the box
 
-         right: function (box, minRange, maxRange, splitter) {
 
-             box.right = box.left - minRange;
 
-             box.left -= maxRange + splitter.getWidth();
 
-         }
 
-     },
 
-     onBeforeStart: function(e) {
 
-         var me = this,
 
-             splitter = me.splitter,
 
-             collapseTarget = splitter.collapseTarget,
 
-             neighbors = splitter.neighbors,
 
-             collapseEl = me.getSplitter().collapseEl,
 
-             target = e.getTarget(),
 
-             length = neighbors.length,
 
-             i, neighbor;
 
-             
 
-         if (collapseEl && target === splitter.collapseEl.dom) {
 
-             return false;
 
-         }
 
-         if (collapseTarget.collapsed) {
 
-             return false;
 
-         }
 
-         // disabled if any neighbors are collapsed in parallel direction.
 
-         for (i = 0; i < length; ++i) {
 
-             neighbor = neighbors[i];
 
-             if (neighbor.collapsed && neighbor.isHorz === collapseTarget.isHorz) {
 
-                 return false;
 
-             }
 
-         }
 
-         if (!(me.constrainTo = me.calculateConstrainRegion())) {
 
-             return false;
 
-         }
 
-         me.createDragOverlay();
 
-         return true;
 
-     },
 
-     performResize: function(e, offset) {
 
-         var me = this,
 
-             splitter = me.splitter,
 
-             collapseDirection = splitter.collapseDirection,
 
-             collapseTarget = splitter.collapseTarget,
 
-             // a vertical splitter adjusts horizontal dimensions
 
-             adjusters = me.splitAdjusters[splitter.vertical ? 'horz' : 'vert'],
 
-             delta = offset[adjusters.index],
 
-             dragInfo = me.dragInfo,
 
-             //neighbors = splitter.neighbors,
 
-             //length = neighbors.length,
 
-             //neighborSizes = dragInfo.neighborSizes,
 
-             //isVert = collapseTarget.isVert,
 
-             //i, neighbor,
 
-             owner;
 
-         if (collapseDirection == 'right' || collapseDirection == 'bottom') {
 
-             // these splitters grow by moving left/up, so flip the sign of delta...
 
-             delta = -delta;
 
-         }
 
-         // now constrain delta to our computed range:
 
-         delta = Math.min(Math.max(dragInfo.minRange, delta), dragInfo.maxRange);
 
-         if (delta) {
 
-             (owner = splitter.ownerCt).suspendLayouts();
 
-             adjusters.adjustTarget(collapseTarget, dragInfo.targetSize, delta);
 
-             //for (i = 0; i < length; ++i) {
 
-             //    neighbor = neighbors[i];
 
-             //    if (!neighbor.isCenter && !neighbor.maintainFlex && neighbor.isVert == isVert) {
 
-             //        delete neighbor.flex;
 
-             //        adjusters.adjustNeighbor(neighbor, neighborSizes[i], delta);
 
-             //    }
 
-             //}
 
-             owner.resumeLayouts(true);
 
-         }
 
-     },
 
-     splitAdjusters: {
 
-         horz: {
 
-             index: 0,
 
-             //adjustNeighbor: function (neighbor, size, delta) {
 
-             //    neighbor.setSize(size - delta);
 
-             //},
 
-             adjustTarget: function (target, size, delta) {
 
-                 target.flex = null;
 
-                 target.setSize(size + delta);
 
-             }
 
-         },
 
-         vert: {
 
-             index: 1,
 
-             //adjustNeighbor: function (neighbor, size, delta) {
 
-             //    neighbor.setSize(undefined, size - delta);
 
-             //},
 
-             adjustTarget: function (target, targetSize, delta) {
 
-                 target.flex = null;
 
-                 target.setSize(undefined, targetSize + delta);
 
-             }
 
-         }
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |