Basics are working

pull/39/head
Ruben Daniels 2015-02-17 04:11:06 +00:00
rodzic 727940c98e
commit 15dee3103e
4 zmienionych plików z 48 dodań i 22 usunięć

Wyświetl plik

@ -220,6 +220,9 @@ module.exports = function(options) {
autoInit: !options.local autoInit: !options.local
}, },
"plugins/c9.ide.ui/forms", "plugins/c9.ide.ui/forms",
"plugins/c9.ide.ui/widgets.list",
"plugins/c9.ide.ui/widgets.tree",
"plugins/c9.ide.ui/widgets.datagrid",
"plugins/c9.ide.ui/focus", "plugins/c9.ide.ui/focus",
"plugins/c9.ide.ui/lib_apf", "plugins/c9.ide.ui/lib_apf",

Wyświetl plik

@ -1,10 +1,12 @@
define(function(require, exports, module) { define(function(require, exports, module) {
main.consumes = ["Tree"]; main.consumes = ["Tree", "layout", "ui"];
main.provides = ["Datagrid"]; main.provides = ["Datagrid"];
return main; return main;
function main(options, imports, register) { function main(options, imports, register) {
var Tree = imports.Tree; var Tree = imports.Tree;
var layout = imports.layout;
var ui = imports.ui;
var TreeModel = require("ace_tree/data_provider"); var TreeModel = require("ace_tree/data_provider");
@ -22,10 +24,19 @@ define(function(require, exports, module) {
model.columns = options.columns; model.columns = options.columns;
options.model = model; options.model = model;
var plugin = new Tree(options, forPlugin); var plugin = new Tree(options, forPlugin, true);
// var emit = plugin.getEmitter(); // var emit = plugin.getEmitter();
if (baseclass) plugin.baseclass(); 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);
});
/** /**
*/ */
/** /**

Wyświetl plik

@ -27,7 +27,9 @@ define(function(require, exports, module) {
var model; var model;
var redirectEvents; var redirectEvents;
var meta = {}; var meta = {};
var excludedEvents = { "load":1, "unload":1 }; var excludedEvents = {
"load":1, "unload":1, "addListener":1, "removeListener":1
};
plugin.on("load", function(){ plugin.on("load", function(){
acetree = new AceTree(options.container); acetree = new AceTree(options.container);
@ -40,43 +42,44 @@ define(function(require, exports, module) {
for (var prop in options) { for (var prop in options) {
if (prop == "container") continue; if (prop == "container") continue;
if (plugin.hasOwnProperty(prop)) if (plugin.hasOwnProperty(prop))
plugin[prop](options[prop]); plugin[prop] = options[prop];
} }
// Configure redirected events // Configure redirected events
redirectEvents = { redirectEvents = {
scroll: acetree.provider, scroll: model,
scrollbarVisibilityChanged: acetree.renderer, scrollbarVisibilityChanged: acetree.renderer,
resize: acetree.renderer, resize: acetree.renderer,
expand: acetree.provider, expand: model,
collapse: acetree.provider collapse: model
}; };
}); });
plugin.on("unload", function(){ plugin.on("unload", function(){
acetree && acetree.destroy(); if (acetree) {
model.setRoot(null);
acetree = null; acetree.destroy();
model = null; acetree.container.innerHTML = "";
redirectEvents = null; }
meta = {}; meta = {};
}); });
plugin.on("newListener", function(type, fn){ plugin.on("newListener", function(type, fn){
if (excludedEvents[type]) return; if (excludedEvents[type]) return;
if (redirectEvents[type]) if (redirectEvents[type])
redirectEvents.on(type, fn); redirectEvents[type].on(type, fn);
else else
acetree.on(type, fn); acetree.on(type, fn);
}); });
plugin.on("removeListener", function(type, fn){ plugin.on("removeListener", function(type, fn){
if (excludedEvents[type]) return; if (excludedEvents[type]) return;
if (redirectEvents[type]) if (redirectEvents[type])
redirectEvents.removeListener(type, fn); redirectEvents[type].removeListener(type, fn);
else else
acetree.removeListener(type, fn); acetree.removeListener(type, fn);
}); });
/** /**
*
*/ */
/** /**
* @constructor * @constructor
@ -101,14 +104,15 @@ define(function(require, exports, module) {
* *
*/ */
get selectedNodes(){ get selectedNodes(){
return (acetree.selection.getCursor() return (acetree.selection.getSelectedNodes() || []);/*.map(function(n){
|| acetree.getFirstNode()) || null; return n.id;
}); */
}, },
/** /**
* *
*/ */
get selectedNode(){ get selectedNode(){
return acetree.selection.getSelectedNodes() || []; return (acetree.selection.getCursor() || null); //.id || null;
}, },
/** /**
* *
@ -117,7 +121,7 @@ define(function(require, exports, module) {
/** /**
* *
*/ */
get scrollTop(){ return acetree.provider.getScrollTop(); }, get scrollTop(){ return model.getScrollTop(); },
/** /**
* *
*/ */
@ -354,7 +358,7 @@ define(function(require, exports, module) {
* *
*/ */
setScrollTop: function(scrollTop){ setScrollTop: function(scrollTop){
return acetree.provider.setScrollTop(scrollTop); return model.setScrollTop(scrollTop);
}, },
/** /**
* *
@ -397,6 +401,12 @@ define(function(require, exports, module) {
*/ */
getIndexForNode: function(node){ getIndexForNode: function(node){
return model.getIndexForNode(node); return model.getIndexForNode(node);
},
/**
*
*/
refresh: function(){
plugin.setRoot(plugin.root);
} }
}); });

Wyświetl plik

@ -16,10 +16,12 @@ define(function(require, exports, module) {
if (!options.baseName) if (!options.baseName)
options.baseName = "tree"; options.baseName = "tree";
var model = new TreeModel(); if (!options.model) {
options.model = model; var model = new TreeModel();
options.model = model;
}
var plugin = new List(options, forPlugin); var plugin = new List(options, forPlugin, true);
// var emit = plugin.getEmitter(); // var emit = plugin.getEmitter();
if (baseclass) plugin.baseclass(); if (baseclass) plugin.baseclass();