Changeset 32724


Ignore:
Timestamp:
2019-01-15T10:08:58+13:00 (5 years 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 edited

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
Note: See TracChangeset for help on using the changeset viewer.