Changeset 6524


Ignore:
Timestamp:
09/12/06 16:25:12 (5 years ago)
Author:
sam
Message:

Corrected dragging out algo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Wsp_Modeling/spaces/gen/modelBuilder/bs.doss/_common/sm/webSiteGenerator/scDragMgr.js

    r6514 r6524  
    169169                var parent = item1.parentNode 
    170170                parent.removeChild(item1) 
    171                 parent.insertBefore(item1, item2 ? item2.nextSibling : null) 
     171                parent.insertBefore(item1, item2 ? scDragMgr.helpers.nextItem(item2, item2.nodeName) : null) 
    172172        }, 
    173173         
     
    724724        fFirstCatchments : new Array(), 
    725725        fLastCatchments : new Array(), 
    726         fDragContainer : document.createElement("DIV"), 
    727726 
    728727        // EXTERNAL functions ======================================================== 
     
    10181017        }, 
    10191018 
    1020         // INTERNAL remove Item from current container and keep in temp storage 
    1021         _floatItem : function(pDragEvent) { 
     1019        // INTERNAL drag/drop functions 
     1020        _IsDropable : function(pDragEvent) { 
     1021                return( this.fMaxLabels == -1 || scDragMgr.dragdrop.countLabels(this.fContainer) < this.fMaxLabels || pDragEvent.group.element.parentNode.fCatchment == this ) 
     1022        }, 
     1023        _onDragOver : function(pDragEvent) { 
    10221024                var vGroup = pDragEvent.group 
    10231025                var vItem = pDragEvent.group.element 
    1024                 var vCurrentContainer = vItem.parentNode 
    1025                 var vCurrentCatchment = vCurrentContainer.fCatchment 
    1026                 vItem.fLastContainer = null 
     1026                var vCurrentCatchment = vItem.parentNode.fCatchment 
     1027                 
    10271028                vCurrentCatchment.onDragOut() 
    10281029                vCurrentCatchment.className = vCurrentCatchment.fInitClass 
    10291030                vCurrentCatchment.fContainer.removeChild(vItem) 
    10301031                vCurrentCatchment.xUpdateGui() 
    1031                 scDragMgr.dragdrop.fDragContainer.style["position"] = 'absolute' 
    1032                 scDragMgr.dragdrop.fDragContainer.style["top"] = '0px' 
    1033 //              scDragMgr.dragdrop.fDragContainer.className = vCurrentContainer.className 
    1034                 document.body.appendChild(scDragMgr.dragdrop.fDragContainer) 
    1035                 scDragMgr.dragdrop.fDragContainer.appendChild(vItem) 
    1036         }, 
    1037  
    1038         // INTERNAL remove Item from temp storage 
    1039         _unfloatItem : function(pDragEvent) { 
    1040                 var vItem = pDragEvent.group.element 
    1041                 if (vItem.parentNode == scDragMgr.dragdrop.fDragContainer){ 
    1042                         scDragMgr.dragdrop.fDragContainer.removeChild(vItem) 
    1043                         document.body.removeChild(scDragMgr.dragdrop.fDragContainer) 
    1044                 } 
    1045         }, 
    1046          
    1047         // INTERNAL drag/drop functions 
    1048         _IsDropable : function(pDragEvent) { 
    1049                 return( this.fMaxLabels == -1 || scDragMgr.dragdrop.countLabels(this.fContainer) < this.fMaxLabels || pDragEvent.group.element.parentNode.fCatchment == this ) 
    1050         }, 
    1051         _onDragOver : function(pDragEvent) { 
    1052                 var vGroup = pDragEvent.group 
    1053                 var vItem = pDragEvent.group.element 
    1054                 if(vItem.fLastContainer == null){ 
    1055                         scDragMgr.dragdrop._unfloatItem(pDragEvent) 
    1056                 }else{ 
    1057                         var vCurrentCatchment = vItem.parentNode.fCatchment 
    1058                         vCurrentCatchment.onDragOut() 
    1059                         vCurrentCatchment.className = vCurrentCatchment.fInitClass 
    1060                         vCurrentCatchment.fContainer.removeChild(vItem) 
    1061                         vCurrentCatchment.xUpdateGui() 
    1062                 } 
    10631032                this.fContainer.appendChild(vItem) 
    10641033                vItem.fLastContainer = this.fContainer 
     
    10681037        }, 
    10691038        _onDragOut : function(pDragEvent) { 
    1070                 scDragMgr.dragdrop._floatItem(pDragEvent) 
     1039                var vItem = pDragEvent.group.element 
     1040                var vCurrentContainer = vItem.parentNode 
     1041                var vCurrentCatchment = vCurrentContainer.fCatchment 
     1042                 
     1043                vCurrentCatchment.onDragOut() 
     1044                vCurrentCatchment.className = vCurrentCatchment.fInitClass 
     1045                vItem.fLastContainer = null 
     1046                 
     1047                if (vCurrentContainer != vItem.fStartContainer) { 
     1048                        vCurrentCatchment.fContainer.removeChild(vItem) 
     1049                        vCurrentCatchment.xUpdateGui() 
     1050                         
     1051                        if (vItem.fStartPrevSibling) vItem.fStartContainer.insertBefore(vItem, vItem.fStartPrevSibling ? scDragMgr.helpers.nextItem(vItem.fStartPrevSibling, vItem.fStartPrevSibling.nodeName) : null) 
     1052                        else if (vItem.fStartNextSibling) vItem.fStartContainer.insertBefore(vItem, vItem.fStartNextSibling) 
     1053                        else vItem.fStartContainer.appendChild(vItem) 
     1054                } else { 
     1055                        if (vItem.fStartPrevSibling) scDragMgr.helpers.moveAfter(vItem, vItem.fStartPrevSibling) 
     1056                        else if (vItem.fStartNextSibling) scDragMgr.helpers.moveBefore(vItem, vItem.fStartNextSibling) 
     1057                } 
     1058                vItem.fStartContainer.fCatchment.xUpdateGui() 
    10711059        }, 
    10721060        _onDropReposition : function(pDragEvent) { 
     
    11161104                var vItem = pDragEvent.group.element 
    11171105                 
    1118                 // update all Catchment bounds, since they may have changed on a previous drag 
    11191106                var vCatchment = scDragMgr.dragdrop.fFirstCatchments[vItem.fKey] 
    11201107                while (vCatchment != null) { 
     
    11231110                        vCatchment = vCatchment.fNextCatchment 
    11241111                } 
    1125                 // item starts out over current parent 
    11261112                vItem.fStartContainer = vItem.parentNode 
     1113                vItem.fStartPrevSibling = scDragMgr.helpers.previousItem(vItem, vItem.nodeName) 
     1114                vItem.fStartNextSibling = scDragMgr.helpers.nextItem(vItem, vItem.nodeName) 
    11271115                vItem.fLastContainer = vItem.fStartContainer 
    11281116                vItem.className = vItem.fInitClass + " " + vItem.fDragClass 
     
    11451133                        vCatchment = vCatchment.fNextCatchment 
    11461134                } 
    1147                 // If we are outside all catchment zones then float the item if needed 
     1135                // If we are outside all catchment zones then init the item position if needed 
    11481136                if (vIsOutside) { 
    11491137                        if (vItem.fLastContainer != null) { 
     
    11601148                var vItem = pDragEvent.group.element 
    11611149                 
    1162                 // If we are still floated (not in any catchment zone) then restore the item to it's original container 
    1163                 if (vItem.fLastContainer == null && vItem.fStartContainer) { 
    1164                         vItem.fStartContainer.fCatchment.xOnDragOver(pDragEvent, vItem.fStartContainer.fCatchment) 
    1165                 } 
    11661150                vItem.className = vItem.fInitClass 
    11671151                vItem.parentNode.fCatchment.onDragOut() 
Note: See TracChangeset for help on using the changeset viewer.