Files
openlayers/master/examples/AreaManagerManagingDragItems.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

150 lines
4.9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>AreaManager</title>
<script type="text/javascript" src="../../../../../dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script>
<link rel="stylesheet" type="text/css" href="../../../../../dojo/resources/dojo.css" />
<link rel="stylesheet" type="text/css" href="../../../../../dijit/themes/tundra/tundra.css" />
<script type="text/javascript"><!--
dojo.require("doh.runner");
dojo.require("dojox.mdnd.AreaManager");
dojo.require("dojox.mdnd.DropIndicator");
dojo.require("dojox.mdnd.dropMode.VerticalDropMode");
dojo.declare("AreaManagerTestFixture", null, {
constructor:function(testName, test) {
this.name = testName;
this.runTest = test;
},
setUp:function() {
this.mgr = dojox.mdnd.areaManager();
this.areaA = dojo.byId("areaA");
this.areaB = dojo.byId("areaB");
this.areaC = dojo.byId("areaC");
this.itemA = createItem("itemA");
this.itemB = createItem("itemB");
this.itemC = createItem("itemC");
},
tearDown:function() {
//reinit DOM
var areas = [this.areaA,this.areaB,this.areaC];
for (var i = 0; i < areas.length; i++) {
while (areas[i].firstChild) {
dojo.destroy(areas[i].removeChild(areas[i].lastChild));
}
this.mgr.unregister(areas[i]);
}
delete this.areaA;
delete this.areaB;
delete this.areaC;
delete this.itemA;
delete this.itemB;
delete this.itemC;
}
});
function createItem(id){
return dojo.create('div',{'class':'item', 'id': id});
};
//--------------------------------------
dojo.addOnLoad(function(){
doh.register("AreaManagerManagingDragItems",
[
/*
* Default test of adding an item
*/
new AreaManagerTestFixture("addDragItem",function(){
this.mgr.registerByNode(this.areaA);
this.mgr.addDragItem(this.areaA, this.itemA);
doh.assertEqual(1, this.mgr._areaList.length, "One area should be register!");
var areaItem = this.mgr._areaList[0];
doh.assertEqual(areaItem.items.length, 1, "The register area should contain one item!");
}),
new AreaManagerTestFixture("unregisteredArea",function(){
this.mgr.addDragItem(this.areaB, this.itemA);
doh.assertEqual(0, this.mgr._areaList.length, "An item shouldn't add to an unregitered area");
}),
new AreaManagerTestFixture("addDragItemWithDomAppendedNode",function(){
this.mgr.registerByNode(this.areaB);
this.areaC.appendChild(this.itemA);
this.mgr.addDragItem(this.areaB, this.itemA);
doh.assertEqual(0, this.mgr._areaList[0].items.length, "Item shouldn't append to a node before add");
}),
new AreaManagerTestFixture("addDragItemWithInsideAreaNode",function(){
this.mgr.registerByNode(this.areaC);
this.areaC.appendChild(this.itemA);
this.mgr.addDragItem(this.areaC, this.itemA);
var areaItem = this.mgr._areaList[0];
doh.assertTrue(1, areaItem.items.length);
}),
new AreaManagerTestFixture("addDragItemWithNegativeIndex",function(){
this.mgr.registerByNode(this.areaA);
this.mgr.addDragItem(this.areaA, this.itemA, -1);
var areaItem = this.mgr._areaList[0];
doh.assertEqual(1, areaItem.items.length);
}),
new AreaManagerTestFixture("addDragItemWithOutsideIndex",function(){
this.mgr.registerByNode(this.areaB);
this.mgr.addDragItem(this.areaB, this.itemA);
this.mgr.addDragItem(this.areaB, this.itemB, 100);
var areaItem = this.mgr._areaList[0];
doh.assertEqual(2, areaItem.items.length);
}),
/*
* Default test of removing an item
*/
new AreaManagerTestFixture("removeDragItem",function(){
this.mgr.registerByNode(this.areaA);
this.mgr.addDragItem(this.areaA, this.itemA);
doh.assertEqual(1, this.mgr._areaList[0].items.length);
this.mgr.removeDragItem(this.areaA, this.itemA);
var areaItem = this.mgr._areaList[0];
doh.assertEqual(0, this.mgr._areaList[0].items.length);
}),
new AreaManagerTestFixture("removeWrongDragItem",function(){
this.mgr.registerByNode(this.areaA);
this.mgr.registerByNode(this.areaB);
this.mgr.addDragItem(this.areaA, this.itemA);
this.mgr.removeDragItem(this.areaB, this.itemA);
doh.assertEqual(1, this.mgr._areaList[0].items.length);
doh.assertEqual(0, this.mgr._areaList[1].items.length);
})
]
);
doh.run();
});
//--------------------------------------
--></script>
</head>
<body class="tundra">
<div class="area" id="areaA"></div>
<div class="area" id="areaB"></div>
<div class="area" id="areaC"></div>
</body>
</html>