From 90d214e9301acfd75d29c9408aefc04d0fb8c12c Mon Sep 17 00:00:00 2001 From: Charles du Jeu Date: Fri, 27 Feb 2009 13:58:05 +0000 Subject: [PATCH] A dynamic folder that will take a loader function as argument and then can be reloaded. git-svn-id: https://svn.argeo.org/slc/trunk@2196 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../argeo/ria/components/DynamicTreeFolder.js | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/ria/components/DynamicTreeFolder.js diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/ria/components/DynamicTreeFolder.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/ria/components/DynamicTreeFolder.js new file mode 100644 index 000000000..76509f3ef --- /dev/null +++ b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-src/class/org/argeo/ria/components/DynamicTreeFolder.js @@ -0,0 +1,107 @@ +/** + * A "dynamic" implementation of the standard TreeFolder class. + * + */ +qx.Class.define("org.argeo.ria.components.DynamicTreeFolder", { + extend : qx.ui.tree.TreeFolder, + + properties : { + "state" : { + check : "String", + init : "empty", + apply : "_applyState" + }, + "loadingString" : { + check : "String", + init : "Loading..." + }, + "loader" : { + check : "Function", + init : function(treeFolder){treeFolder.setLoaded();} + }, + "dragData": { + check : "Map", + init : {} + } + }, + + construct : function(label, loader, loadingString, dragData){ + this.base(arguments, label); + if(loader) this.setLoader(loader); + if(loadingString) this.setLoadingString(loadingString); + if(dragData) this.setDragData(dragData); + this.addListener("changeOpen", function(e){ + if(e.getData() && this.getState() == "loading"){ + this.load(); + } + }, this); + this.setState("loading"); + }, + + members : { + + add : function(varargs){ + this.base(arguments, varargs); + for (var i=0, l=arguments.length; i