You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/07/16 21:14:56 UTC
svn commit: r794787 [28/34] - in
/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src: ./
animation/ cal/ charting/ charting/svg/ charting/vml/ collections/ crypto/
data/ data/core/ data/old/ data/old/format/ data/old/provider/ date/
debug/...
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,154 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeBasicController");
+dojo.require("dojo.event.*");
+dojo.require("dojo.json");
+dojo.require("dojo.io.*");
+dojo.widget.defineWidget("dojo.widget.TreeBasicController", dojo.widget.HtmlWidget, {widgetType:"TreeBasicController", DNDController:"", dieWithTree:false, initialize:function (args, frag) {
+ if (this.DNDController == "create") {
+ dojo.require("dojo.dnd.TreeDragAndDrop");
+ this.DNDController = new dojo.dnd.TreeDNDController(this);
+ }
+}, listenTree:function (tree) {
+ dojo.event.topic.subscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");
+ dojo.event.topic.subscribe(tree.eventNames.treeClick, this, "onTreeClick");
+ dojo.event.topic.subscribe(tree.eventNames.treeCreate, this, "onTreeCreate");
+ dojo.event.topic.subscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");
+ if (this.DNDController) {
+ this.DNDController.listenTree(tree);
+ }
+}, unlistenTree:function (tree) {
+ dojo.event.topic.unsubscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");
+ dojo.event.topic.unsubscribe(tree.eventNames.treeClick, this, "onTreeClick");
+ dojo.event.topic.unsubscribe(tree.eventNames.treeCreate, this, "onTreeCreate");
+ dojo.event.topic.unsubscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");
+}, onTreeDestroy:function (message) {
+ var tree = message.source;
+ this.unlistenTree(tree);
+ if (this.dieWithTree) {
+ this.destroy();
+ }
+}, onCreateDOMNode:function (message) {
+ var node = message.source;
+ if (node.expandLevel > 0) {
+ this.expandToLevel(node, node.expandLevel);
+ }
+}, onTreeCreate:function (message) {
+ var tree = message.source;
+ var _this = this;
+ if (tree.expandLevel) {
+ dojo.lang.forEach(tree.children, function (child) {
+ _this.expandToLevel(child, tree.expandLevel - 1);
+ });
+ }
+}, expandToLevel:function (node, level) {
+ if (level == 0) {
+ return;
+ }
+ var children = node.children;
+ var _this = this;
+ var handler = function (node, expandLevel) {
+ this.node = node;
+ this.expandLevel = expandLevel;
+ this.process = function () {
+ for (var i = 0; i < this.node.children.length; i++) {
+ var child = node.children[i];
+ _this.expandToLevel(child, this.expandLevel);
+ }
+ };
+ };
+ var h = new handler(node, level - 1);
+ this.expand(node, false, h, h.process);
+}, onTreeClick:function (message) {
+ var node = message.source;
+ if (node.isLocked()) {
+ return false;
+ }
+ if (node.isExpanded) {
+ this.collapse(node);
+ } else {
+ this.expand(node);
+ }
+}, expand:function (node, sync, callObj, callFunc) {
+ node.expand();
+ if (callFunc) {
+ callFunc.apply(callObj, [node]);
+ }
+}, collapse:function (node) {
+ node.collapse();
+}, canMove:function (child, newParent) {
+ if (child.actionIsDisabled(child.actions.MOVE)) {
+ return false;
+ }
+ if (child.parent !== newParent && newParent.actionIsDisabled(newParent.actions.ADDCHILD)) {
+ return false;
+ }
+ var node = newParent;
+ while (node.isTreeNode) {
+ if (node === child) {
+ return false;
+ }
+ node = node.parent;
+ }
+ return true;
+}, move:function (child, newParent, index) {
+ if (!this.canMove(child, newParent)) {
+ return false;
+ }
+ var result = this.doMove(child, newParent, index);
+ if (!result) {
+ return result;
+ }
+ if (newParent.isTreeNode) {
+ this.expand(newParent);
+ }
+ return result;
+}, doMove:function (child, newParent, index) {
+ child.tree.move(child, newParent, index);
+ return true;
+}, canRemoveNode:function (child) {
+ if (child.actionIsDisabled(child.actions.REMOVE)) {
+ return false;
+ }
+ return true;
+}, removeNode:function (node, callObj, callFunc) {
+ if (!this.canRemoveNode(node)) {
+ return false;
+ }
+ return this.doRemoveNode(node, callObj, callFunc);
+}, doRemoveNode:function (node, callObj, callFunc) {
+ node.tree.removeNode(node);
+ if (callFunc) {
+ callFunc.apply(dojo.lang.isUndefined(callObj) ? this : callObj, [node]);
+ }
+}, canCreateChild:function (parent, index, data) {
+ if (parent.actionIsDisabled(parent.actions.ADDCHILD)) {
+ return false;
+ }
+ return true;
+}, createChild:function (parent, index, data, callObj, callFunc) {
+ if (!this.canCreateChild(parent, index, data)) {
+ return false;
+ }
+ return this.doCreateChild.apply(this, arguments);
+}, doCreateChild:function (parent, index, data, callObj, callFunc) {
+ var widgetType = data.widgetType ? data.widgetType : "TreeNode";
+ var newChild = dojo.widget.createWidget(widgetType, data);
+ parent.addChild(newChild, index);
+ this.expand(parent);
+ if (callFunc) {
+ callFunc.apply(callObj, [newChild]);
+ }
+ return newChild;
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicController.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,461 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeBasicControllerV3");
+dojo.require("dojo.event.*");
+dojo.require("dojo.json");
+dojo.require("dojo.io.*");
+dojo.require("dojo.widget.TreeCommon");
+dojo.require("dojo.widget.TreeNodeV3");
+dojo.require("dojo.widget.TreeV3");
+dojo.widget.defineWidget("dojo.widget.TreeBasicControllerV3", [dojo.widget.HtmlWidget, dojo.widget.TreeCommon], function () {
+ this.listenedTrees = {};
+}, {listenTreeEvents:["afterSetFolder", "afterTreeCreate", "beforeTreeDestroy"], listenNodeFilter:function (elem) {
+ return elem instanceof dojo.widget.Widget;
+}, editor:null, initialize:function (args) {
+ if (args.editor) {
+ this.editor = dojo.widget.byId(args.editor);
+ this.editor.controller = this;
+ }
+}, getInfo:function (elem) {
+ return elem.getInfo();
+}, onBeforeTreeDestroy:function (message) {
+ this.unlistenTree(message.source);
+}, onAfterSetFolder:function (message) {
+ if (message.source.expandLevel > 0) {
+ this.expandToLevel(message.source, message.source.expandLevel);
+ }
+ if (message.source.loadLevel > 0) {
+ this.loadToLevel(message.source, message.source.loadLevel);
+ }
+}, _focusNextVisible:function (nodeWidget) {
+ if (nodeWidget.isFolder && nodeWidget.isExpanded && nodeWidget.children.length > 0) {
+ returnWidget = nodeWidget.children[0];
+ } else {
+ while (nodeWidget.isTreeNode && nodeWidget.isLastChild()) {
+ nodeWidget = nodeWidget.parent;
+ }
+ if (nodeWidget.isTreeNode) {
+ var returnWidget = nodeWidget.parent.children[nodeWidget.getParentIndex() + 1];
+ }
+ }
+ if (returnWidget && returnWidget.isTreeNode) {
+ this._focusLabel(returnWidget);
+ return returnWidget;
+ }
+}, _focusPreviousVisible:function (nodeWidget) {
+ var returnWidget = nodeWidget;
+ if (!nodeWidget.isFirstChild()) {
+ var previousSibling = nodeWidget.parent.children[nodeWidget.getParentIndex() - 1];
+ nodeWidget = previousSibling;
+ while (nodeWidget.isFolder && nodeWidget.isExpanded && nodeWidget.children.length > 0) {
+ returnWidget = nodeWidget;
+ nodeWidget = nodeWidget.children[nodeWidget.children.length - 1];
+ }
+ } else {
+ nodeWidget = nodeWidget.parent;
+ }
+ if (nodeWidget && nodeWidget.isTreeNode) {
+ returnWidget = nodeWidget;
+ }
+ if (returnWidget && returnWidget.isTreeNode) {
+ this._focusLabel(returnWidget);
+ return returnWidget;
+ }
+}, _focusZoomIn:function (nodeWidget) {
+ var returnWidget = nodeWidget;
+ if (nodeWidget.isFolder && !nodeWidget.isExpanded) {
+ this.expand(nodeWidget);
+ } else {
+ if (nodeWidget.children.length > 0) {
+ nodeWidget = nodeWidget.children[0];
+ }
+ }
+ if (nodeWidget && nodeWidget.isTreeNode) {
+ returnWidget = nodeWidget;
+ }
+ if (returnWidget && returnWidget.isTreeNode) {
+ this._focusLabel(returnWidget);
+ return returnWidget;
+ }
+}, _focusZoomOut:function (node) {
+ var returnWidget = node;
+ if (node.isFolder && node.isExpanded) {
+ this.collapse(node);
+ } else {
+ node = node.parent;
+ }
+ if (node && node.isTreeNode) {
+ returnWidget = node;
+ }
+ if (returnWidget && returnWidget.isTreeNode) {
+ this._focusLabel(returnWidget);
+ return returnWidget;
+ }
+}, onFocusNode:function (e) {
+ var node = this.domElement2TreeNode(e.target);
+ if (node) {
+ node.viewFocus();
+ dojo.event.browser.stopEvent(e);
+ }
+}, onBlurNode:function (e) {
+ var node = this.domElement2TreeNode(e.target);
+ if (!node) {
+ return;
+ }
+ var labelNode = node.labelNode;
+ labelNode.setAttribute("tabIndex", "-1");
+ node.viewUnfocus();
+ dojo.event.browser.stopEvent(e);
+ node.tree.domNode.setAttribute("tabIndex", "0");
+}, _focusLabel:function (node) {
+ var lastFocused = node.tree.lastFocused;
+ var labelNode;
+ if (lastFocused && lastFocused.labelNode) {
+ labelNode = lastFocused.labelNode;
+ dojo.event.disconnect(labelNode, "onblur", this, "onBlurNode");
+ labelNode.setAttribute("tabIndex", "-1");
+ dojo.html.removeClass(labelNode, "TreeLabelFocused");
+ }
+ labelNode = node.labelNode;
+ labelNode.setAttribute("tabIndex", "0");
+ node.tree.lastFocused = node;
+ dojo.html.addClass(labelNode, "TreeLabelFocused");
+ dojo.event.connectOnce(labelNode, "onblur", this, "onBlurNode");
+ dojo.event.connectOnce(labelNode, "onfocus", this, "onFocusNode");
+ labelNode.focus();
+}, onKey:function (e) {
+ if (!e.key || e.ctrkKey || e.altKey) {
+ return;
+ }
+ var nodeWidget = this.domElement2TreeNode(e.target);
+ if (!nodeWidget) {
+ return;
+ }
+ var treeWidget = nodeWidget.tree;
+ if (treeWidget.lastFocused && treeWidget.lastFocused.labelNode) {
+ nodeWidget = treeWidget.lastFocused;
+ }
+ switch (e.key) {
+ case e.KEY_TAB:
+ if (e.shiftKey) {
+ treeWidget.domNode.setAttribute("tabIndex", "-1");
+ }
+ break;
+ case e.KEY_RIGHT_ARROW:
+ this._focusZoomIn(nodeWidget);
+ dojo.event.browser.stopEvent(e);
+ break;
+ case e.KEY_LEFT_ARROW:
+ this._focusZoomOut(nodeWidget);
+ dojo.event.browser.stopEvent(e);
+ break;
+ case e.KEY_UP_ARROW:
+ this._focusPreviousVisible(nodeWidget);
+ dojo.event.browser.stopEvent(e);
+ break;
+ case e.KEY_DOWN_ARROW:
+ this._focusNextVisible(nodeWidget);
+ dojo.event.browser.stopEvent(e);
+ break;
+ }
+}, onFocusTree:function (e) {
+ if (!e.currentTarget) {
+ return;
+ }
+ try {
+ var treeWidget = this.getWidgetByNode(e.currentTarget);
+ if (!treeWidget || !treeWidget.isTree) {
+ return;
+ }
+ var nodeWidget = this.getWidgetByNode(treeWidget.domNode.firstChild);
+ if (nodeWidget && nodeWidget.isTreeNode) {
+ if (treeWidget.lastFocused && treeWidget.lastFocused.isTreeNode) {
+ nodeWidget = treeWidget.lastFocused;
+ }
+ this._focusLabel(nodeWidget);
+ }
+ }
+ catch (e) {
+ }
+}, onAfterTreeCreate:function (message) {
+ var tree = message.source;
+ dojo.event.browser.addListener(tree.domNode, "onKey", dojo.lang.hitch(this, this.onKey));
+ dojo.event.browser.addListener(tree.domNode, "onmousedown", dojo.lang.hitch(this, this.onTreeMouseDown));
+ dojo.event.browser.addListener(tree.domNode, "onclick", dojo.lang.hitch(this, this.onTreeClick));
+ dojo.event.browser.addListener(tree.domNode, "onfocus", dojo.lang.hitch(this, this.onFocusTree));
+ tree.domNode.setAttribute("tabIndex", "0");
+ if (tree.expandLevel) {
+ this.expandToLevel(tree, tree.expandLevel);
+ }
+ if (tree.loadLevel) {
+ this.loadToLevel(tree, tree.loadLevel);
+ }
+}, onTreeMouseDown:function (e) {
+}, onTreeClick:function (e) {
+ var domElement = e.target;
+ var node = this.domElement2TreeNode(domElement);
+ if (!node || !node.isTreeNode) {
+ return;
+ }
+ var checkExpandClick = function (el) {
+ return el === node.expandNode;
+ };
+ if (this.checkPathCondition(domElement, checkExpandClick)) {
+ this.processExpandClick(node);
+ }
+ this._focusLabel(node);
+}, processExpandClick:function (node) {
+ if (node.isExpanded) {
+ this.collapse(node);
+ } else {
+ this.expand(node);
+ }
+}, batchExpandTimeout:20, expandAll:function (nodeOrTree) {
+ return this.expandToLevel(nodeOrTree, Number.POSITIVE_INFINITY);
+}, collapseAll:function (nodeOrTree) {
+ var _this = this;
+ var filter = function (elem) {
+ return (elem instanceof dojo.widget.Widget) && elem.isFolder && elem.isExpanded;
+ };
+ if (nodeOrTree.isTreeNode) {
+ this.processDescendants(nodeOrTree, filter, this.collapse);
+ } else {
+ if (nodeOrTree.isTree) {
+ dojo.lang.forEach(nodeOrTree.children, function (c) {
+ _this.processDescendants(c, filter, _this.collapse);
+ });
+ }
+ }
+}, expandToNode:function (node, withSelected) {
+ n = withSelected ? node : node.parent;
+ s = [];
+ while (!n.isExpanded) {
+ s.push(n);
+ n = n.parent;
+ }
+ dojo.lang.forEach(s, function (n) {
+ n.expand();
+ });
+}, expandToLevel:function (nodeOrTree, level) {
+ dojo.require("dojo.widget.TreeTimeoutIterator");
+ var _this = this;
+ var filterFunc = function (elem) {
+ var res = elem.isFolder || elem.children && elem.children.length;
+ return res;
+ };
+ var callFunc = function (node, iterator) {
+ _this.expand(node, true);
+ iterator.forward();
+ };
+ var iterator = new dojo.widget.TreeTimeoutIterator(nodeOrTree, callFunc, this);
+ iterator.setFilter(filterFunc);
+ iterator.timeout = this.batchExpandTimeout;
+ iterator.setMaxLevel(nodeOrTree.isTreeNode ? level - 1 : level);
+ return iterator.start(nodeOrTree.isTreeNode);
+}, getWidgetByNode:function (node) {
+ var widgetId;
+ var newNode = node;
+ while (!(widgetId = newNode.widgetId)) {
+ newNode = newNode.parentNode;
+ if (newNode == null) {
+ break;
+ }
+ }
+ if (widgetId) {
+ return dojo.widget.byId(widgetId);
+ } else {
+ if (node == null) {
+ return null;
+ } else {
+ return dojo.widget.manager.byNode(node);
+ }
+ }
+}, expand:function (node) {
+ if (node.isFolder) {
+ node.expand();
+ }
+}, collapse:function (node) {
+ if (node.isFolder) {
+ node.collapse();
+ }
+}, canEditLabel:function (node) {
+ if (node.actionIsDisabledNow(node.actions.EDIT)) {
+ return false;
+ }
+ return true;
+}, editLabelStart:function (node) {
+ if (!this.canEditLabel(node)) {
+ return false;
+ }
+ if (!this.editor.isClosed()) {
+ this.editLabelFinish(this.editor.saveOnBlur);
+ }
+ this.doEditLabelStart(node);
+}, editLabelFinish:function (save) {
+ this.doEditLabelFinish(save);
+}, doEditLabelStart:function (node) {
+ if (!this.editor) {
+ dojo.raise(this.widgetType + ": no editor specified");
+ }
+ this.editor.open(node);
+}, doEditLabelFinish:function (save, server_data) {
+ if (!this.editor) {
+ dojo.raise(this.widgetType + ": no editor specified");
+ }
+ var node = this.editor.node;
+ var editorTitle = this.editor.getContents();
+ this.editor.close(save);
+ if (save) {
+ var data = {title:editorTitle};
+ if (server_data) {
+ dojo.lang.mixin(data, server_data);
+ }
+ if (node.isPhantom) {
+ var parent = node.parent;
+ var index = node.getParentIndex();
+ node.destroy();
+ dojo.widget.TreeBasicControllerV3.prototype.doCreateChild.call(this, parent, index, data);
+ } else {
+ var title = server_data && server_data.title ? server_data.title : editorTitle;
+ node.setTitle(title);
+ }
+ } else {
+ if (node.isPhantom) {
+ node.destroy();
+ }
+ }
+}, makeDefaultNode:function (parent, index) {
+ var data = {title:parent.tree.defaultChildTitle};
+ return dojo.widget.TreeBasicControllerV3.prototype.doCreateChild.call(this, parent, index, data);
+}, runStages:function (check, prepare, make, finalize, expose, args) {
+ if (check && !check.apply(this, args)) {
+ return false;
+ }
+ if (prepare && !prepare.apply(this, args)) {
+ return false;
+ }
+ var result = make.apply(this, args);
+ if (finalize) {
+ finalize.apply(this, args);
+ }
+ if (!result) {
+ return result;
+ }
+ if (expose) {
+ expose.apply(this, args);
+ }
+ return result;
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {createAndEdit:function (parent, index) {
+ var data = {title:parent.tree.defaultChildTitle};
+ if (!this.canCreateChild(parent, index, data)) {
+ return false;
+ }
+ var child = this.doCreateChild(parent, index, data);
+ if (!child) {
+ return false;
+ }
+ this.exposeCreateChild(parent, index, data);
+ child.isPhantom = true;
+ if (!this.editor.isClosed()) {
+ this.editLabelFinish(this.editor.saveOnBlur);
+ }
+ this.doEditLabelStart(child);
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {canClone:function (child, newParent, index, deep) {
+ return true;
+}, clone:function (child, newParent, index, deep) {
+ return this.runStages(this.canClone, this.prepareClone, this.doClone, this.finalizeClone, this.exposeClone, arguments);
+}, exposeClone:function (child, newParent) {
+ if (newParent.isTreeNode) {
+ this.expand(newParent);
+ }
+}, doClone:function (child, newParent, index, deep) {
+ var cloned = child.clone(deep);
+ newParent.addChild(cloned, index);
+ return cloned;
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {canDetach:function (child) {
+ if (child.actionIsDisabledNow(child.actions.DETACH)) {
+ return false;
+ }
+ return true;
+}, detach:function (node) {
+ return this.runStages(this.canDetach, this.prepareDetach, this.doDetach, this.finalizeDetach, this.exposeDetach, arguments);
+}, doDetach:function (node, callObj, callFunc) {
+ node.detach();
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {canDestroyChild:function (child) {
+ if (child.parent && !this.canDetach(child)) {
+ return false;
+ }
+ return true;
+}, destroyChild:function (node) {
+ return this.runStages(this.canDestroyChild, this.prepareDestroyChild, this.doDestroyChild, this.finalizeDestroyChild, this.exposeDestroyChild, arguments);
+}, doDestroyChild:function (node) {
+ node.destroy();
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {canMoveNotANode:function (child, parent) {
+ if (child.treeCanMove) {
+ return child.treeCanMove(parent);
+ }
+ return true;
+}, canMove:function (child, newParent) {
+ if (!child.isTreeNode) {
+ return this.canMoveNotANode(child, newParent);
+ }
+ if (child.actionIsDisabledNow(child.actions.MOVE)) {
+ return false;
+ }
+ if (child.parent !== newParent && newParent.actionIsDisabledNow(newParent.actions.ADDCHILD)) {
+ return false;
+ }
+ var node = newParent;
+ while (node.isTreeNode) {
+ if (node === child) {
+ return false;
+ }
+ node = node.parent;
+ }
+ return true;
+}, move:function (child, newParent, index) {
+ return this.runStages(this.canMove, this.prepareMove, this.doMove, this.finalizeMove, this.exposeMove, arguments);
+}, doMove:function (child, newParent, index) {
+ child.tree.move(child, newParent, index);
+ return true;
+}, exposeMove:function (child, newParent) {
+ if (newParent.isTreeNode) {
+ this.expand(newParent);
+ }
+}});
+dojo.lang.extend(dojo.widget.TreeBasicControllerV3, {canCreateChild:function (parent, index, data) {
+ if (parent.actionIsDisabledNow(parent.actions.ADDCHILD)) {
+ return false;
+ }
+ return true;
+}, createChild:function (parent, index, data) {
+ if (!data) {
+ data = {title:parent.tree.defaultChildTitle};
+ }
+ return this.runStages(this.canCreateChild, this.prepareCreateChild, this.doCreateChild, this.finalizeCreateChild, this.exposeCreateChild, [parent, index, data]);
+}, prepareCreateChild:function () {
+ return true;
+}, finalizeCreateChild:function () {
+}, doCreateChild:function (parent, index, data) {
+ var newChild = parent.tree.createNode(data);
+ parent.addChild(newChild, index);
+ return newChild;
+}, exposeCreateChild:function (parent) {
+ return this.expand(parent);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeBasicControllerV3.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,82 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeCommon");
+dojo.require("dojo.widget.*");
+dojo.declare("dojo.widget.TreeCommon", null, {listenTreeEvents:[], listenedTrees:{}, listenNodeFilter:null, listenTree:function (tree) {
+ var _this = this;
+ if (this.listenedTrees[tree.widgetId]) {
+ return;
+ }
+ dojo.lang.forEach(this.listenTreeEvents, function (event) {
+ var eventHandler = "on" + event.charAt(0).toUpperCase() + event.substr(1);
+ dojo.event.topic.subscribe(tree.eventNames[event], _this, eventHandler);
+ });
+ var filter;
+ if (this.listenNodeFilter) {
+ this.processDescendants(tree, this.listenNodeFilter, this.listenNode, true);
+ }
+ this.listenedTrees[tree.widgetId] = true;
+}, listenNode:function () {
+}, unlistenNode:function () {
+}, unlistenTree:function (tree, nodeFilter) {
+ var _this = this;
+ if (!this.listenedTrees[tree.widgetId]) {
+ return;
+ }
+ dojo.lang.forEach(this.listenTreeEvents, function (event) {
+ var eventHandler = "on" + event.charAt(0).toUpperCase() + event.substr(1);
+ dojo.event.topic.unsubscribe(tree.eventNames[event], _this, eventHandler);
+ });
+ if (this.listenNodeFilter) {
+ this.processDescendants(tree, this.listenNodeFilter, this.unlistenNode, true);
+ }
+ delete this.listenedTrees[tree.widgetId];
+}, checkPathCondition:function (domElement, condition) {
+ while (domElement && !domElement.widgetId) {
+ if (condition.call(null, domElement)) {
+ return true;
+ }
+ domElement = domElement.parentNode;
+ }
+ return false;
+}, domElement2TreeNode:function (domElement) {
+ while (domElement && !domElement.widgetId) {
+ domElement = domElement.parentNode;
+ }
+ if (!domElement) {
+ return null;
+ }
+ var widget = dojo.widget.byId(domElement.widgetId);
+ if (!widget.isTreeNode) {
+ return null;
+ }
+ return widget;
+}, processDescendants:function (elem, filter, func, skipFirst) {
+ var _this = this;
+ if (!skipFirst) {
+ if (!filter.call(_this, elem)) {
+ return;
+ }
+ func.call(_this, elem);
+ }
+ var stack = [elem];
+ while (elem = stack.pop()) {
+ dojo.lang.forEach(elem.children, function (elem) {
+ if (filter.call(_this, elem)) {
+ func.call(_this, elem);
+ stack.push(elem);
+ }
+ });
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeCommon.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,110 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeContextMenu");
+dojo.require("dojo.event.*");
+dojo.require("dojo.io.*");
+dojo.require("dojo.widget.Menu2");
+dojo.widget.defineWidget("dojo.widget.TreeContextMenu", dojo.widget.PopupMenu2, function () {
+ this.listenedTrees = [];
+}, {open:function (x, y, parentMenu, explodeSrc) {
+ var result = dojo.widget.PopupMenu2.prototype.open.apply(this, arguments);
+ dojo.event.topic.publish(this.eventNames.open, {menu:this});
+ return result;
+}, listenTree:function (tree) {
+ var nodes = tree.getDescendants();
+ for (var i = 0; i < nodes.length; i++) {
+ if (!nodes[i].isTreeNode) {
+ continue;
+ }
+ this.bindDomNode(nodes[i].labelNode);
+ }
+ var _this = this;
+ dojo.event.topic.subscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");
+ dojo.event.topic.subscribe(tree.eventNames.moveFrom, this, "onMoveFrom");
+ dojo.event.topic.subscribe(tree.eventNames.moveTo, this, "onMoveTo");
+ dojo.event.topic.subscribe(tree.eventNames.removeNode, this, "onRemoveNode");
+ dojo.event.topic.subscribe(tree.eventNames.addChild, this, "onAddChild");
+ dojo.event.topic.subscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");
+ this.listenedTrees.push(tree);
+}, unlistenTree:function (tree) {
+ dojo.event.topic.unsubscribe(tree.eventNames.createDOMNode, this, "onCreateDOMNode");
+ dojo.event.topic.unsubscribe(tree.eventNames.moveFrom, this, "onMoveFrom");
+ dojo.event.topic.unsubscribe(tree.eventNames.moveTo, this, "onMoveTo");
+ dojo.event.topic.unsubscribe(tree.eventNames.removeNode, this, "onRemoveNode");
+ dojo.event.topic.unsubscribe(tree.eventNames.addChild, this, "onAddChild");
+ dojo.event.topic.unsubscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");
+ for (var i = 0; i < this.listenedTrees.length; i++) {
+ if (this.listenedTrees[i] === tree) {
+ this.listenedTrees.splice(i, 1);
+ break;
+ }
+ }
+}, onTreeDestroy:function (message) {
+ this.unlistenTree(message.source);
+}, bindTreeNode:function (node) {
+ var _this = this;
+ dojo.lang.forEach(node.getDescendants(), function (e) {
+ _this.bindDomNode(e.labelNode);
+ });
+}, unBindTreeNode:function (node) {
+ var _this = this;
+ dojo.lang.forEach(node.getDescendants(), function (e) {
+ _this.unBindDomNode(e.labelNode);
+ });
+}, onCreateDOMNode:function (message) {
+ this.bindTreeNode(message.source);
+}, onMoveFrom:function (message) {
+ if (!dojo.lang.inArray(this.listenedTrees, message.newTree)) {
+ this.unBindTreeNode(message.child);
+ }
+}, onMoveTo:function (message) {
+ if (dojo.lang.inArray(this.listenedTrees, message.newTree)) {
+ this.bindTreeNode(message.child);
+ }
+}, onRemoveNode:function (message) {
+ this.unBindTreeNode(message.child);
+}, onAddChild:function (message) {
+ if (message.domNodeInitialized) {
+ this.bindTreeNode(message.child);
+ }
+}});
+dojo.widget.defineWidget("dojo.widget.TreeMenuItem", dojo.widget.MenuItem2, {treeActions:"", initialize:function (args, frag) {
+ this.treeActions = this.treeActions.split(",");
+ for (var i = 0; i < this.treeActions.length; i++) {
+ this.treeActions[i] = this.treeActions[i].toUpperCase();
+ }
+}, getTreeNode:function () {
+ var menu = this;
+ while (!(menu instanceof dojo.widget.TreeContextMenu)) {
+ menu = menu.parent;
+ }
+ var source = menu.getTopOpenEvent().target;
+ while (!source.getAttribute("treeNode") && source.tagName != "body") {
+ source = source.parentNode;
+ }
+ if (source.tagName == "body") {
+ dojo.raise("treeNode not detected");
+ }
+ var treeNode = dojo.widget.manager.getWidgetById(source.getAttribute("treeNode"));
+ return treeNode;
+}, menuOpen:function (message) {
+ var treeNode = this.getTreeNode();
+ this.setDisabled(false);
+ var _this = this;
+ dojo.lang.forEach(_this.treeActions, function (action) {
+ _this.setDisabled(treeNode.actionIsDisabled(action));
+ });
+}, toString:function () {
+ return "[" + this.widgetType + " node " + this.getTreeNode() + "]";
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenu.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,74 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeContextMenuV3");
+dojo.require("dojo.event.*");
+dojo.require("dojo.io.*");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.Menu2");
+dojo.require("dojo.widget.TreeCommon");
+dojo.widget.defineWidget("dojo.widget.TreeContextMenuV3", [dojo.widget.PopupMenu2, dojo.widget.TreeCommon], function () {
+ this.listenedTrees = {};
+}, {listenTreeEvents:["afterTreeCreate", "beforeTreeDestroy"], listenNodeFilter:function (elem) {
+ return elem instanceof dojo.widget.Widget;
+}, onAfterTreeCreate:function (message) {
+ var tree = message.source;
+ this.bindDomNode(tree.domNode);
+}, onBeforeTreeDestroy:function (message) {
+ this.unBindDomNode(message.source.domNode);
+}, getTreeNode:function () {
+ var source = this.getTopOpenEvent().target;
+ var treeNode = this.domElement2TreeNode(source);
+ return treeNode;
+}, open:function () {
+ var result = dojo.widget.PopupMenu2.prototype.open.apply(this, arguments);
+ for (var i = 0; i < this.children.length; i++) {
+ if (this.children[i].menuOpen) {
+ this.children[i].menuOpen(this.getTreeNode());
+ }
+ }
+ return result;
+}, close:function () {
+ for (var i = 0; i < this.children.length; i++) {
+ if (this.children[i].menuClose) {
+ this.children[i].menuClose(this.getTreeNode());
+ }
+ }
+ var result = dojo.widget.PopupMenu2.prototype.close.apply(this, arguments);
+ return result;
+}});
+dojo.widget.defineWidget("dojo.widget.TreeMenuItemV3", [dojo.widget.MenuItem2, dojo.widget.TreeCommon], function () {
+ this.treeActions = [];
+}, {treeActions:"", initialize:function (args, frag) {
+ for (var i = 0; i < this.treeActions.length; i++) {
+ this.treeActions[i] = this.treeActions[i].toUpperCase();
+ }
+}, getTreeNode:function () {
+ var menu = this;
+ while (!(menu instanceof dojo.widget.TreeContextMenuV3)) {
+ menu = menu.parent;
+ }
+ var treeNode = menu.getTreeNode();
+ return treeNode;
+}, menuOpen:function (treeNode) {
+ treeNode.viewEmphasize();
+ this.setDisabled(false);
+ var _this = this;
+ dojo.lang.forEach(_this.treeActions, function (action) {
+ _this.setDisabled(treeNode.actionIsDisabledNow(action));
+ });
+}, menuClose:function (treeNode) {
+ treeNode.viewUnemphasize();
+}, toString:function () {
+ return "[" + this.widgetType + " node " + this.getTreeNode() + "]";
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeContextMenuV3.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,60 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeControllerExtension");
+dojo.declare("dojo.widget.TreeControllerExtension", null, {saveExpandedIndices:function (node, field) {
+ var obj = {};
+ for (var i = 0; i < node.children.length; i++) {
+ if (node.children[i].isExpanded) {
+ var key = dojo.lang.isUndefined(field) ? i : node.children[i][field];
+ obj[key] = this.saveExpandedIndices(node.children[i], field);
+ }
+ }
+ return obj;
+}, restoreExpandedIndices:function (node, savedIndices, field) {
+ var _this = this;
+ var handler = function (node, savedIndices) {
+ this.node = node;
+ this.savedIndices = savedIndices;
+ this.process = function () {
+ _this.restoreExpandedIndices(this.node, this.savedIndices, field);
+ };
+ };
+ for (var i = 0; i < node.children.length; i++) {
+ var child = node.children[i];
+ var found = false;
+ var key = -1;
+ if (dojo.lang.isUndefined(field) && savedIndices[i]) {
+ found = true;
+ key = i;
+ }
+ if (field) {
+ for (var key in savedIndices) {
+ if (key == child[field]) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (found) {
+ var h = new handler(child, savedIndices[key]);
+ _this.expand(child, false, h, h.process);
+ } else {
+ if (child.isExpanded) {
+ dojo.lang.forEach(child.getDescendants(), function (elem) {
+ _this.collapse(elem);
+ });
+ }
+ }
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeControllerExtension.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,85 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeDemo");
+dojo.require("dojo.Deferred");
+dojo.widget.TreeDemo = {reportIfDefered:function (res) {
+ if (res instanceof dojo.Deferred) {
+ res.addCallbacks(function (res) {
+ return res;
+ }, function (err) {
+ dojo.debug("Error");
+ dojo.debugShallow(err);
+ });
+ }
+}, resetRandomChildren:function (maxCount) {
+ this.randomChildrenMaxCount = maxCount;
+ this.randomChildrenCount = 0;
+ this.randomChildrenDepth = 0;
+}, makeRandomChildren:function (title) {
+ this.randomChildrenDepth++;
+ var children = [];
+ for (var i = 1; i <= 5; i++) {
+ var t = title + (this.randomChildrenDepth == 1 ? "" : ".") + i;
+ var node = {title:t};
+ children.push(node);
+ this.randomChildrenCount++;
+ if (this.randomChildrenCount >= this.randomChildrenMaxCount) {
+ break;
+ }
+ }
+ var i = 1;
+ var _this = this;
+ dojo.lang.forEach(children, function (child) {
+ var t = title + (_this.randomChildrenDepth == 1 ? "" : ".") + i;
+ i++;
+ if (_this.randomChildrenCount < _this.randomChildrenMaxCount && (_this.randomChildrenDepth == 1 && child === children[0] || _this.randomChildrenDepth < 5 && Math.random() > 0.3)) {
+ child.children = _this.makeRandomChildren(t);
+ }
+ });
+ this.randomChildrenDepth--;
+ return children;
+}, bindDemoMenu:function (controller) {
+ var _t = this;
+ dojo.event.topic.subscribe("treeContextMenuDestroy/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ _t.reportIfDefered(controller.destroyChild(node));
+ });
+ dojo.event.topic.subscribe("treeContextMenuRefresh/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ _t.reportIfDefered(controller.refreshChildren(node));
+ });
+ dojo.event.topic.subscribe("treeContextMenuCreate/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ var d = controller.createAndEdit(node, 0);
+ _t.reportIfDefered(d);
+ });
+ dojo.event.topic.subscribe("treeContextMenuUp/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ if (node.isFirstChild()) {
+ return;
+ }
+ _t.reportIfDefered(controller.move(node, node.parent, node.getParentIndex() - 1));
+ });
+ dojo.event.topic.subscribe("treeContextMenuDown/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ if (node.isLastChild()) {
+ return;
+ }
+ _t.reportIfDefered(controller.move(node, node.parent, node.getParentIndex() + 1));
+ });
+ dojo.event.topic.subscribe("treeContextMenuEdit/engage", function (menuItem) {
+ var node = menuItem.getTreeNode();
+ _t.reportIfDefered(controller.editLabelStart(node));
+ });
+}};
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDemo.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,23 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeDeselectOnDblselect");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeSelectorV3");
+dojo.deprecated("Does anyone still need this extension? (TreeDeselectOnDblselect)");
+dojo.widget.defineWidget("dojo.widget.TreeDeselectOnDblselect", [dojo.widget.HtmlWidget], {selector:"", initialize:function () {
+ this.selector = dojo.widget.byId(this.selector);
+ dojo.event.topic.subscribe(this.selector.eventNames.dblselect, this, "onDblselect");
+}, onDblselect:function (message) {
+ this.selector.deselect(message.node);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDeselectOnDblselect.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,37 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeDisableWrapExtension");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeExtension");
+dojo.widget.defineWidget("dojo.widget.TreeDisableWrapExtension", dojo.widget.TreeExtension, {templateCssString:"\n/* CSS for TreeDisableWrapExtension */\n\n.TreeDisableWrap {\n\twhite-space: nowrap;\n}\n.TreeIEDisableWrap {\n\twidth: expression( 5 + firstChild.offsetWidth );\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/TreeDisableWrap.css"), listenTree:function (tree) {
+ var wrappingDiv = document.createElement("div");
+ var clazz = tree.classPrefix + "DisableWrap";
+ if (dojo.render.html.ie) {
+ clazz = clazz + " " + tree.classPrefix + "IEDisableWrap";
+ }
+ dojo.html.setClass(wrappingDiv, clazz);
+ var table = document.createElement("table");
+ wrappingDiv.appendChild(table);
+ var tbody = document.createElement("tbody");
+ table.appendChild(tbody);
+ var tr = document.createElement("tr");
+ tbody.appendChild(tr);
+ var td = document.createElement("td");
+ tr.appendChild(td);
+ if (tree.domNode.parentNode) {
+ tree.domNode.parentNode.replaceChild(wrappingDiv, tree.domNode);
+ }
+ td.appendChild(tree.domNode);
+ tree.domNode = wrappingDiv;
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDisableWrapExtension.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,71 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeDndControllerV3");
+dojo.require("dojo.dnd.TreeDragAndDropV3");
+dojo.require("dojo.experimental");
+dojo.experimental("Tree drag'n'drop' has lots of problems/bugs, it requires dojo drag'n'drop overhaul to work, probably in 0.5");
+dojo.widget.defineWidget("dojo.widget.TreeDndControllerV3", [dojo.widget.HtmlWidget, dojo.widget.TreeCommon], function () {
+ this.dragSources = {};
+ this.dropTargets = {};
+ this.listenedTrees = {};
+}, {listenTreeEvents:["afterChangeTree", "beforeTreeDestroy", "afterAddChild"], listenNodeFilter:function (elem) {
+ return elem instanceof dojo.widget.Widget;
+}, initialize:function (args) {
+ this.treeController = dojo.lang.isString(args.controller) ? dojo.widget.byId(args.controller) : args.controller;
+ if (!this.treeController) {
+ dojo.raise("treeController must be declared");
+ }
+}, onBeforeTreeDestroy:function (message) {
+ this.unlistenTree(message.source);
+}, onAfterAddChild:function (message) {
+ this.listenNode(message.child);
+}, onAfterChangeTree:function (message) {
+ if (!message.oldTree) {
+ return;
+ }
+ if (!message.newTree || !this.listenedTrees[message.newTree.widgetId]) {
+ this.processDescendants(message.node, this.listenNodeFilter, this.unlistenNode);
+ }
+ if (!this.listenedTrees[message.oldTree.widgetId]) {
+ this.processDescendants(message.node, this.listenNodeFilter, this.listenNode);
+ }
+}, listenNode:function (node) {
+ if (!node.tree.DndMode) {
+ return;
+ }
+ if (this.dragSources[node.widgetId] || this.dropTargets[node.widgetId]) {
+ return;
+ }
+ var source = null;
+ var target = null;
+ if (!node.actionIsDisabled(node.actions.MOVE)) {
+ var source = this.makeDragSource(node);
+ this.dragSources[node.widgetId] = source;
+ }
+ var target = this.makeDropTarget(node);
+ this.dropTargets[node.widgetId] = target;
+}, makeDragSource:function (node) {
+ return new dojo.dnd.TreeDragSourceV3(node.contentNode, this, node.tree.widgetId, node);
+}, makeDropTarget:function (node) {
+ return new dojo.dnd.TreeDropTargetV3(node.contentNode, this.treeController, node.tree.DndAcceptTypes, node);
+}, unlistenNode:function (node) {
+ if (this.dragSources[node.widgetId]) {
+ dojo.dnd.dragManager.unregisterDragSource(this.dragSources[node.widgetId]);
+ delete this.dragSources[node.widgetId];
+ }
+ if (this.dropTargets[node.widgetId]) {
+ dojo.dnd.dragManager.unregisterDropTarget(this.dropTargets[node.widgetId]);
+ delete this.dropTargets[node.widgetId];
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDndControllerV3.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,54 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeDocIconExtension");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeExtension");
+dojo.widget.defineWidget("dojo.widget.TreeDocIconExtension", [dojo.widget.TreeExtension], {templateCssString:"\n/* CSS for TreeDocIconExtension */\n\n\n/* long vertical line under docIcon, connecting w/ children */\n.TreeStateChildrenYes-ExpandOpen .TreeIconContent {\n background-image : url('../templates/images/TreeV3/i_long.gif');\n background-repeat : no-repeat;\n background-position: 18px 9px;\n}\n\n/* close has higher priority */\n.TreeStateChildrenYes-ExpandClosed .TreeIconContent {\n background-image : url();\n}\n\n/* higher priotity: same length and appear after background-definition */\n.TreeStateChildrenNo-ExpandLeaf .TreeIconContent {\n background-image : url();\n}\n\n.TreeStateChildrenNo-ExpandClosed .TreeIconContent {\n background-image : url();\n}\n\n.TreeStateChildrenNo-ExpandOpen .TreeIconContent {\n background-image : url();\n}\n\n\n/* highest priority */\n.TreeIconDocument {\n background-image: url('../templates/images/TreeV3/document.gif');\n}\n\n.TreeExpa
ndOpen .TreeIconFolder {\n background-image: url('../templates/images/TreeV3/open.gif');\n}\n\n.TreeExpandClosed .TreeIconFolder {\n background-image: url('../templates/images/TreeV3/closed.gif');\n}\n\n/* generic class for docIcon */\n.TreeIcon {\n width: 18px;\n height: 18px;\n float: left;\n display: inline;\n background-repeat : no-repeat;\n}\n\ndiv.TreeContent {\n margin-left: 36px;\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/TreeDocIcon.css"), listenTreeEvents:["afterChangeTree", "afterSetFolder", "afterUnsetFolder"], listenNodeFilter:function (elem) {
+ return elem instanceof dojo.widget.Widget;
+}, getnodeDocType:function (node) {
+ var nodeDocType = node.getnodeDocType();
+ if (!nodeDocType) {
+ nodeDocType = node.isFolder ? "Folder" : "Document";
+ }
+ return nodeDocType;
+}, setnodeDocTypeClass:function (node) {
+ var reg = new RegExp("(^|\\s)" + node.tree.classPrefix + "Icon\\w+", "g");
+ var clazz = dojo.html.getClass(node.iconNode).replace(reg, "") + " " + node.tree.classPrefix + "Icon" + this.getnodeDocType(node);
+ dojo.html.setClass(node.iconNode, clazz);
+}, onAfterSetFolder:function (message) {
+ if (message.source.iconNode) {
+ this.setnodeDocTypeClass(message.source);
+ }
+}, onAfterUnsetFolder:function (message) {
+ this.setnodeDocTypeClass(message.source);
+}, listenNode:function (node) {
+ node.contentIconNode = document.createElement("div");
+ var clazz = node.tree.classPrefix + "IconContent";
+ if (dojo.render.html.ie) {
+ clazz = clazz + " " + node.tree.classPrefix + "IEIconContent";
+ }
+ dojo.html.setClass(node.contentIconNode, clazz);
+ node.contentNode.parentNode.replaceChild(node.contentIconNode, node.expandNode);
+ node.iconNode = document.createElement("div");
+ dojo.html.setClass(node.iconNode, node.tree.classPrefix + "Icon" + " " + node.tree.classPrefix + "Icon" + this.getnodeDocType(node));
+ node.contentIconNode.appendChild(node.expandNode);
+ node.contentIconNode.appendChild(node.iconNode);
+ dojo.dom.removeNode(node.contentNode);
+ node.contentIconNode.appendChild(node.contentNode);
+}, onAfterChangeTree:function (message) {
+ var _this = this;
+ if (!message.oldTree || !this.listenedTrees[message.oldTree.widgetId]) {
+ this.processDescendants(message.node, this.listenNodeFilter, this.listenNode);
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeDocIconExtension.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,67 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.RichText");
+dojo.provide("dojo.widget.TreeEditor");
+dojo.widget.defineWidget("dojo.widget.TreeEditor", dojo.widget.HtmlWidget, {singleLineMode:false, saveOnBlur:true, sync:false, selectOnOpen:true, controller:null, node:null, richTextParams:{styleSheets:"src/widget/templates/TreeEditor.css"}, getContents:function () {
+ return this.richText.getEditorContent();
+}, open:function (node) {
+ if (!this.richText) {
+ this.richText = dojo.widget.createWidget("RichText", this.richTextParams, node.labelNode);
+ dojo.event.connect("around", this.richText, "onKeyDown", this, "richText_onKeyDown");
+ dojo.event.connect(this.richText, "onBlur", this, "richText_onBlur");
+ var self = this;
+ dojo.event.connect(this.richText, "onLoad", function () {
+ if (self.selectOnOpen) {
+ self.richText.execCommand("selectall");
+ }
+ });
+ } else {
+ this.richText.open(node.labelNode);
+ }
+ this.node = node;
+}, close:function (save) {
+ this.richText.close(save);
+ this.node = null;
+}, isClosed:function () {
+ return !this.richText || this.richText.isClosed;
+}, execCommand:function () {
+ this.richText.execCommand.apply(this.richText, arguments);
+}, richText_onKeyDown:function (invocation) {
+ var e = invocation.args[0];
+ if ((!e) && (this.object)) {
+ e = dojo.event.browser.fixEvent(this.editor.window.event);
+ }
+ switch (e.keyCode) {
+ case e.KEY_ESCAPE:
+ this.finish(false);
+ dojo.event.browser.stopEvent(e);
+ break;
+ case e.KEY_ENTER:
+ if (e.ctrlKey && !this.singleLineMode) {
+ this.execCommand("inserthtml", "<br/>");
+ } else {
+ this.finish(true);
+ }
+ dojo.event.browser.stopEvent(e);
+ break;
+ default:
+ return invocation.proceed();
+ }
+}, richText_onBlur:function () {
+ this.finish(this.saveOnBlur);
+}, finish:function (save) {
+ return this.controller.editLabelFinish(save, this.sync);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEditor.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,26 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeEmphasizeOnSelect");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeSelectorV3");
+dojo.require("dojo.html.selection");
+dojo.widget.defineWidget("dojo.widget.TreeEmphasizeOnSelect", dojo.widget.HtmlWidget, {selector:"", initialize:function () {
+ this.selector = dojo.widget.byId(this.selector);
+ dojo.event.topic.subscribe(this.selector.eventNames.select, this, "onSelect");
+ dojo.event.topic.subscribe(this.selector.eventNames.deselect, this, "onDeselect");
+}, onSelect:function (message) {
+ message.node.viewEmphasize();
+}, onDeselect:function (message) {
+ message.node.viewUnemphasize();
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeEmphasizeOnSelect.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,22 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeExpandToNodeOnSelect");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.widget.defineWidget("dojo.widget.TreeExpandToNodeOnSelect", dojo.widget.HtmlWidget, {selector:"", controller:"", withSelected:false, initialize:function () {
+ this.selector = dojo.widget.byId(this.selector);
+ this.controller = dojo.widget.byId(this.controller);
+ dojo.event.topic.subscribe(this.selector.eventNames.select, this, "onSelect");
+}, onSelectEvent:function (message) {
+ this.controller.expandToNode(message.node, this.withSelected);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExpandToNodeOnSelect.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,19 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeExtension");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeCommon");
+dojo.widget.defineWidget("dojo.widget.TreeExtension", [dojo.widget.HtmlWidget, dojo.widget.TreeCommon], function () {
+ this.listenedTrees = {};
+}, {});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeExtension.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,46 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeLinkExtension");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.widget.TreeExtension");
+dojo.widget.defineWidget("dojo.widget.TreeLinkExtension", dojo.widget.TreeExtension, function () {
+ this.params = {};
+}, {listenTreeEvents:["afterChangeTree"], listenTree:function (tree) {
+ dojo.widget.TreeCommon.prototype.listenTree.call(this, tree);
+ var labelNode = tree.labelNodeTemplate;
+ var newLabel = this.makeALabel();
+ dojo.html.setClass(newLabel, dojo.html.getClass(labelNode));
+ labelNode.parentNode.replaceChild(newLabel, labelNode);
+}, makeALabel:function () {
+ var newLabel = document.createElement("a");
+ for (var key in this.params) {
+ if (key in {}) {
+ continue;
+ }
+ newLabel.setAttribute(key, this.params[key]);
+ }
+ return newLabel;
+}, onAfterChangeTree:function (message) {
+ var _this = this;
+ if (!message.oldTree) {
+ this.listenNode(message.node);
+ }
+}, listenNode:function (node) {
+ for (var key in node.object) {
+ if (key in {}) {
+ continue;
+ }
+ node.labelNode.setAttribute(key, node.object[key]);
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLinkExtension.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,94 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeLoadingController");
+dojo.require("dojo.widget.TreeBasicController");
+dojo.require("dojo.event.*");
+dojo.require("dojo.json");
+dojo.require("dojo.io.*");
+dojo.widget.defineWidget("dojo.widget.TreeLoadingController", dojo.widget.TreeBasicController, {RPCUrl:"", RPCActionParam:"action", RPCErrorHandler:function (type, obj, evt) {
+ alert("RPC Error: " + (obj.message || "no message"));
+}, preventCache:true, getRPCUrl:function (action) {
+ if (this.RPCUrl == "local") {
+ var dir = document.location.href.substr(0, document.location.href.lastIndexOf("/"));
+ var localUrl = dir + "/" + action;
+ return localUrl;
+ }
+ if (!this.RPCUrl) {
+ dojo.raise("Empty RPCUrl: can't load");
+ }
+ return this.RPCUrl + (this.RPCUrl.indexOf("?") > -1 ? "&" : "?") + this.RPCActionParam + "=" + action;
+}, loadProcessResponse:function (node, result, callObj, callFunc) {
+ if (!dojo.lang.isUndefined(result.error)) {
+ this.RPCErrorHandler("server", result.error);
+ return false;
+ }
+ var newChildren = result;
+ if (!dojo.lang.isArray(newChildren)) {
+ dojo.raise("loadProcessResponse: Not array loaded: " + newChildren);
+ }
+ for (var i = 0; i < newChildren.length; i++) {
+ newChildren[i] = dojo.widget.createWidget(node.widgetType, newChildren[i]);
+ node.addChild(newChildren[i]);
+ }
+ node.state = node.loadStates.LOADED;
+ if (dojo.lang.isFunction(callFunc)) {
+ callFunc.apply(dojo.lang.isUndefined(callObj) ? this : callObj, [node, newChildren]);
+ }
+}, getInfo:function (obj) {
+ return obj.getInfo();
+}, runRPC:function (kw) {
+ var _this = this;
+ var handle = function (type, data, evt) {
+ if (kw.lock) {
+ dojo.lang.forEach(kw.lock, function (t) {
+ t.unlock();
+ });
+ }
+ if (type == "load") {
+ kw.load.call(this, data);
+ } else {
+ this.RPCErrorHandler(type, data, evt);
+ }
+ };
+ if (kw.lock) {
+ dojo.lang.forEach(kw.lock, function (t) {
+ t.lock();
+ });
+ }
+ dojo.io.bind({url:kw.url, handle:dojo.lang.hitch(this, handle), mimetype:"text/json", preventCache:_this.preventCache, sync:kw.sync, content:{data:dojo.json.serialize(kw.params)}});
+}, loadRemote:function (node, sync, callObj, callFunc) {
+ var _this = this;
+ var params = {node:this.getInfo(node), tree:this.getInfo(node.tree)};
+ this.runRPC({url:this.getRPCUrl("getChildren"), load:function (result) {
+ _this.loadProcessResponse(node, result, callObj, callFunc);
+ }, sync:sync, lock:[node], params:params});
+}, expand:function (node, sync, callObj, callFunc) {
+ if (node.state == node.loadStates.UNCHECKED && node.isFolder) {
+ this.loadRemote(node, sync, this, function (node, newChildren) {
+ this.expand(node, sync, callObj, callFunc);
+ });
+ return;
+ }
+ dojo.widget.TreeBasicController.prototype.expand.apply(this, arguments);
+}, doMove:function (child, newParent, index) {
+ if (newParent.isTreeNode && newParent.state == newParent.loadStates.UNCHECKED) {
+ this.loadRemote(newParent, true);
+ }
+ return dojo.widget.TreeBasicController.prototype.doMove.apply(this, arguments);
+}, doCreateChild:function (parent, index, data, callObj, callFunc) {
+ if (parent.state == parent.loadStates.UNCHECKED) {
+ this.loadRemote(parent, true);
+ }
+ return dojo.widget.TreeBasicController.prototype.doCreateChild.apply(this, arguments);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingController.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,250 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.TreeLoadingControllerV3");
+dojo.require("dojo.widget.TreeBasicControllerV3");
+dojo.require("dojo.event.*");
+dojo.require("dojo.json");
+dojo.require("dojo.io.*");
+dojo.require("dojo.Deferred");
+dojo.require("dojo.DeferredList");
+dojo.declare("dojo.Error", Error, function (message, extra) {
+ this.message = message;
+ this.extra = extra;
+ this.stack = (new Error()).stack;
+});
+dojo.declare("dojo.CommunicationError", dojo.Error, function () {
+ this.name = "CommunicationError";
+});
+dojo.declare("dojo.LockedError", dojo.Error, function () {
+ this.name = "LockedError";
+});
+dojo.declare("dojo.FormatError", dojo.Error, function () {
+ this.name = "FormatError";
+});
+dojo.declare("dojo.RpcError", dojo.Error, function () {
+ this.name = "RpcError";
+});
+dojo.widget.defineWidget("dojo.widget.TreeLoadingControllerV3", dojo.widget.TreeBasicControllerV3, {RpcUrl:"", RpcActionParam:"action", preventCache:true, checkValidRpcResponse:function (type, obj) {
+ if (type != "load") {
+ var extra = {};
+ for (var i = 1; i < arguments.length; i++) {
+ dojo.lang.mixin(extra, arguments[i]);
+ }
+ return new dojo.CommunicationError(obj, extra);
+ }
+ if (typeof obj != "object") {
+ return new dojo.FormatError("Wrong server answer format " + (obj && obj.toSource ? obj.toSource() : obj) + " type " + (typeof obj), obj);
+ }
+ if (!dojo.lang.isUndefined(obj.error)) {
+ return new dojo.RpcError(obj.error, obj);
+ }
+ return false;
+}, getDeferredBindHandler:function (deferred) {
+ return dojo.lang.hitch(this, function (type, obj) {
+ var error = this.checkValidRpcResponse.apply(this, arguments);
+ if (error) {
+ deferred.errback(error);
+ return;
+ }
+ deferred.callback(obj);
+ });
+}, getRpcUrl:function (action) {
+ if (this.RpcUrl == "local") {
+ var dir = document.location.href.substr(0, document.location.href.lastIndexOf("/"));
+ var localUrl = dir + "/local/" + action;
+ return localUrl;
+ }
+ if (!this.RpcUrl) {
+ dojo.raise("Empty RpcUrl: can't load");
+ }
+ var url = this.RpcUrl;
+ if (url.indexOf("/") != 0) {
+ var protocol = document.location.href.replace(/:\/\/.*/, "");
+ var prefix = document.location.href.substring(protocol.length + 3);
+ if (prefix.lastIndexOf("/") != prefix.length - 1) {
+ prefix = prefix.replace(/\/[^\/]+$/, "/");
+ }
+ if (prefix.lastIndexOf("/") != prefix.length - 1) {
+ prefix = prefix + "/";
+ }
+ url = protocol + "://" + prefix + url;
+ }
+ return url + (url.indexOf("?") > -1 ? "&" : "?") + this.RpcActionParam + "=" + action;
+}, loadProcessResponse:function (node, result) {
+ if (!dojo.lang.isArray(result)) {
+ throw new dojo.FormatError("loadProcessResponse: Not array loaded: " + result);
+ }
+ node.setChildren(result);
+}, runRpc:function (kw) {
+ var _this = this;
+ var deferred = new dojo.Deferred();
+ dojo.io.bind({url:kw.url, handle:this.getDeferredBindHandler(deferred), mimetype:"text/javascript", preventCache:this.preventCache, sync:kw.sync, content:{data:dojo.json.serialize(kw.params)}});
+ return deferred;
+}, loadRemote:function (node, sync) {
+ var _this = this;
+ var params = {node:this.getInfo(node), tree:this.getInfo(node.tree)};
+ var deferred = this.runRpc({url:this.getRpcUrl("getChildren"), sync:sync, params:params});
+ deferred.addCallback(function (res) {
+ return _this.loadProcessResponse(node, res);
+ });
+ return deferred;
+}, batchExpandTimeout:0, recurseToLevel:function (widget, level, callFunc, callObj, skipFirst, sync) {
+ if (level == 0) {
+ return;
+ }
+ if (!skipFirst) {
+ var deferred = callFunc.call(callObj, widget, sync);
+ } else {
+ var deferred = dojo.Deferred.prototype.makeCalled();
+ }
+ var _this = this;
+ var recurseOnExpand = function () {
+ var children = widget.children;
+ var deferreds = [];
+ for (var i = 0; i < children.length; i++) {
+ deferreds.push(_this.recurseToLevel(children[i], level - 1, callFunc, callObj, sync));
+ }
+ return new dojo.DeferredList(deferreds);
+ };
+ deferred.addCallback(recurseOnExpand);
+ return deferred;
+}, expandToLevel:function (nodeOrTree, level, sync) {
+ return this.recurseToLevel(nodeOrTree, nodeOrTree.isTree ? level + 1 : level, this.expand, this, nodeOrTree.isTree, sync);
+}, loadToLevel:function (nodeOrTree, level, sync) {
+ return this.recurseToLevel(nodeOrTree, nodeOrTree.isTree ? level + 1 : level, this.loadIfNeeded, this, nodeOrTree.isTree, sync);
+}, loadAll:function (nodeOrTree, sync) {
+ return this.loadToLevel(nodeOrTree, Number.POSITIVE_INFINITY, sync);
+}, expand:function (node, sync) {
+ var _this = this;
+ var deferred = this.startProcessing(node);
+ deferred.addCallback(function () {
+ return _this.loadIfNeeded(node, sync);
+ });
+ deferred.addCallback(function (res) {
+ dojo.widget.TreeBasicControllerV3.prototype.expand(node);
+ return res;
+ });
+ deferred.addBoth(function (res) {
+ _this.finishProcessing(node);
+ return res;
+ });
+ return deferred;
+}, loadIfNeeded:function (node, sync) {
+ var deferred;
+ if (node.state == node.loadStates.UNCHECKED && node.isFolder && !node.children.length) {
+ deferred = this.loadRemote(node, sync);
+ } else {
+ deferred = new dojo.Deferred();
+ deferred.callback();
+ }
+ return deferred;
+}, runStages:function (check, prepare, make, finalize, expose, args) {
+ var _this = this;
+ if (check && !check.apply(this, args)) {
+ return false;
+ }
+ var deferred = dojo.Deferred.prototype.makeCalled();
+ if (prepare) {
+ deferred.addCallback(function () {
+ return prepare.apply(_this, args);
+ });
+ }
+ if (make) {
+ deferred.addCallback(function () {
+ var res = make.apply(_this, args);
+ return res;
+ });
+ }
+ if (finalize) {
+ deferred.addBoth(function (res) {
+ finalize.apply(_this, args);
+ return res;
+ });
+ }
+ if (expose) {
+ deferred.addCallback(function (res) {
+ expose.apply(_this, args);
+ return res;
+ });
+ }
+ return deferred;
+}, startProcessing:function (nodesArray) {
+ var deferred = new dojo.Deferred();
+ var nodes = dojo.lang.isArray(nodesArray) ? nodesArray : arguments;
+ for (var i = 0; i < nodes.length; i++) {
+ if (nodes[i].isLocked()) {
+ deferred.errback(new dojo.LockedError("item locked " + nodes[i], nodes[i]));
+ return deferred;
+ }
+ if (nodes[i].isTreeNode) {
+ nodes[i].markProcessing();
+ }
+ nodes[i].lock();
+ }
+ deferred.callback();
+ return deferred;
+}, finishProcessing:function (nodesArray) {
+ var nodes = dojo.lang.isArray(nodesArray) ? nodesArray : arguments;
+ for (var i = 0; i < nodes.length; i++) {
+ if (!nodes[i].hasLock()) {
+ continue;
+ }
+ nodes[i].unlock();
+ if (nodes[i].isTreeNode) {
+ nodes[i].unmarkProcessing();
+ }
+ }
+}, refreshChildren:function (nodeOrTree, sync) {
+ return this.runStages(null, this.prepareRefreshChildren, this.doRefreshChildren, this.finalizeRefreshChildren, this.exposeRefreshChildren, arguments);
+}, prepareRefreshChildren:function (nodeOrTree, sync) {
+ var deferred = this.startProcessing(nodeOrTree);
+ nodeOrTree.destroyChildren();
+ nodeOrTree.state = nodeOrTree.loadStates.UNCHECKED;
+ return deferred;
+}, doRefreshChildren:function (nodeOrTree, sync) {
+ return this.loadRemote(nodeOrTree, sync);
+}, finalizeRefreshChildren:function (nodeOrTree, sync) {
+ this.finishProcessing(nodeOrTree);
+}, exposeRefreshChildren:function (nodeOrTree, sync) {
+ nodeOrTree.expand();
+}, move:function (child, newParent, index) {
+ return this.runStages(this.canMove, this.prepareMove, this.doMove, this.finalizeMove, this.exposeMove, arguments);
+}, doMove:function (child, newParent, index) {
+ child.tree.move(child, newParent, index);
+ return true;
+}, prepareMove:function (child, newParent, index, sync) {
+ var deferred = this.startProcessing(newParent);
+ deferred.addCallback(dojo.lang.hitch(this, function () {
+ return this.loadIfNeeded(newParent, sync);
+ }));
+ return deferred;
+}, finalizeMove:function (child, newParent) {
+ this.finishProcessing(newParent);
+}, prepareCreateChild:function (parent, index, data, sync) {
+ var deferred = this.startProcessing(parent);
+ deferred.addCallback(dojo.lang.hitch(this, function () {
+ return this.loadIfNeeded(parent, sync);
+ }));
+ return deferred;
+}, finalizeCreateChild:function (parent) {
+ this.finishProcessing(parent);
+}, prepareClone:function (child, newParent, index, deep, sync) {
+ var deferred = this.startProcessing(child, newParent);
+ deferred.addCallback(dojo.lang.hitch(this, function () {
+ return this.loadIfNeeded(newParent, sync);
+ }));
+ return deferred;
+}, finalizeClone:function (child, newParent) {
+ this.finishProcessing(child, newParent);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/TreeLoadingControllerV3.js
------------------------------------------------------------------------------
svn:mime-type = text/plain