changeset 1345:01b7c2a38424

delete selected shapes with Del key
author hertzhaft
date Tue, 03 Feb 2015 12:51:59 +0100
parents 3ec94ec07930
children 7c6292ae8725
files webapp/src/main/webapp/jquery/jquery.digilib.measure.js
diffstat 1 files changed, 33 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js	Tue Feb 03 11:45:39 2015 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js	Tue Feb 03 12:51:59 2015 +0100
@@ -1054,9 +1054,40 @@
         return false;
         };
 
-    // keydown handler when measure bar is visible
+    // remove selected shapes or last, if none was selected
+    var removeSelectedShapes = function(data) {
+        var layers = data.vectorLayers;
+        if (layers == null) return;
+        var layer = layers[0];
+        var shapes = layer.shapes;
+        if (shapes == null) return;
+        var shapesDeleted = 0;
+        for (var c = shapes.length; c > 0; --c) {
+            var index = c-1;
+            if (shapes[index].properties.selected) {
+                shapesDeleted++;
+                shapes.splice(index, 1);
+                }
+            }
+        if (shapesDeleted === 0 && shapes.length > 0) {
+            shapes.pop();
+            shapesDeleted++;
+            };
+        layer.renderFn(data, layer);
+        console.debug('measure: shapes deleted:', shapesDeleted);
+        };
+
+    // keydown handler (active when measure bar is visible)
     var onKeyDown = function(event, data) {
-        console.debug('measure: keyDown', event.key)
+        // delete selected shapes
+        if (event.keyCode === 46 || event.key === 'Del') {
+            removeSelectedShapes(data);
+            return false;
+            }
+        // shiftPressed=event.shiftKey;
+        // altPressed  =event.altKey;
+        // ctrlPressed =event.ctrlKey;
+        console.debug('measure: keyDown', event.keyCode, event.key)
         };
 
     // setup a div for accessing the measure functionality