define(function(require, exports, module) { var oop = require("ace/lib/oop"); var TreeData = require("ace_tree/data_provider"); var DataProvider = function(root) { TreeData.call(this, root); this.rowHeight = 18; }; oop.inherits(DataProvider, TreeData); (function() { this.getChildren = function(node) { var children = node.items; var ch = children && children[0] && children[0]; if (ch) { var d = (node.$depth + 1) || 0; children.forEach(function(n) { n.$depth = d; n.parent = node; }); } if (this.$sortNodes && !node.$sorted) { children && this.sort(children); } return children; }; // this.getRowIndent = function(p){ // return !p.className ? 2 : p.className == "package" ? 1 : 0; // } this.hasChildren = function(node) { return node.items && node.items.length }; this.getCaptionHTML = function(node) { if (!node.name) return ""; return node.name.replace(this.reKeyword, "$1"); }; this.sort = function(children) { var compare = TreeData.alphanumCompare; return children.sort(function(a, b) { var aIsSpecial = a.noSelect; var bIsSpecial = b.noSelect; if (aIsSpecial && !bIsSpecial) return 1; if (!aIsSpecial && bIsSpecial) return -1; if (aIsSpecial && bIsSpecial) return a.index - b.index; return compare(a.name + "", b.name + ""); }); }; this.updateNode = function(node) { var isOpen = node.isOpen; this.close(node, null, true); if (isOpen) this.open(node, null, true); }; // this.getIconHTML = function(node) { // return node.isNew ? "" : ""; // }; this.getClassName = function(node) { return node.className || ""; }; }).call(DataProvider.prototype); return DataProvider; });