+ },
+
+ /**
+ * Parse a string path and search if there is a root node.
+ * @param rootNode {qx.ui.tree.AbstractTreeItem} The parent node (containing data model)
+ * @param path {String} The path of the node to attach.
+ */
+ attachNodeByPath : function(rootNode, path, childNode){
+ if(!path || path=="" || path == "/" ){
+ rootNode.add(childNode);
+ return;
+ }
+ var model = rootNode.getUserData("dataModel");
+ if(!model){
+ model = {};
+ rootNode.setUserData("dataModel", model);
+ }
+ var parts = path.split("/");
+ var keys = qx.lang.Object.getKeys(model);
+ var crtPath = "/";
+ var crtFolder = rootNode;
+ for(var i=0;i<parts.length;i++){
+ if(parts[i] == "") continue;
+ crtPath += parts[i];
+ if(!model[parts[i]]) {
+ var virtualFolder = new qx.ui.tree.TreeFolder(parts[i]);
+ model[parts[i]] = virtualFolder;
+ crtFolder.add(virtualFolder);
+ crtFolder = virtualFolder;
+ }else{
+ crtFolder = model[parts[i]];
+ }
+ }
+ crtFolder.add(childNode);