diff --git a/node_modules/ace_tree/lib/ace_tree/mouse/drag_handler.js b/node_modules/ace_tree/lib/ace_tree/mouse/drag_handler.js index c4d15cec..10ddfcd9 100644 --- a/node_modules/ace_tree/lib/ace_tree/mouse/drag_handler.js +++ b/node_modules/ace_tree/lib/ace_tree/mouse/drag_handler.js @@ -246,7 +246,7 @@ function initDragHandlers(mouseHandler) { ch.style.opacity = "0.8"; el.style.position = "absolute"; - el.style.zIndex = "100000"; + el.style.zIndex = "1000000"; el.style.pointerEvents = "none"; el.style.overflow = "visible"; diff --git a/package.json b/package.json index aecacee0..68bb7b44 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "c9.ide.immediate": "#e9ba147cc2", "c9.ide.installer": "#24e7d6f399", "c9.ide.mount": "#32e79866ee", - "c9.ide.navigate": "#1ff8b463aa", + "c9.ide.navigate": "#eab638cc2f", "c9.ide.newresource": "#9a7464cc47", "c9.ide.openfiles": "#28a4f5af16", "c9.ide.preview": "#3c4dded23f", diff --git a/plugins/c9.ide.plugins/templates/plugin.simple/plugin.js b/plugins/c9.ide.plugins/templates/plugin.simple/plugin.js index 882ab27b..7562d231 100644 --- a/plugins/c9.ide.plugins/templates/plugin.simple/plugin.js +++ b/plugins/c9.ide.plugins/templates/plugin.simple/plugin.js @@ -4,6 +4,7 @@ define(function(require, exports, module) { return main; function main(options, imports, register) { + var Plugin = imports.Plugin; /***** Initialization *****/ diff --git a/plugins/c9.ide.ui/widgets.list.js b/plugins/c9.ide.ui/widgets.list.js index a9526b4a..1306b2a9 100644 --- a/plugins/c9.ide.ui/widgets.list.js +++ b/plugins/c9.ide.ui/widgets.list.js @@ -1,16 +1,18 @@ define(function(require, exports, module) { - main.consumes = ["Plugin", "ui"]; + main.consumes = ["Plugin", "ui", "util"]; main.provides = ["List"]; return main; function main(options, imports, register) { var Plugin = imports.Plugin; var ui = imports.ui; + var util = imports.util; var AceTree = require("ace_tree/tree"); var AceTreeEditor = require("ace_tree/edit"); var ListModel = require("ace_tree/list_data"); var TreeModel = require("ace_tree/data_provider"); + var search = require("../c9.ide.navigate/search"); ListModel.prototype.getEmptyMessage = function(){ return this.emptyMessage || ""; @@ -53,6 +55,7 @@ define(function(require, exports, module) { model = options.model || (dataType === "object" ? new TreeModel() : new ListModel()); + model.filterCaseInsensitive = true; if (!options.rowHeight) options.rowHeight = 23; @@ -172,7 +175,7 @@ define(function(require, exports, module) { /** * */ - get root(){ return model.root; }, + get root(){ return model.cachedRoot; }, /** * */ @@ -251,6 +254,36 @@ define(function(require, exports, module) { ? new AceTreeEditor(acetree) : null; }, + /** + * + */ + get filterKeyword(){ return model.keyword; }, + set filterKeyword(value){ + model.keyword = value; + if (!model.keyword) { + model.reKeyword = null; + model.setRoot(model.cachedRoot); + } + else { + model.reKeyword = new RegExp("(" + + util.escapeRegExp(model.keyword) + ")", 'i'); + var root = search.treeSearch( + model.cachedRoot.items || model.cachedRoot, + model.keyword, model.filterCaseInsensitive, + null, null, model.indexProperty); + model.setRoot(root); + } + }, + /** + * + */ + get filterCaseInsensitive(){ return model.filterCaseInsensitive; }, + set filterCaseInsensitive(value){ model.filterCaseInsensitive = value; }, + /** + * + */ + get filterProperty(){ return model.filterProperty; }, + set filterProperty(value){ model.filterProperty = value; }, /** * */ @@ -310,7 +343,11 @@ define(function(require, exports, module) { * */ get sort(){ return model.sort; }, - set sort(fn){ model.sort = fn; }, + set sort(fn){ + model.$sortNodes = fn ? true : false; + model.$sorted = fn ? true : false; + model.sort = fn; + }, /** * */ @@ -403,6 +440,7 @@ define(function(require, exports, module) { * */ setRoot: function(root){ + model.cachedRoot = root; return model.setRoot(root); }, /**