Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
85 lines
2.6 KiB
JavaScript
Executable file
85 lines
2.6 KiB
JavaScript
Executable file
/**
|
|
* The module initializes a ListView displaying all enabled layouts.
|
|
* Implementation details please refer to {@link KeyboardEnabledLayoutsCore}.
|
|
*
|
|
* @module keyboard/enabled_layouts
|
|
*/
|
|
define(function(require) {
|
|
'use strict';
|
|
|
|
var ListView = require('modules/mvvm/list_view');
|
|
|
|
/**
|
|
* @alias module:keyboard/enabled_layouts
|
|
* @class KeyboardEnabledLayoutsCore
|
|
* @requires module:modules/mvvm/list_view
|
|
* @param {KeyboardContext} context
|
|
The kyboard context providing enabled layouts.
|
|
* @param {Function} template
|
|
The template function used to render a layout.
|
|
* @returns {KeyboardEnabledLayoutsCore}
|
|
*/
|
|
function KeyboardEnabledLayoutsCore(context, template) {
|
|
this._enabled = false;
|
|
this._listView = null;
|
|
this._keyboardContext = context;
|
|
this._layoutTemplate = template;
|
|
}
|
|
|
|
KeyboardEnabledLayoutsCore.prototype = {
|
|
/**
|
|
* The value indicates whether the module is responding. If it is false, the
|
|
* UI stops reflecting the updates from the keyboard context.
|
|
*
|
|
* @access public
|
|
* @memberOf KeyboardEnabledLayoutsCore.prototype
|
|
* @type {Boolean}
|
|
*/
|
|
get enabled() {
|
|
return this._enabled;
|
|
},
|
|
|
|
set enabled(value) {
|
|
this._enabled = value;
|
|
if (this._listView) {
|
|
this._listView.enabled = this._enabled;
|
|
}
|
|
},
|
|
|
|
/**
|
|
* @access private
|
|
* @memberOf KeyboardAddLayoutsCore.prototype
|
|
* @param {HTMLElement} listViewRoot
|
|
* @param {ObservableArray} layouts
|
|
* @param {Function} layoutTemplate
|
|
*/
|
|
_initEnabledLayoutListView:
|
|
function kepl_initListView(listViewRoot, layouts, layoutTemplate) {
|
|
this._listView = ListView(listViewRoot, layouts, layoutTemplate);
|
|
},
|
|
|
|
/**
|
|
* @access public
|
|
* @memberOf KeyboardEnabledLayoutsCore.prototype
|
|
* @param {Array} elements
|
|
* Elements needed by this module.
|
|
* @param {HTMLElement} elements.listViewRoot
|
|
* The root element for the list view displaying the
|
|
* installed keyboards.
|
|
*/
|
|
init: function kepl_onInit(elements) {
|
|
var that = this;
|
|
this._keyboardContext.init(function() {
|
|
that._keyboardContext.enabledLayouts(function(layouts) {
|
|
that._initEnabledLayoutListView(
|
|
elements.listViewRoot, layouts, that._layoutTemplate);
|
|
that.enabled = true;
|
|
});
|
|
});
|
|
}
|
|
};
|
|
|
|
return function ctor_keplCore(context, template) {
|
|
return new KeyboardEnabledLayoutsCore(context, template);
|
|
};
|
|
});
|