| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | /** * Created by Mai on 2017/4/1. */var TREE_SHEET_CONTROLLER = {    createNew: function (tree, sheet, setting) {        var controller = function () {            this.tree = tree;            this.sheet = sheet;            this.setting = setting;            this.event = {                refreshBaseActn: null,                treeSelectedChanged: null            };            TREE_SHEET_HELPER.loadSheetHeader(this.setting, this.sheet);        };        controller.prototype.showTreeData = function () {            var that = this;            TREE_SHEET_HELPER.showTreeData(this.setting, this.sheet, this.tree);            this.sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (e, info) {                that.setTreeSelected(that.tree.items[info.newSelections[0].row]);            });        };        controller.prototype.insert = function () {            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());                } else {                    newNode = this.tree.insert();                }                if (newNode) {                    TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                        that.sheet.addRows(newNode.serialNo(), 1);                        TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [newNode], false);                        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.insertByID = function (ID) {            var newNode = null, that = this,  sels = this.sheet.getSelections();            if (this.tree) {                if (this.tree.selected) {                    newNode = this.tree.insertByID(ID, this.tree.selected.getParentID(), this.tree.selected.getNextSiblingID());                } else {                    newNode = this.tree.insertByID(ID);                }                if (newNode) {                    TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                        that.sheet.addRows(newNode.serialNo(), 1);                        TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, [newNode], false);                        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, sels = this.sheet.getSelections();            if (this.tree.selected) {                if (this.tree.delete(this.tree.selected)) {                    TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                        that.sheet.deleteRows(sels[0].row, that.tree.selected.posterityCount() + 1);                        that.setTreeSelected(that.tree.items[sels[0].row]);                    });                }            }        };        controller.prototype.upLevel = function () {            var that = this;            if (this.tree.selected) {                if (this.tree.selected.upLevel()) {                    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);                        }                    });                }            }        };        controller.prototype.downLevel = function () {            var that = this;            if (this.tree.selected) {                if (this.tree.selected.downLevel()) {                    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, sels = this.sheet.getSelections();            if (this.tree.selected) {                if (this.tree.selected.upMove()) {                    TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                        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, sels = this.sheet.getSelections();            if (this.tree.selected) {                if (this.tree.selected.downMove()) {                    TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                        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.refreshTreeNode = function (nodes, recursive) {            var that = this;            TREE_SHEET_HELPER.massOperationSheet(this.sheet, function () {                TREE_SHEET_HELPER.refreshTreeNodeData(that.setting, that.sheet, nodes, recursive)            })        }        controller.prototype.setTreeSelected = function (node) {            if (this.event.beforeTreeSelectedChange) {                this.event.beforeTreeSelectedChange(this.tree.selected);            }            this.tree.selected = node;            if (this.event.refreshBaseActn) {                this.event.refreshBaseActn(this.tree);            }            if (this.event.treeSelectedChanged) {                this.event.treeSelectedChanged(this.tree.selected);            }        }        controller.prototype.bind = function (eventName, eventFun) {            this.event[eventName] = eventFun;        };        return new controller();    },    eventName: {        refreshBaseActn: 'refreshBaseActn',        beforeTreeSelectedChange: 'beforeTreeSelectedChange',        treeSelectedChanged: 'treeSelectedChanged',        cellDoubleClick: 'cellDoubleClick'    }};
 |