Blame | Last modification | View Log | RSS feed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Dojo DnD test</title><style type="text/css">@import "../../resources/dojo.css";@import "../../resources/dnd.css";@import "dndDefault.css";body {padding: 1em;background: #ededed;}.container {width: 100px;display: block;}.clear {clear: both;}</style><script type="text/javascript" src="../../dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script><script type="text/javascript" src="../../dnd/Container.js"></script><script type="text/javascript" src="../../dnd/Selector.js"></script><script type="text/javascript" src="../../dnd/Source.js"></script><script type="text/javascript" src="../../dnd/Avatar.js"></script><script type="text/javascript" src="../../dnd/Manager.js"></script><script type="text/javascript">dojo.require("dojo.parser");dojo.require("dojo.dnd.Source");var c1;function init(){c1 = new dojo.dnd.Source("container1");c1.insertNodes(false, [1, "A", [1, 2, 3],function(x){ return x + x; },{toString: function(){ return "CUSTOM!"; }},null]);// example subscribe to eventsdojo.subscribe("/dnd/start", function(source){console.debug("Starting the drop", source);});dojo.subscribe("/dnd/drop/before", function(source, nodes, copy, target){if(target == c1){console.debug(copy ? "Copying from" : "Moving from", source, "to", target, "before", target.before);}});dojo.subscribe("/dnd/drop", function(source, nodes, copy, target){if(target == c1){console.debug(copy ? "Copying from" : "Moving from", source, "to", target, "before", target.before);}});dojo.connect(c4, "onDndDrop", function(source, nodes, copy, target){if(target == c4){console.debug(copy ? "Copying from" : "Moving from", source);}});};dojo.addOnLoad(init);</script></head><body><h1 class="testTitle">Dojo DnD test</h1><p>Elements of both sources/targets were created dynamically.</p><p>Following selection modes are supported by default:</p><ul><li>Simple click — selects a single element, all other elements will be unselected.</li><li>Ctrl+click — toggles a selection state of an element (use Meta key on Mac).</li><li>Shift+click — selects a range of element from the previous anchor to the current element.</li><li>Ctrl+Shift+click — adds a range of element from the previous anchor to the current element (use Meta key on Mac).</li></ul><p>Following drop modes are supported by default:</p><ul><li>Simple drop — moves elements to the valid target removing them from the source. It can be used to reorganize elements within a single source/target.</li><li>Ctrl+drop — copies elements to the valid target (use Meta key on Mac).</li></ul><div id="dragLists"><div style="float: left; margin: 5px;"><h3>Source 1</h3><div id="container1" class="container"></div></div><div style="float: left; margin: 5px;"><h3>Source 2</h3><div dojoType="dojo.dnd.Source" jsId="c2" class="container"><div class="dojoDndItem">Item <strong>X</strong></div><div class="dojoDndItem">Item <strong>Y</strong></div><div class="dojoDndItem">Item <strong>Z</strong></div></div></div><div style="float: left; margin: 5px;"><h3>Source 3</h3><div dojoType="dojo.dnd.Source" jsId="c3" class="container"><script type="dojo/method" event="creator" args="item, hint">// this is custom creator, which changes the avatar representationvar node = dojo.doc.createElement("div"), s = String(item);node.id = dojo.dnd.getUniqueId();node.className = "dojoDndItem";node.innerHTML = (hint != "avatar" || s.indexOf("Item") < 0) ?s : "<strong style='color: darkred'>Special</strong> " + s;return {node: node, data: item, type: ["text"]};</script><div class="dojoDndItem">Item <strong>Alpha</strong></div><div class="dojoDndItem">Item <strong>Beta</strong></div><div class="dojoDndItem">Item <strong>Gamma</strong></div><div class="dojoDndItem">Item <strong>Delta</strong></div></div></div><div style="float: left; margin: 5px;"><h3>Pure Target 4</h3><div dojoType="dojo.dnd.Target" jsId="c4" class="container"><div class="dojoDndItem">One item</div></div></div><div class="clear"></div></div><p>HTML after</p></body></html>