فهرست منبع

idTree事件调整

MaiXinRong 8 سال پیش
والد
کامیت
e47615b7a9
4فایلهای تغییر یافته به همراه46 افزوده شده و 43 حذف شده
  1. 3 12
      public/web/idTree.js
  2. 32 24
      public/web/tree_sheet_controller.js
  3. 8 7
      web/main/html/main.html
  4. 3 0
      web/main/js/models/cache_tree.js

+ 3 - 12
public/web/idTree.js

@@ -205,16 +205,7 @@ var idTree = {
         };*/
         Node.prototype.serialNo = function () {
             return this.tree.items.indexOf(this);
-        }
-        /*Node.prototype.serialNo = function () {
-            if (this.preSibling) {
-                return this.preSibling.serialNo() + this.preSibling.posterityCount() + 1;
-            } else if (this.parent) {
-                return this.parent.serialNo() + 1;
-            } else {
-                return 0;
-            }
-        };*/
+        };
 
         Node.prototype.addChild = function (node) {
             var preSibling = this.children.length === 0 ? null : this.children[this.children.length - 1];
@@ -450,7 +441,7 @@ var idTree = {
             return success;
         };
 
-        Tree.prototype.editedData = function (field, id, newText) {
+        /*Tree.prototype.editedData = function (field, id, newText) {
             var node = this.findNode(id), result = {allow: false, nodes: []};
             if (this.event[this.eventType.editedData]) {
                 return this.event[this.eventType.editedData](field, node.data);
@@ -459,7 +450,7 @@ var idTree = {
                 result.allow = true;
                 return result;
             }
-        };
+        };*/
 
         Tree.prototype.bind = function (eventName, eventFun) {
             this.event[eventName] = eventFun;

+ 32 - 24
public/web/tree_sheet_controller.js

@@ -9,7 +9,7 @@ var TREE_SHEET_CONTROLLER = {
             this.sheet = sheet;
             this.setting = setting;
             this.event = {
-                treeSelectedChanged: null
+                refreshBaseActn: null
             }
         };
 
@@ -19,13 +19,10 @@ var TREE_SHEET_CONTROLLER = {
             TREE_SHEET_HELPER.showTreeData(this.setting, this.sheet, this.tree);
 
             this.sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (e, info) {
-                that.tree.selected = that.tree.findNode(info.sheet.getTag(info.newSelections[0].row, info.newSelections[0].col));
-                if (that.event.treeSelectedChanged) {
-                    that.event.treeSelectedChanged(that.tree.selected);
-                }
+                that.setTreeSelected(that.tree.findNode(info.sheet.getTag(info.newSelections[0].row, info.newSelections[0].col)));
             });
 
-            this.sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, args) {
+            /*this.sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, args) {
                 var result = tree.editedData(setting.cols[args.col].data.field, args.sheet.getTag(args.row, args.col), args.editingText);
 
                 if (result.allow) {
@@ -33,11 +30,11 @@ var TREE_SHEET_CONTROLLER = {
                 } else {
                     TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [tree.findNode(args.sheet.getTag(args.row, args.col))], false);
                 };
-            });
+            });*/
         };
 
         controller.prototype.insert = function () {
-            var newNode = null, that = this;
+            var newNode = null, that = this,  sels = this.sheet.getSelections();
             if (this.tree) {
                 if (this.tree.selected) {
                     newNode = this.tree.insert(this.tree.selected.getParentID(), this.tree.selected.getNextSiblingID());
@@ -46,26 +43,22 @@ var TREE_SHEET_CONTROLLER = {
                 }
                 if (newNode) {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
-                        var sels = that.sheet.getSelections();
-                        var iRow = sels[0].row, newNodeRow = that.tree.selected ? iRow + that.tree.selected.posterityCount() + 1 : iRow;
-                        that.sheet.addRows(newNodeRow, 1);
+                        that.sheet.addRows(newNode.serialNo(), 1);
                         TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [newNode], false);
-                        that.tree.selected = newNode;
+                        that.setTreeSelected(newNode);
                         that.sheet.setSelection(newNode.serialNo(), sels[0].col, 1, 1);
                         that.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center)
-                    })
+                    });
                 }
             }
         };
         controller.prototype.delete = function () {
-            var that = this;
+            var that = this, sels = this.sheet.getSelections();
             if (this.tree.selected) {
                 if (this.tree.delete(this.tree.selected)) {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
-                        var sels = that.sheet.getSelections();
-                        var iRow = sels[0].row;
-                        that.sheet.deleteRows(iRow, that.tree.selected.posterityCount() + 1);
-                        that.tree.selected = that.tree.findNode(that.sheet.getTag(iRow, 0, GC.Spread.Sheets.SheetArea.viewport));
+                        that.sheet.deleteRows(sels[0].row, that.tree.selected.posterityCount() + 1);
+                        that.setTreeSelected(that.tree.findNode(that.sheet.getTag(sels[0].row, 0, GC.Spread.Sheets.SheetArea.viewport)));
                     });
                 }
             }
@@ -77,6 +70,9 @@ var TREE_SHEET_CONTROLLER = {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
                         TREE_SHEET_HELPER.refreshNodesVisible([that.tree.selected], that.sheet, true);
                         that.sheet.showRow(that.tree.selected.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+                        if (that.event.refreshBaseActn) {
+                            that.event.refreshBaseActn(that.tree);
+                        }
                     });
                 }
             }
@@ -88,37 +84,49 @@ var TREE_SHEET_CONTROLLER = {
                     TREE_SHEET_HELPER.massOperationSheet(that.sheet, function () {
                         TREE_SHEET_HELPER.refreshNodesVisible([that.tree.selected.parent], that.sheet, true);
                         that.sheet.showRow(that.tree.selected.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+                        if (that.event.refreshBaseActn) {
+                            that.event.refreshBaseActn(that.tree);
+                        }
                     });
                 }
             }
         };
         controller.prototype.upMove = function () {
-            var that = this;
+            var that = this, sels = this.sheet.getSelections();
             if (this.tree.selected) {
                 if (this.tree.selected.upMove()) {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
-                        var sels = that.sheet.getSelections();
-                        var iRow = sels[0].row;
                         TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [that.tree.selected, that.tree.selected.nextSibling], true);
                         that.sheet.setSelection(that.tree.selected.serialNo(), sels[0].col, 1, 1);
+                        if (that.event.refreshBaseActn) {
+                            that.event.refreshBaseActn(that.tree);
+                        }
                     });
                 }
             }
         };
         controller.prototype.downMove = function () {
-            var that = this;
+            var that = this, sels = this.sheet.getSelections();
             if (this.tree.selected) {
                 if (this.tree.selected.downMove()) {
                     TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {
-                        var sels = that.sheet.getSelections();
-                        var iRow = sels[0].row;
                         TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [that.tree.selected, that.tree.selected.preSibling], true);
                         that.sheet.setSelection(that.tree.selected.serialNo(), sels[0].col, 1, 1);
+                        if (that.event.refreshBaseActn) {
+                            that.event.refreshBaseActn(that.tree);
+                        }
                     });
                 }
             }
         };
 
+        controller.prototype.setTreeSelected = function (node) {
+            this.tree.selected = node;
+            if (this.event.refreshBaseActn) {
+                this.event.refreshBaseActn(this.tree);
+            }
+        }
+
         controller.prototype.bind = function (eventName, eventFun) {
             this.event[eventName] = eventFun;
         };

+ 8 - 7
web/main/html/main.html

@@ -619,9 +619,10 @@
         project.Rations.loadDatas(drawing_data);
         project.mainTree.loadDatas(project.Bills.tree, project.Rations.datas);
 
-        controller = TREE_SHEET_CONTROLLER.createNew(project.mainTree, billsSpread.getActiveSheet(), BillsGridSetting);
+        //controller = TREE_SHEET_CONTROLLER.createNew(project.mainTree, billsSpread.getActiveSheet(), BillsGridSetting);
+        controller = TREE_SHEET_CONTROLLER.createNew(project.Bills.tree, billsSpread.getActiveSheet(), BillsGridSetting);
         controller.showTreeData();
-        controller.bind('treeSelectedChanged', function (selected) {
+        controller.bind('refreshBaseActn', function (tree) {
             var showButton = function (show, btn) {
                 if (show) {
                     btn.show();
@@ -629,11 +630,11 @@
                     btn.hide();
                 }
             };
-            showButton(selected && selected.canUpLevel(), $('#upLevel'));
-            showButton(selected && selected.canDownLevel(), $('#downLevel'));
-            showButton(selected && selected.canUpMove(), $('#upMove'));
-            showButton(selected && selected.canDownMove(), $('#downMove'));
-            showButton(selected ? true : false, $('#delete'));
+            showButton(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
+            showButton(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
+            showButton(tree.selected && tree.selected.canUpMove(), $('#upMove'));
+            showButton(tree.selected && tree.selected.canDownMove(), $('#downMove'));
+            showButton(tree.selected ? true : false, $('#delete'));
         });
 
         $('#insert').click(function () {

+ 3 - 0
web/main/js/models/cache_tree.js

@@ -3,6 +3,9 @@
  */
 var cacheTree = {
     createNew: function (owner) {
+        var _eventType = {
+            afterSelectedChanged: 'afterSelectedChanged'
+        };
         var tools = {
             findNode: function (nodes, check) {
                 for (var i = 0; i < nodes.length; i++) {