123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- /*
- * DON'T REMOVE THE FOLLOWING LICENSE
- * INFORMATION!
- * ----------------------------------
- * Copyright by
- * Dennis Ritz
- * Author: Dennis Ritz
- * dennis.ritz@gmx.net
- * 2007-2008
- * ----------------------------------
- */
- var dragObject = new Object();
- var dropObject = new Object();
- var dropDummy = Browser.createElement("div","","","treeNodeDummy");
- function DragAndDrop() {
- this.startDrag = function startDrag(ev,p_dragNode,p_dragType,p_dragID){
-
- ev = ev || window.event;
- ContextMenu.hide(ev);
- var mousepos = mouseCoords(ev);
-
- dragObject.dragNode = p_dragNode.parentNode;
- dragObject.dragBar = p_dragNode;
- dragObject.dropNode = p_dragNode;
- dragObject.dragAction = "move";
- dragObject.dragActionProp = "xy";
- dragObject.dragType = p_dragType;
- dragObject.dragID = p_dragID;
- dragObject.drag = true;
- // Save starting positions of cursor and elements.
- dragObject.cursorStartX = mousepos.x;
- dragObject.cursorStartY = mousepos.y;
- dragObject.elStartLeft = parseInt(dragObject.dragNode.style.left, 10);
- dragObject.elStartTop = parseInt(dragObject.dragNode.style.top, 10);
- dragObject.elStartWidth = parseInt(dragObject.dragNode.style.width, 10);
- dragObject.elStartHeight = parseInt(dragObject.dragNode.style.height, 10);
- if (isNaN(dragObject.elStartLeft)) dragObject.elStartLeft = 0;
- if (isNaN(dragObject.elStartTop)) dragObject.elStartTop = 0;
-
- document.onmouseup = DragAndDrop.stopDrag;
- document.onmousemove = DragAndDrop.drag;
- return false;
- }
-
- this.drag = function drag(ev){
- ev = ev || window.event;
- var mousePos = mouseCoords(ev);
- //standard return false;
- return false;
- }
-
- this.stopDrag = function stopDrag(){
- /* Please never set return false on drag mode */
- if(dragObject.drag) dragObject.drag = false;
-
- try{
- dropDummy.style.background="url('img/GUI/Tree/divider.png')";
- }catch(e){}
-
- document.onmouseup = null;
- document.onmousemove = null;
- if(dropObject.className != null) {
- dropObject.dropNode.className = dropObject.className;
- }
- if(dragObject.dragNode){
- switch(dragObject.dragAction){
- case "move": if(dropObject.dropable) {
- dropObject.dropable = false;
- eval(dropObject.dropComp).dragAndDrop(dragObject.dragType,dragObject.dragID,dropObject.dropType,dropObject.dropID,dropObject.order);
- }
- break;
- }
- }
- return false;
- }
-
- this.setDrop = function setDrop(ev,item,type,p_dropTypes,p_comp,p_dropID){
-
- if(!item) return false;
- if(dragObject.drag) {
- dropObject.dropNode = item.parentNode;
- if(!dropObject.className) dropObject.className = item.parentNode.className;
- dropObject.dropType = type;
- dropObject.dropComp = p_comp;
- dropObject.dropID = p_dropID;
-
- moffset = getMouseOffset(dropObject.dropNode,ev);
- //alert("y: "+Browser.getHeight(item)+"px "+moffset.y+"px x: "+Browser.getWidth(item)+"px "+moffset.x+"px");
- if(dropObject.dropID != dragObject.dragID){
- if(dropObject.dropType == dragObject.dragType && moffset.y < (Browser.getHeight(dropObject.dropNode)*0.30)) {
- dropObject.dropNode.className = dropObject.className;
- dropObject.dropNode.parentNode.previousSibling.style.background="url('img/GUI/Tree/drop.png')";
- dropDummy = dropObject.dropNode.parentNode.previousSibling;
- //dropObject.dropNode.parentNode.parentNode.insertBefore(dropDummy,dropObject.dropNode.parentNode);
- dropObject.order = "before";
- dropObject.dropable = true;
- } else if(dropObject.dropType == dragObject.dragType && moffset.y > (Browser.getHeight(dropObject.dropNode)*0.70)) {
- dropObject.dropNode.className = dropObject.className;
- dropObject.dropNode.parentNode.nextSibling.style.background="url('img/GUI/Tree/drop.png')";
- dropDummy = dropObject.dropNode.parentNode.nextSibling;
- //dropObject.dropNode.parentNode.parentNode.insertBefore(dropDummy,dropObject.dropNode.parentNode.nextSibling);
- dropObject.order = "after";
- dropObject.dropable = true;
- } else if(p_dropTypes.indexOf(dragObject.dragType)>=0) {
- //dropObject.dropNode.nextSibling.appendChild(dropDummy);
- try{
- dropDummy.style.background="url('img/GUI/Tree/divider.png')";
- }catch(e){}
- //Browser.setDisplay(dropObject.dropNode.nextSibling,true);
- if(dropObject.className != null) {
- dropObject.dropNode.className = dropObject.className+"_active";
- }
-
- dropObject.order = "under";
- dropObject.dropable = true;
- } else {
- dropObject.dropable = false;
- try{
- dropDummy.style.background="url('img/GUI/Tree/divider.png')";
- }catch(e){}
- }
- }else{
- dropObject.dropable = false;
- try{
- dropDummy.style.background="url('img/GUI/Tree/divider.png')";
- }catch(e){}
- }
- }else{
- dropObject.dropable = false;
- try{
- dropDummy.style.background="url('img/GUI/Tree/divider.png')";
- }catch(e){}
- }
- return false;
- }
- this.clearDrop = function clearDrop(){
- if(dragObject.drag){
- if(dropObject.dropable)
- dropObject.dropNode.className = dropObject.className;
- dropObject.dropable = false;
- dropObject.dropType = null;
-
- dropObject.className = null;
- }
- }
- }
- var DragAndDrop = new DragAndDrop();
|