OpenLayers OpenLayers

Changeset 7613

Show
Ignore:
Timestamp:
07/30/08 16:02:10 (5 months ago)
Author:
architect
Message:

Updated drag / resize code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/architect/index.php

    r7575 r7613  
    175175            <!--Start Map Container--> 
    176176            <div id="mapContainer"> 
    177          
    178                 <div id="draggableDivContainer"> 
    179                     <div id="draggableDiv">Drag</div> 
    180                     <div id="draggableDivResize"></div> 
    181                 </div> 
    182                  
     177                         
    183178            </div>   
    184179            <!--End Map Container--> 
    185180            <div id="mapControls"> 
    186                 <form id="mapControlsForm"> 
    187                     X Position:<input id="elementX" type="text" value="" size="3"> 
    188                     Y Position:<input id="elementY"type="text" value="" size="3"> 
    189                     <br /> 
    190                     Width:<input id="elementWidth" type="text" value="" size="3"> 
    191                     Height:<input id="elementHeight" type="text" value="" size="3"> 
    192                     <br /> 
    193                     <input id="editElement" onclick="editElementConfig();" type="button" value="Edit" /> 
    194                     <input id="saveElement" type="button" value="save" /> 
    195                 </form> 
     181     
    196182            </div> 
    197183        </div> 
  • sandbox/architect/scripts/controlConfig.js

    r7548 r7613  
    198198    /*Set the the name to "editMode", this allows us to determine if we should clear toolbox2's content or not.  If the name = editMode, then we should clear toolbox2 once the layer delete button has been pressed*/ 
    199199    $('layerListItems').set('title', 'editMode'); 
     200     
     201    $('draggableDivTitle').innerHTML = "Button <br />" + $('layoutControlConfigTitle').value; 
    200202} 
    201203 
     
    343345    /*Update the height*/ 
    344346    controlToggle.show() 
     347     
     348    /*get rid of the draggable stuff*/ 
     349    //TODO -  
     350    saveMapDragBox(ID, valName, isControlNew); 
     351    emptyMapDrag(); 
     352    emptyMapControls(); 
    345353} 
    346354 
     
    377385        } 
    378386    }   */ 
    379      
     387    createDragBox(ID, controlName); 
     388 
    380389    /*pull values from OpenLayers*/ 
    381390    if(isControlNew == true){ 
  • sandbox/architect/scripts/dragdrop.js

    r7575 r7613  
     1/*global div object*/ 
     2var divs = {  
     3        "div":[] 
     4        /*"ID":"", 
     5        "name":"", 
     6        "x":"", 
     7        "y":"", 
     8        "width":"", 
     9        "height":""*/}; 
     10 
     11var divsLength; 
    112/*global dragLimits*/ 
    213var dragLimitMaxX = 630; 
    314var dragLimitMaxY = 500; 
     15 
     16var dragLimitMinY = 25; 
    417 
    518/*global resizeLimits*/ 
     
    1023var resizeableEl; 
    1124 
    12 var resizeLimitMinX = 45
    13 var resizeLimitMinY = 20; 
     25var resizeLimitMinX = 0
     26var resizeLimitMinY = 30; 
    1427 
    15 window.addEvent('domready', function(){ 
     28function createDragBox(ID, theName){ 
     29    /*Create the HTML*/ 
     30    $('mapContainer').innerHTML =   "<div id='draggableDivContainer'>" 
     31                    +"  <div id='draggableDiv'>Drag</div>" 
     32                    +"  <div id='draggableDivResize'></div>" 
     33                    +"  <div id='draggableDivTitle'>" + theName + "</div>" 
     34                    +"</div>"; 
     35    populateMapControls(); //Create the map controls 
     36 
    1637    /*If we wanted to confine the limits to a certain width or height, we would just specify the values instead of getting the style. i.e. elWidth = 200 
    1738    get element styles - use mootools to get the style, otherwise we'd have to use something like .offsetWidth - borderWidth which isn't as pretty*/ 
     
    3960             
    4061            /*set the limit to the variable set above*/ 
    41             this.limit = { x:[0, dragLimitMaxX], y:[0,dragLimitMaxY] }; 
     62            this.limit = { x:[0, dragLimitMaxX], y:[(dragLimitMinY * -1),dragLimitMaxY] }; 
    4263             
     64            /*Update the values in the mapControls div*/ 
    4365            $('elementX').value = parseInt(this.element.getStyle('left')); 
    44             $('elementY').value = parseInt(this.element.getStyle('top'));  
     66            $('elementY').value = parseInt(this.element.getStyle('top')) + dragLimitMinY;  
    4567        }, 
    4668        onComplete: function(el){ 
     
    4971    }); 
    5072     
    51  
     73    var hidden = false; 
    5274    /*Make the resizeable div.  In this case, there's a small div in the bottom righthand corner that will resize the entire div*/ 
    5375    resizeableEl = $('draggableDivContainer').makeResizable({ 
     
    5880            reSizeLimitMaxX = elWidth - parseInt(this.element.getStyle('left')); 
    5981            reSizeLimitMaxY = elHeight - parseInt(this.element.getStyle('top')); 
    60             this.limit = { x:[resizeLimitMinX, reSizeLimitMaxX], y:[resizeLimitMinY,reSizeLimitMaxY] };  
     82            this.limit = { x:[resizeLimitMinX, reSizeLimitMaxX], y:[resizeLimitMinY,reSizeLimitMaxY] }; 
     83             
     84            /*Update the values in the mapControls div*/     
    6185            $('elementWidth').value = parseInt(this.element.getStyle('width')); 
    62             $('elementHeight').value = parseInt(this.element.getStyle('height'));        
     86            $('elementHeight').value = parseInt(this.element.getStyle('height')) - dragLimitMinY;    
     87            var titlePos = (parseInt(this.element.getStyle('width')) / 2) - (parseInt($('draggableDivTitle').getStyle('width')) / 2); 
     88            $('draggableDivTitle').setStyle('left', titlePos);   
     89            if(parseInt(this.element.getStyle('width')) < (parseInt($('draggableDivTitle').getStyle('width')) + 15) || (parseInt(this.element.getStyle('height')) - resizeLimitMinY) < parseInt($('draggableDivTitle').getStyle('height'))){ 
     90                $('draggableDivTitle').fade(0);                  
     91            } 
     92            else if(parseInt(this.element.getStyle('width')) > (parseInt($('draggableDivTitle').getStyle('width')) + 15) || (parseInt(this.element.getStyle('height')) - resizeLimitMinY) > parseInt($('draggableDivTitle').getStyle('height'))){ 
     93                $('draggableDivTitle').fade(1) 
     94                 
     95            } 
     96             
     97            //if((parseInt(this.element.getStyle('height')) - resizeLimitMinY) < parseInt($('draggableDivTitle').getStyle('height'))){ 
     98            //  $('draggableDivTitle').fade(0);                  
     99            //} 
     100            //else if((parseInt(this.element.getStyle('height')) - resizeLimitMinY) > parseInt($('draggableDivTitle').getStyle('height'))){ 
     101            //  $('draggableDivTitle').fade(1) 
     102                 
     103            //} 
    63104        }, 
    64105        onComplete: function(){ 
    65106        } 
    66107    }); 
    67      
    68 }); 
     108}; 
    69109 
    70110function editElementConfig(){ 
     
    80120     
    81121    var xPos = parseInt($('elementX').value); 
    82     var yPos = parseInt($('elementY').value)
     122    var yPos = parseInt($('elementY').value) - dragLimitMinY
    83123    var elWidth = parseInt($('elementWidth').value); 
    84     var elHeight = parseInt($('elementHeight').value)
     124    var elHeight = parseInt($('elementHeight').value) + dragLimitMinY
    85125     
    86126    if(xPos < dragLimitMaxX) 
     
    92132        draggableEl.element.setStyle('width', elWidth); 
    93133    if(elHeight < reSizeLimitMaxY && elHeight > resizeLimitMinY) 
    94         draggableEl.element.setStyle('height', elHeight) 
    95          
    96              
     134        draggableEl.element.setStyle('height', elHeight)             
    97135} 
     136function emptyMapDrag() { 
     137    $('mapContainer').innerHTML = ""; 
     138} 
     139function emptyMapControls() { 
     140    $('mapControls').innerHTML = ""; 
     141} 
     142function populateMapControls(){ 
     143    $('mapControls').innerHTML =   "<form id='mapControlsForm'>" 
     144                    +"  X Position:<input id='elementX' type='text' value='0' size='3'>" 
     145                    +"  Y Position:<input id='elementY'type='text' value='30' size='3'>" 
     146                    +"  <br />" 
     147                    +"  Width:<input id='elementWidth' type='text' value='80' size='3'>" 
     148                    +"  Height:<input id='elementHeight' type='text' value='70' size='3'>" 
     149                    +"  <br />" 
     150                    +"  <input id='editElement' onclick='editElementConfig();' type='button' value='Edit' />" 
     151                    +"  <input id='saveElement' type='button' value='save' />" 
     152                    +"</form>"; 
     153} 
     154function saveMapDragBox(ID, theName, isNew){ 
     155/*add the current layer id to the map.layer object*/ 
     156    if(isNew == true){ 
     157        eval("var curControl = {'id':'" + ID + "', 'name':'" + theName + "'};"); 
     158        divs.div.push(curControl); //add the current layer id to map.layers 
     159    } 
     160    else 
     161    { 
     162        divs.div[ID].name = theName; 
     163    } 
     164} 
  • sandbox/architect/style.css

    r7575 r7613  
    455455#draggableDivContainer { 
    456456    background-color:#504B42; 
    457     height:50px;   
     457    height:80px;   
    458458    left:0px; 
    459459    position:relative; 
    460460    top:0px;     
    461     width:50px; 
     461    width:100px; 
    462462} 
    463463  
    464464#draggableDiv { 
    465465    background:#628D9D; 
     466    border:1px solid #415E69; 
    466467    cursor:move; 
    467     height:20px;     
    468     left:0px; 
     468    height:25px;     
     469    left:-1px; 
     470    overflow:hidden; 
    469471    position:absolute; 
     472    text-align:center; 
    470473    top:0px; 
    471474    width:100%;  
     
    481484    width:15px; 
    482485} 
    483  
     486#draggableDivTitle { 
     487    background-color:#567D8C; 
     488    margin:0px auto; 
     489    left:20%; 
     490    padding:5px; 
     491    position:absolute; 
     492    text-align:center; 
     493    top:50%; 
     494
     495     
    484496/*======================= 
    485497|   Colors