devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
180 lines (145 loc) • 5.39 kB
JavaScript
var registerComponent = require("../../core/component_registrator"),
commonUtils = require("../../core/utils/common"),
typeUtils = require("../../core/utils/type"),
each = require("../../core/utils/iterator").each,
extend = require("../../core/utils/extend").extend,
Widget = require("../widget/ui.widget"),
treeListCore = require("./ui.tree_list.core"),
themes = require("../themes"),
callModuleItemsMethod = treeListCore.callModuleItemsMethod;
var DATAGRID_ROW_SELECTOR = ".dx-row",
TREELIST_CLASS = "dx-treelist";
require("./ui.tree_list.column_headers");
require("./ui.tree_list.columns_controller");
require("./ui.tree_list.data_controller");
require("./ui.tree_list.sorting");
require("./ui.tree_list.rows");
require("./ui.tree_list.context_menu");
require("./ui.tree_list.error_handling");
require("./ui.tree_list.grid_view");
require("./ui.tree_list.header_panel");
treeListCore.registerModulesOrder(["stateStoring", "columns", "selection", "editorFactory", "columnChooser", "editing", "grouping", "masterDetail", "validating", "adaptivity", "data", "virtualScrolling", "columnHeaders", "filterRow", "headerPanel", "headerFilter", "sorting", "search", "rows", "pager", "columnsResizingReordering", "contextMenu", "keyboardNavigation", "errorHandling", "summary", "columnFixing", "export", "gridView"]);
var TreeList = Widget.inherit({
_activeStateUnit: DATAGRID_ROW_SELECTOR,
_getDefaultOptions: function _getDefaultOptions() {
var that = this,
result = that.callBase();
each(treeListCore.modules, function () {
if (typeUtils.isFunction(this.defaultOptions)) {
extend(true, result, this.defaultOptions());
}
});
return result;
},
_defaultOptionsRules: function _defaultOptionsRules() {
return this.callBase().concat([{
device: function device() {
return themes.isMaterial();
},
options: {
/**
* @name GridBaseOptions.showRowLines
* @publicName showRowLines
* @type boolean
* @default true @for Material
*/
showRowLines: true,
/**
* @name GridBaseOptions.showColumnLines
* @publicName showColumnLines
* @type boolean
* @default false @for Material
*/
showColumnLines: false,
/**
* @name GridBaseOptions.headerFilter.height
* @publicName height
* @type number
* @default 315 @for Material
*/
headerFilter: {
height: 315
},
/**
* @name GridBaseOptions.editing.useIcons
* @publicName useIcons
* @type boolean
* @default true @for Material
*/
editing: {
useIcons: true
}
}
}]);
},
_init: function _init() {
var that = this;
that.callBase();
treeListCore.processModules(that, treeListCore);
callModuleItemsMethod(that, "init");
},
_clean: commonUtils.noop,
_optionChanged: function _optionChanged(args) {
var that = this;
callModuleItemsMethod(that, "optionChanged", [args]);
if (!args.handled) {
that.callBase(args);
}
},
_dimensionChanged: function _dimensionChanged() {
this.updateDimensions(true);
},
_visibilityChanged: function _visibilityChanged(visible) {
if (visible) {
this.updateDimensions();
}
},
_initMarkup: function _initMarkup() {
this.callBase.apply(this, arguments);
this.$element().addClass(TREELIST_CLASS);
this.getView("gridView").render(this.$element());
},
_renderContentImpl: function _renderContentImpl() {
this.getView("gridView").update();
},
_renderContent: function _renderContent() {
var that = this;
commonUtils.deferRender(function () {
that._renderContentImpl();
});
},
_dispose: function _dispose() {
var that = this;
that.callBase();
callModuleItemsMethod(that, "dispose");
},
isReady: function isReady() {
return this.getController("data").isReady();
},
beginUpdate: function beginUpdate() {
var that = this;
that.callBase();
callModuleItemsMethod(that, "beginUpdate");
},
endUpdate: function endUpdate() {
var that = this;
callModuleItemsMethod(that, "endUpdate");
that.callBase();
},
getController: function getController(name) {
return this._controllers[name];
},
getView: function getView(name) {
return this._views[name];
},
focus: function focus(element) {
this.callBase();
if (typeUtils.isDefined(element)) {
this.getController("keyboardNavigation").focus(element);
}
}
});
TreeList.registerModule = treeListCore.registerModule.bind(treeListCore);
registerComponent("dxTreeList", TreeList);
module.exports = TreeList;
;