diff --git a/plugins/c9.ide.layout.classic/themes/default-flat-light.less b/plugins/c9.ide.layout.classic/themes/default-flat-light.less index 12695989..94f91b0c 100644 --- a/plugins/c9.ide.layout.classic/themes/default-flat-light.less +++ b/plugins/c9.ide.layout.classic/themes/default-flat-light.less @@ -686,7 +686,7 @@ @datagrid-background: darken(#fbfbfb, @darken-chrome); @datagrid-heading-color: darken(#333, @darken-chrome); @datagrid-heading-background: darken(#f7f7f7, @darken-chrome); -@datagrid-heading-padding: 5px 4px 4px 7px; +@datagrid-heading-padding: 6px 4px 5px 7px; @datagrid-heading-border-color: darken(#ececec, @darken-chrome); @datagrid-heading-hover-color: darken(#333, @darken-chrome); @datagrid-heading-hover-background: darken(#ececec, @darken-chrome); diff --git a/plugins/c9.ide.ui/widgets.datagrid.js b/plugins/c9.ide.ui/widgets.datagrid.js index 852f2696..fbf087ee 100644 --- a/plugins/c9.ide.ui/widgets.datagrid.js +++ b/plugins/c9.ide.ui/widgets.datagrid.js @@ -28,14 +28,18 @@ define(function(require, exports, module) { // var emit = plugin.getEmitter(); if (baseclass) plugin.baseclass(); - layout.on("eachTheme", function(e){ - var cls = "." + plugin.theme + " .row"; - var height = parseInt(ui.getStyleRule(cls, "height"), 10) || 24; - // model.rowHeightInner = height - 1; - model.rowHeight = height; - - if (e.changed) plugin.resize(true); - }); + var acetree = plugin.acetree; + + if (!options.rowHeight) { + layout.on("eachTheme", function(e){ + var cls = "." + plugin.theme + " .row"; + var height = parseInt(ui.getStyleRule(cls, "height"), 10) || 23; + // model.rowHeightInner = height - 1; + model.rowHeight = height; + + if (e.changed) plugin.resize(true); + }); + } /** */ @@ -51,7 +55,13 @@ define(function(require, exports, module) { /** * */ - get columns(){ return model.columns; } + get columns(){ throw new Error("Columns can only be set.") }, + set columns(c){ + if (!acetree) return; + + model.columns = c; + acetree.renderer.setDataProvider(model); + } }); return plugin; diff --git a/plugins/c9.ide.ui/widgets.less b/plugins/c9.ide.ui/widgets.less index 4283f1c4..f70ce2f8 100644 --- a/plugins/c9.ide.ui/widgets.less +++ b/plugins/c9.ide.ui/widgets.less @@ -13,7 +13,7 @@ padding-left: 6px; height: @tree-row-height; } -.custom-tree.ace_tree.list .tree-row { +.custom-tree.ace_tree.ace-tree-list .tree-row { margin: 1px 0px 0px 0px; padding-left: 0; } @@ -59,11 +59,11 @@ display: inline-block; } -.custom-tree.ace_tree-icon { +.custom-tree .ace_tree-icon { width: 16px; height: 16px; padding: 0px; - margin: 0px 1px; + margin: 0px 3px 0 1px; background-repeat: no-repeat; } diff --git a/plugins/c9.ide.ui/widgets.list.js b/plugins/c9.ide.ui/widgets.list.js index 2d3c2714..a9526b4a 100644 --- a/plugins/c9.ide.ui/widgets.list.js +++ b/plugins/c9.ide.ui/widgets.list.js @@ -33,10 +33,16 @@ define(function(require, exports, module) { var model; var redirectEvents; var meta = {}; + var dataType = options.model ? "object" : options.dataType; var excludedEvents = { "draw": 1, "load":1, "unload":1, "addListener":1, "removeListener":1 }; + var renameEvents = { + "select": "changeSelection", + "afterRename": "rename", + "scroll": "changeScrollTop" + }; var drawn = false; function draw(htmlNode) { @@ -44,13 +50,16 @@ define(function(require, exports, module) { drawn = true; acetree = new AceTree(htmlNode); - model = options.model || (options.dataType === "object" + model = options.model || (dataType === "object" ? new TreeModel() : new ListModel()); + if (!options.rowHeight) + options.rowHeight = 23; + // Set Default Theme if (!options.theme) - options.theme = "custom-tree " + (options.baseName || "list"); + options.theme = "custom-tree ace-tree-" + (options.baseName || "list"); // Set model acetree.setDataProvider(model); @@ -77,6 +86,10 @@ define(function(require, exports, module) { plugin.on("load", function(){ if (options.container) plugin.attachTo(options.container); + + forPlugin.once("unload", function(){ + plugin.unload(); + }); }); plugin.on("unload", function(){ if (acetree) { @@ -92,6 +105,10 @@ define(function(require, exports, module) { }); plugin.on("newListener", function(type, fn){ if (excludedEvents[type]) return; + + if (renameEvents[type]) + type = renameEvents[type]; + if (redirectEvents[type]) redirectEvents[type].on(type, fn); else @@ -99,6 +116,10 @@ define(function(require, exports, module) { }); plugin.on("removeListener", function(type, fn){ if (excludedEvents[type]) return; + + if (renameEvents[type]) + type = renameEvents[type]; + if (redirectEvents[type]) redirectEvents[type].removeListener(type, fn); else @@ -136,15 +157,17 @@ define(function(require, exports, module) { * */ get selectedNodes(){ - return (acetree.selection.getSelectedNodes() || []);/*.map(function(n){ - return n.id; - }); */ + var sel = (acetree.selection.getSelectedNodes() || []); + return dataType == "object" + ? sel + : sel.map(function(n){ return n.id; }); }, /** * */ get selectedNode(){ - return (acetree.selection.getCursor() || null); //.id || null; + var item = (acetree.selection.getCursor() || null); + return dataType == "object" ? item : item.id; }, /** * @@ -154,6 +177,7 @@ define(function(require, exports, module) { * */ get scrollTop(){ return model.getScrollTop(); }, + set scrollTop(value){ return model.setScrollTop(value); }, /** * */ @@ -332,10 +356,6 @@ define(function(require, exports, module) { * @event folderDragEnter Fires */ "folderDragEnter", - /** - * @event drop Fires - */ - "drop", /** * @event dropOutside Fires */ @@ -364,10 +384,6 @@ define(function(require, exports, module) { * @event select Fires */ "select", - /** - * @event select Fires - */ - "select", /** * @event scroll Fires */ @@ -413,14 +429,8 @@ define(function(require, exports, module) { /** * */ - setScrollTop: function(scrollTop){ - return model.setScrollTop(scrollTop); - }, - /** - * - */ - startRename: function(node){ - return acetree.edit.startRename(node); + startRename: function(node, column){ + return acetree.edit.startRename(node, column); }, /** *