diff src/DML/MainVisBundle/Resources/assets/marionette/modules/MainRegionModule/MainRegionModule.02-ConfigGridView.js @ 0:493bcb69166c

added public content
author Daniel Wolff
date Tue, 09 Feb 2016 20:54:02 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/DML/MainVisBundle/Resources/assets/marionette/modules/MainRegionModule/MainRegionModule.02-ConfigGridView.js	Tue Feb 09 20:54:02 2016 +0100
@@ -0,0 +1,92 @@
+"use strict";
+
+App.module("MainRegionModule", function (MainRegionModule, App, Backbone, Marionette, $, _, Logger) {
+
+    MainRegionModule.ConfigGridView = Backbone.View.extend({
+
+        options: {
+            state: null,
+            configGrid: null,
+            parentState: null,
+            parentContainerElement: null
+        },
+
+        _cachedConfigGridType: null,
+
+        initialize: function(options) {
+            var _this = this;
+            _this.options = _.defaults(options || {}, this.options);
+
+            _this._cachedConfigGridType = _this.options.configGrid.getType();
+            _this.$el.setMod("config-grid", "type", _this._cachedConfigGridType);
+
+            // Remove the loader and other utility text
+            _this.$(".config-grid__utils").empty();
+
+            // Set up the header
+            _this._$header =  _this.$(".config-grid__header");
+            _this._$header.html($("#config-grid__header_type_" + _this._cachedConfigGridType).text());
+            _this._$header.click(function() {
+                _this.options.configGrid.set({
+                    selectedEntityConfigClientId: null,
+                    selectedViewConfigClientId: null
+                });
+            });
+
+            // Generate a ghost (an object that is shown when the view is being flipped)
+            _this.$ghost = _this.$el.clone();
+
+            // Init child views
+            _this.cellsView = new MainRegionModule.ConfigGridCellsView({
+                state: _this.options.state,
+                configGrid: _this.options.configGrid,
+                el: _this.$(".config-grid-cells"),
+                parentConfigGridView: _this
+            });
+
+            _this.entityPanelView = new MainRegionModule.ConfigGridPanelView({
+                el: _this.$(".config-grid-panel_dimension_entity"),
+                state: _this.options.state,
+                configGrid: _this.options.configGrid,
+                dimension: "entity",
+                parentConfigGridView: _this
+            });
+
+            _this.viewPanelView = new MainRegionModule.ConfigGridPanelView({
+                el: _this.$(".config-grid-panel_dimension_view"),
+                state: _this.options.state,
+                configGrid: _this.options.configGrid,
+                dimension: "view",
+                parentConfigGridView: _this
+            });
+
+            _this.cellsView.on("change-positions-of-selected-headers", _.throttle(function(entityHeaderLeft, entityHeaderWidth, viewHeaderTop, viewHeaderHeight) {
+                _this.entityPanelView.updateRadiusFixer(entityHeaderLeft, entityHeaderWidth);
+                _this.viewPanelView  .updateRadiusFixer(viewHeaderTop, viewHeaderHeight);
+            }, 100));
+        },
+
+        render: function (deep, instant) {
+            var _this = this;
+
+            if (deep) {
+                _this.cellsView.render(deep, instant);
+                _this.entityPanelView.render(deep, instant);
+                _this.viewPanelView.render(deep, instant);
+            }
+        },
+
+        isVisible: function() {
+            return !!this.el.getAttribute("data-active");
+        },
+
+        scrollAccordingToSelection: function(deep, instant) {
+            this.cellsView.scrollAccordingToSelection(deep, instant);
+        },
+
+        ignoreAxisOnNextScroll: function(x, y) {
+            this.cellsView._ignoreXOnNextScroll = !!x;
+            this.cellsView._ignoreYOnNextScroll = !!y;
+        }
+    });
+}, Logger);
\ No newline at end of file