routebar
Version:
A visual component for navigating between panel cells containing user content.
229 lines (202 loc) • 18.6 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>controlManager.js - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Animation.html">Animation</a><ul class='methods'><li data-type='method'><a href="Animation.html#configure">configure</a></li><li data-type='method'><a href="Animation.html#destroy">destroy</a></li><li data-type='method'><a href="Animation.html#goToCenter">goToCenter</a></li><li data-type='method'><a href="Animation.html#goToCorrectSide">goToCorrectSide</a></li><li data-type='method'><a href="Animation.html#goToWrongSide">goToWrongSide</a></li></ul></li><li><a href="ArrowsControl.html">ArrowsControl</a><ul class='methods'><li data-type='method'><a href="ArrowsControl.html#configure">configure</a></li><li data-type='method'><a href="ArrowsControl.html#destroy">destroy</a></li><li data-type='method'><a href="ArrowsControl.html#disable">disable</a></li><li data-type='method'><a href="ArrowsControl.html#enable">enable</a></li><li data-type='method'><a href="ArrowsControl.html#isEnable">isEnable</a></li></ul></li><li><a href="BaseDispatcher.html">BaseDispatcher</a><ul class='methods'><li data-type='method'><a href="BaseDispatcher.html#add">add</a></li><li data-type='method'><a href="BaseDispatcher.html#configure">configure</a></li><li data-type='method'><a href="BaseDispatcher.html#destroy">destroy</a></li><li data-type='method'><a href="BaseDispatcher.html#remove">remove</a></li><li data-type='method'><a href="BaseDispatcher.html#runActions">runActions</a></li></ul></li><li><a href="ControlManager.html">ControlManager</a><ul class='methods'><li data-type='method'><a href="ControlManager.html#add">add</a></li><li data-type='method'><a href="ControlManager.html#configure">configure</a></li><li data-type='method'><a href="ControlManager.html#destroy">destroy</a></li><li data-type='method'><a href="ControlManager.html#disable">disable</a></li><li data-type='method'><a href="ControlManager.html#disableAll">disableAll</a></li><li data-type='method'><a href="ControlManager.html#enable">enable</a></li><li data-type='method'><a href="ControlManager.html#enableAll">enableAll</a></li><li data-type='method'><a href="ControlManager.html#enableByValues">enableByValues</a></li><li data-type='method'><a href="ControlManager.html#isEnable">isEnable</a></li><li data-type='method'><a href="ControlManager.html#remove">remove</a></li></ul></li><li><a href="KeydownControl.html">KeydownControl</a><ul class='methods'><li data-type='method'><a href="KeydownControl.html#configure">configure</a></li><li data-type='method'><a href="KeydownControl.html#destroy">destroy</a></li><li data-type='method'><a href="KeydownControl.html#disable">disable</a></li><li data-type='method'><a href="KeydownControl.html#enable">enable</a></li><li data-type='method'><a href="KeydownControl.html#isEnable">isEnable</a></li></ul></li><li><a href="module-Errors-ArgumentError.html">ArgumentError</a></li><li><a href="module-Errors-FatalError.html">FatalError</a></li><li><a href="module-Errors-NotRealizedError.html">NotRealizedError</a></li><li><a href="module-Errors-PathNotFoundError.html">PathNotFoundError</a></li><li><a href="Moving.html">Moving</a><ul class='methods'><li data-type='method'><a href="Moving.html#activate">activate</a></li><li data-type='method'><a href="Moving.html#addPlugin">addPlugin</a></li><li data-type='method'><a href="Moving.html#animateWrongSide">animateWrongSide</a></li><li data-type='method'><a href="Moving.html#configure">configure</a></li><li data-type='method'><a href="Moving.html#destroy">destroy</a></li><li data-type='method'><a href="Moving.html#getControlManager">getControlManager</a></li><li data-type='method'><a href="Moving.html#getScreenManager">getScreenManager</a></li><li data-type='method'><a href="Moving.html#goToScreen">goToScreen</a></li><li data-type='method'><a href="Moving.html#move">move</a></li><li data-type='method'><a href="Moving.html#moveBack">moveBack</a></li><li data-type='method'><a href="Moving.html#reload">reload</a></li><li data-type='method'><a href="Moving.html#removePlugin">removePlugin</a></li><li data-type='method'><a href="Moving.html#resetConfig">resetConfig</a></li><li data-type='method'><a href="Moving.html#setScreen">setScreen</a></li></ul></li><li><a href="ScreenManager.html">ScreenManager</a><ul class='methods'><li data-type='method'><a href="ScreenManager.html#clearHistory">clearHistory</a></li><li data-type='method'><a href="ScreenManager.html#configure">configure</a></li><li data-type='method'><a href="ScreenManager.html#destroy">destroy</a></li><li data-type='method'><a href="ScreenManager.html#findShortestPath">findShortestPath</a></li><li data-type='method'><a href="ScreenManager.html#getCurScreen">getCurScreen</a></li><li data-type='method'><a href="ScreenManager.html#getRelativeScreen">getRelativeScreen</a></li><li data-type='method'><a href="ScreenManager.html#popHistory">popHistory</a></li></ul></li><li><a href="ScreenModel.html">ScreenModel</a><ul class='methods'><li data-type='method'><a href="ScreenModel.html#.clearUpdateFn">clearUpdateFn</a></li><li data-type='method'><a href="ScreenModel.html#.configure">configure</a></li><li data-type='method'><a href="ScreenModel.html#.getMainScreen">getMainScreen</a></li><li data-type='method'><a href="ScreenModel.html#.registerUpdateFn">registerUpdateFn</a></li><li data-type='method'><a href="ScreenModel.html#.setMainScreen">setMainScreen</a></li><li data-type='method'><a href="ScreenModel.html#.unregisterUpdateFn">unregisterUpdateFn</a></li><li data-type='method'><a href="ScreenModel.html#childrenLength">childrenLength</a></li><li data-type='method'><a href="ScreenModel.html#defaultChildIndex">defaultChildIndex</a></li><li data-type='method'><a href="ScreenModel.html#defaultParentIndex">defaultParentIndex</a></li><li data-type='method'><a href="ScreenModel.html#getChild">getChild</a></li><li data-type='method'><a href="ScreenModel.html#getChildIndex">getChildIndex</a></li><li data-type='method'><a href="ScreenModel.html#getParent">getParent</a></li><li data-type='method'><a href="ScreenModel.html#getParentIndex">getParentIndex</a></li><li data-type='method'><a href="ScreenModel.html#html">html</a></li><li data-type='method'><a href="ScreenModel.html#isDirectedGraph">isDirectedGraph</a></li><li data-type='method'><a href="ScreenModel.html#isTemporary">isTemporary</a></li><li data-type='method'><a href="ScreenModel.html#parentsLength">parentsLength</a></li><li data-type='method'><a href="ScreenModel.html#pushChildren">pushChildren</a></li><li data-type='method'><a href="ScreenModel.html#pushParents">pushParents</a></li><li data-type='method'><a href="ScreenModel.html#removeChild">removeChild</a></li><li data-type='method'><a href="ScreenModel.html#removeParent">removeParent</a></li><li data-type='method'><a href="ScreenModel.html#resetChildren">resetChildren</a></li><li data-type='method'><a href="ScreenModel.html#resetParents">resetParents</a></li><li data-type='method'><a href="ScreenModel.html#sortChildren">sortChildren</a></li><li data-type='method'><a href="ScreenModel.html#sortParents">sortParents</a></li><li data-type='method'><a href="ScreenModel.html#toString">toString</a></li></ul></li><li><a href="SwipesControl.html">SwipesControl</a><ul class='methods'><li data-type='method'><a href="SwipesControl.html#configure">configure</a></li><li data-type='method'><a href="SwipesControl.html#destroy">destroy</a></li><li data-type='method'><a href="SwipesControl.html#disable">disable</a></li><li data-type='method'><a href="SwipesControl.html#enable">enable</a></li><li data-type='method'><a href="SwipesControl.html#isEnable">isEnable</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-Batch.html">Batch</a><ul class='methods'><li data-type='method'><a href="module-Batch.html#.animateWrongSide">animateWrongSide</a></li><li data-type='method'><a href="module-Batch.html#.configure">configure</a></li><li data-type='method'><a href="module-Batch.html#.move">move</a></li><li data-type='method'><a href="module-Batch.html#.moveBack">moveBack</a></li><li data-type='method'><a href="module-Batch.html#.reload">reload</a></li><li data-type='method'><a href="module-Batch.html#.removeAll">removeAll</a></li><li data-type='method'><a href="module-Batch.html#.setScreen">setScreen</a></li></ul></li><li><a href="module-Errors.html">Errors</a></li><li><a href="module-MainModule.html">MainModule</a></li><li><a href="module-RbManager.html">RbManager</a><ul class='methods'><li data-type='method'><a href="module-RbManager.html#.init">init</a></li><li data-type='method'><a href="module-RbManager.html#.remove">remove</a></li></ul></li><li><a href="module-Utils.html">Utils</a><ul class='methods'><li data-type='method'><a href="module-Utils.html#.capitalizeFirstLetter">capitalizeFirstLetter</a></li><li data-type='method'><a href="module-Utils.html#.cycledNumber">cycledNumber</a></li><li data-type='method'><a href="module-Utils.html#.getStartSide">getStartSide</a></li><li data-type='method'><a href="module-Utils.html#.inherite">inherite</a></li><li data-type='method'><a href="module-Utils.html#.mixin">mixin</a></li><li data-type='method'><a href="module-Utils.html#.mobileCheck">mobileCheck</a></li><li data-type='method'><a href="module-Utils.html#.nop">nop</a></li><li data-type='method'><a href="module-Utils.html#.oppositeSide">oppositeSide</a></li></ul></li></ul><h3>Interfaces</h3><ul><li><a href="IControl.html">IControl</a><ul class='methods'><li data-type='method'><a href="IControl.html#configure">configure</a></li><li data-type='method'><a href="IControl.html#destroy">destroy</a></li><li data-type='method'><a href="IControl.html#disable">disable</a></li><li data-type='method'><a href="IControl.html#enable">enable</a></li><li data-type='method'><a href="IControl.html#isEnable">isEnable</a></li></ul></li><li><a href="IPlugin.html">IPlugin</a><ul class='methods'><li data-type='method'><a href="IPlugin.html#configure">configure</a></li><li data-type='method'><a href="IPlugin.html#destroy">destroy</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">controlManager.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>define([], function() {
"use strict";
// todo может быть можно унаследовать от IPlugin?
// todo а почему это класс, а не модуль?
/**
* @class
* Менеджер управлений панелью.
* @constructor ControlManager
*/
function ControlManager() {
this._controls = {};
}
/**
* Добавляет экземпляр управления панелью к общему набору экземпляров, которыми можно управлять панелью.
* @param {string} id - название экземпляра управления панелью
* @param {IControl} control - добавляемый экземпляр управления панелью
* @param {boolean} [doEnable] - включать управление панелью при добавлении
* @returns {ControlManager} менеджер управления панелью
* @memberOf ControlManager
*/
ControlManager.prototype.add = function(id, control, doEnable) {
if (this._controls.hasOwnProperty(id)) {
console.log('ControlManager - add - control already exists: ' + id);
} else {
this._controls[id] = control;
if (doEnable) {
this.enable(id);
}
}
return this;
};
/**
* Удаляет экземпляр управления панелью из общего набора экземпляров
* @param {string} id - название экземпляра управления панелью
* @returns {ControlManager} менеджер управления панелью
* @memberOf ControlManager
*/
ControlManager.prototype.remove = function(id) {
if (this._controls.hasOwnProperty(id)) {
delete this._controls[id];
} else {
console.log('ControlManager - remove - control not found: ' + id);
}
return this;
};
/**
* Возвращает флаг, является ли экземпляр управления включенным.
* @param {string} id - название экземпляра
* @returns {boolean|null} - true если включен, false если выключен, null если не найден
* @memberOf ControlManager
*/
ControlManager.prototype.isEnable = function(id) {
if (this._controls.hasOwnProperty(id)) {
return this._controls[id].isEnable();
} else {
//todo выводить как-то иначе
console.log('ControlManager - isEnable - control not found: ' + id);
}
return null;
};
/**
* Включить экземпляр управления панелью.
* @param {string} id - название экземпляра
* @returns {ControlManager} менеджер управления панелью
* @memberOf ControlManager
*/
ControlManager.prototype.enable = function(id) {
if (this._controls.hasOwnProperty(id)) {
this._controls[id].enable();
} else {
console.log('ControlManager - enable - control not found: ' + id);
}
return this;
};
/**
* Выключить экземпляр управления панелью.
* @param {string} id - название экземпляра
* @returns {ControlManager} менеджер управления панелью
* @memberOf ControlManager
*/
ControlManager.prototype.disable = function(id) {
if (this._controls.hasOwnProperty(id)) {
this._controls[id].disable();
} else {
console.log('ControlManager - disable - control not found: ' + id);
}
return this;
};
ControlManager.prototype._doAll = function(isEnable) {
var res = {};
for (var id in this._controls) {
if (this._controls.hasOwnProperty(id)) {
res[id] = this.isEnable(id);
if (isEnable) {
this.enable(id);
} else {
this.disable(id);
}
}
}
return res;
};
/**
* Выключить все экземпляры управления панелью.
* @returns {Object.<string, boolean>} Объект, сопоставляющий название экземпляра управления со значением,
* был ли этот экземпляр включен перед применением функции.
* @see {@link ControlManager#enableByValues}
* @memberOf ControlManager
*/
ControlManager.prototype.disableAll = function() {
return this._doAll(false);
};
/**
* Включить все экземпляры управления панелью.
* @returns {Object.<string, boolean>} Объект, сопоставляющий название экземпляра управления со значением,
* был ли этот экземпляр включен перед применением функции.
* @see {@link ControlManager#enableByValues}
* @memberOf ControlManager
*/
ControlManager.prototype.enableAll = function() {
return this._doAll(true);
};
/**
* Функция включения экземпляров управления панелью по маске включения
* @param {Object.<string, boolean>} values - Объект, сопоставляющий название экземпляра управления с флагом,
* включать ли данный экземпляр управления или выключать.
* @returns {ControlManager} менеджер управления панелью
* @memberOf ControlManager
*/
ControlManager.prototype.enableByValues = function(values) {
for (var id in values) {
if (values.hasOwnProperty(id)) {
if (values[id]) {
this.enable(id);
} else {
this.disable(id);
}
}
}
return this;
};
/**
* Применить конфигурацию к панели. Применяет конфигурацию к списку экземпляров управления панелью.
* @param {Moving~config} config - конфигурация
* @memberOf ControlManager
* @see {@link IControl#configure}
*/
ControlManager.prototype.configure = function(config) {
for (var name in this._controls) {
if (this._controls.hasOwnProperty(name)) {
this._controls[name].configure(config);
}
}
};
/**
* Уничтожить экземпляр ControlManager
* @memberOf ControlManager
*/
ControlManager.prototype.destroy = function() {
this.disableAll();
this._controls = null;
};
return ControlManager;
});</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> using the Minami theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>