diff options
Diffstat (limited to 'includes/js/dojo/tests/dnd/test_dnd.html')
| -rw-r--r-- | includes/js/dojo/tests/dnd/test_dnd.html | 130 | 
1 files changed, 130 insertions, 0 deletions
| diff --git a/includes/js/dojo/tests/dnd/test_dnd.html b/includes/js/dojo/tests/dnd/test_dnd.html new file mode 100644 index 0000000..7e2a56a --- /dev/null +++ b/includes/js/dojo/tests/dnd/test_dnd.html @@ -0,0 +1,130 @@ +<!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 events +			dojo.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 representation +					var 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> | 
