Changeset 32724 for gs3-extensions

Show
Ignore:
Timestamp:
15.01.2019 10:08:58 (9 months ago)
Author:
ak19
Message:

Potential fix for a history bug found after resizing rectangles and circles

Location:
gs3-extensions/map-editor/DrawingManager
Files:
5 added
2 modified

Legend:

Unmodified
Added
Removed
  • gs3-extensions/map-editor/DrawingManager/historyManager.js

    r32723 r32724  
    2727 
    2828    //Deactivated at the moment 
    29     if (enableSelectionFeature) { 
    30         selectedShapes = []; 
    31         var i = 0; 
    32         var lastEntry = prevOverlays[prevOverlays.length - 1][i]; 
    33         console.log(prevOverlays[prevOverlays.length - 1].length); 
    34  
    35         for (var i = 0; i < lastEntry.length; i++) { 
    36             selectedShapes.push(prevOverlays) 
    37             console.log("comes here"); 
    38         } 
    39  
    40     } 
     29    //if (enableSelectionFeature) { 
     30    //  selectedShapes = []; 
     31    //  var i = 0; 
     32    //  var lastEntry = prevOverlays[prevOverlays.length - 1][i]; 
     33    //  console.log(prevOverlays[prevOverlays.length - 1].length); 
     34    // 
     35    //  for (var i = 0; i < lastEntry.length; i++) { 
     36    //      selectedShapes.push(prevOverlays) 
     37    //      console.log("comes here"); 
     38    //  } 
     39    // 
     40    //} 
    4141} 
    4242 
     
    144144    var fillOpacity = rect.fillOpacity; 
    145145    var bounds = rect.getBounds(); 
     146    var type = rect.type; 
    146147    //var editable      = rect.editable; 
    147148 
     
    154155            bounds: bounds, 
    155156            draggable: true, 
    156             editable: false 
     157            editable: false, 
     158            type: type 
    157159        }); 
    158160 
     
    238240 
    239241function historyOverlayPush() { 
     242    if(undoneOverlays.length > 0) {  
     243        for(var i = 0; i < undoneOverlays.length; i++) { 
     244             
     245            entryType.pop(); 
     246        }        
     247    } 
    240248    undoneOverlays = []; 
    241     var overlays_copy = []; 
    242     for (var i = 0; i < overlays.length; i++) { 
    243          
    244         var clone_shape = cloneShape(overlays[i]); 
    245         if (overlayItemIsShape(clone_shape)) { 
    246             addShapeListeners(clone_shape, null); // don't have an overlay event! 
    247         } else { 
    248             addMarkerListeners(clone_shape, null); // don't have an overlay event! 
    249         } 
    250         overlays_copy[i] = clone_shape; 
    251     } 
    252  
    253     prevOverlays.push(overlays_copy); 
    254  
     249    //if(resizeEntry){ 
     250            //prevOverlays.push(presentOverlays[0]); 
     251             
     252    //} else { 
     253        var overlays_copy = []; 
     254        for (var i = 0; i < overlays.length; i++) { 
     255            var clone_shape = cloneShape(overlays[i]); 
     256            if(resizeEntry) { 
     257                //console.log("hey lol"); 
     258                clone_shape = cloneShape(presentOverlays[0][i]); 
     259            } 
     260            if (overlayItemIsShape(clone_shape)) { 
     261                addShapeListeners(clone_shape, null); // don't have an overlay event! 
     262            } else { 
     263                addMarkerListeners(clone_shape, null); // don't have an overlay event! 
     264            } 
     265            overlays_copy[i] = clone_shape; 
     266        } 
     267        prevOverlays.push(overlays_copy);        
     268    //} 
    255269} 
    256270 
    257271function presentOverlayPush() { 
    258     if (resizeEntry) { 
    259         prevOverlays.push(presentOverlays[0]); 
    260     } 
     272     
     273    //clean the entry type array 
     274 
     275    if(resizeEntry) { 
     276        entryType.push("resize"); 
     277    } else { 
     278        entryType.push("not resize"); 
     279    } 
     280     
    261281    presentOverlays = []; 
    262282    var overlays_copy = []; 
     
    274294 
    275295function undoneOverlaysPush() { 
     296     
    276297    var conditionUndone = presentOverlays[presentOverlays.length - 1] !== undefined; 
    277298 
     
    284305    if (conditionPresent) { 
    285306        presentOverlays.push(prevOverlays[prevOverlays.length - 1]); 
    286  
    287     } 
    288 } 
     307    } 
     308} 
  • gs3-extensions/map-editor/DrawingManager/index.js

    r32723 r32724  
    1010var opacityValue = 0.4; 
    1111var overlays = []; 
     12var entryType = []; 
    1213var drawingManager; 
    1314var selectedShape; 
     
    4243        setSelectedOpacity(opacityValue); 
    4344    } 
    44      
     45 
    4546    document.getElementById("thicknessRange").addEventListener("mousedown", shapeSpecsChangeMD); 
    4647    document.getElementById("colourOpacity").addEventListener("mousedown", shapeSpecsChangeMD); 
     
    5152}); 
    5253 
     54document.addEventListener("mousedown", function(){ 
     55     
     56  //console.log(document.body.style.cursor); 
     57 // console.log(document.getElementById("map").style.cursor); 
     58}); 
    5359function shapeSpecsChangeMD() { 
    5460    if (selectedShapes.length > 0) { 
     
    115121            center: {lat: -34.397, lng: 150.644 
    116122            }, 
    117             zoom: 8, 
     123            zoom: 2, 
    118124        }); 
    119125 
    120126    drawingManager = new google.maps.drawing.DrawingManager({ 
    121             drawingMode: google.maps.drawing.OverlayType.MARKER, 
     127            drawingMode: google.maps.drawing.OverlayType.RECTANGLE, 
    122128            drawingControl: true, 
    123129            drawingControlOptions: { 
     
    138144    //overlays.push(event.overlay); // store reference to added overlay 
    139145    google.maps.event.addListener(drawingManager, 'overlaycomplete', function (e) { 
     146        console.log(e); 
    140147         
    141148        historyOverlayPush(); 
     
    257264    google.maps.event.addListener(newShape, 'dragstart', function (e) { 
    258265         
     266         
     267         
    259268        beingDragged = true; 
    260269        historyOverlayPush(); 
     
    278287     
    279288    google.maps.event.addListener(newShape, 'drag', function (e) { 
     289         
     290         
    280291 
    281292        //for(var i = 0; i < selectedShapes.length; i++) { 
     
    287298        //          west: selectedShapes[i].getBounds().ea.j + (selectedShapes[i].getBounds().ea.j - mal) 
    288299        //      } 
    289         //      selectedShapes[i].set 
     300        //      selectedShapes[i].setBounds 
    290301        //  } else { 
    291              
     302        // 
    292303        //  } 
    293304        //   
     
    299310     
    300311    google.maps.event.addListener(newShape, 'dragstart', function (e) { 
     312         
     313        //faj = newShape.bounds.fa.j; 
     314        //fal = newShape.bounds.fa.l; 
     315        //maj = newShape.bounds.ma.j; 
     316        //mal = newShape.bounds.ma.l; 
     317         
     318        //console.log(faj, fal, maj, mal); 
     319     
    301320         
    302321        beingDragged = true; 
     
    315334        if (beingDragged == false){ 
    316335            resizeEntry = true; 
     336            historyOverlayPush(); 
    317337            presentOverlayPush(); 
    318338            resizeEntry = false; 
    319339        } 
     340         
    320341    }); 
    321342 
    322343    //Add an event listener to select a shape if the mouse hovers over it 
    323344    google.maps.event.addListener(newShape, 'mousedown', function (e) { 
     345        //console.log(e); 
    324346        if (e.vertex !== undefined || e.edge !== undefined) { 
    325347            historyOverlayPush() 
     
    355377     
    356378//Set selection for the selected overlay 
    357     function setSelection(shape, e) {    
    358         if (shape.type !== 'marker') { 
    359             if (shiftKeyPressed == false) { 
    360                 if (e.vertex == undefined) { 
    361                     if(e.edge == undefined) {                    
    362                         clearSelection(); 
    363                         shape.setEditable(true); 
    364                     } 
     379function setSelection(shape, e) {    
     380    if (shape.type !== 'marker') { 
     381        if (shiftKeyPressed == false) { 
     382            if (e.vertex == undefined) { 
     383                if(e.edge == undefined) {                    
     384                    clearSelection(); 
     385                    shape.setEditable(true); 
    365386                } 
    366387            } 
    367             if (selectedShapes.includes(shape)) { 
    368                 if(e.vertex == undefined ) { 
    369                     if(e.edge == undefined) { 
    370                         //removeFromSelectedShapes(shape); 
    371                     } 
     388        } 
     389        if (selectedShapes.includes(shape)) { 
     390            if(e.vertex == undefined ) { 
     391                if(e.edge == undefined) { 
     392                    //removeFromSelectedShapes(shape); 
    372393                } 
    373             } else { 
    374                 shape.setEditable(true); 
    375                 selectedShapes.push(shape); 
    376             } 
    377  
    378  
    379             //Send the values to be updated 
    380             var thi = shape.strokeWeight; 
    381             var opa = shape.fillOpacity; 
    382             var fCol = shape.fillColor; 
    383             var sCol = shape.strokeColor; 
    384             updateMenuValues(thi, opa, fCol, sCol); 
    385  
    386         } else if (shape.type == 'marker') { 
    387             clearSelection(); 
    388         } 
    389         selectedShape = shape; 
    390     } 
    391      
     394            } 
     395        } else { 
     396            shape.setEditable(true); 
     397            selectedShapes.push(shape); 
     398        } 
     399 
     400 
     401        //Send the values to be updated 
     402        var thi = shape.strokeWeight; 
     403        var opa = shape.fillOpacity; 
     404        var fCol = shape.fillColor; 
     405        var sCol = shape.strokeColor; 
     406        updateMenuValues(thi, opa, fCol, sCol); 
     407 
     408    } else if (shape.type == 'marker') { 
     409        clearSelection(); 
     410    } 
     411    selectedShape = shape; 
     412} 
     413 
     414function boundsExtraction() { 
     415     
     416     
     417} 
    392418 
    393419function removeFromSelectedShapes(shape) { 
     
    399425        } 
    400426        allowDeselect = false; 
    401     } 
    402      
    403      
     427    }    
    404428} 
    405429     
     
    468492} 
    469493 
     494 
    470495function printHistory() { 
    471496    console.log("prev", prevOverlays); 
    472497    console.log("present ", presentOverlays); 
    473498    console.log("undone ", undoneOverlays); 
     499    console.log(entryType); 
    474500} 
    475501