UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

180 lines (145 loc) • 5.39 kB
"use strict"; 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;