|
Struts example source code file (TreeDndControllerV3.js)
The Struts TreeDndControllerV3.js source code/* 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]; } }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts TreeDndControllerV3.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.