openmct/platform/commonUI/general/src/controllers/SplitPaneController.js
Victor Woeltjen 14571ebb6e [Browse] Add JSDoc
Add in-line documentation to controller which supports the
moveable splitter in Browse mode, WTD-747.
2015-01-28 16:38:32 -08:00

54 lines
1.7 KiB
JavaScript

/*global define*/
define(
[],
function () {
"use strict";
/**
* Controller for the splitter in Browse mode. Current implementation
* uses many hard-coded constants; this could be generalized.
* @constructor
*/
function SplitPaneController() {
var minimum = 120,
maximum = 600,
current = 200,
start = 200;
return {
/**
* Get the current position of the splitter, in pixels
* from the left edge.
* @returns {number} position of the splitter, in pixels
*/
state: function () {
return current;
},
/**
* Begin moving the splitter; this will note the splitter's
* current position, which is necessary for correct
* interpretation of deltas provided by mct-drag.
*/
startMove: function () {
start = current;
},
/**
* Move the splitter a number of pixels to the right
* (negative numbers move the splitter to the left.)
* This movement is relative to the position of the
* splitter when startMove was last invoked.
* @param {number} delta number of pixels to move
*/
move: function (delta) {
current = Math.min(
maximum,
Math.max(minimum, start + delta)
);
}
};
}
return SplitPaneController;
}
);