# HG changeset patch # User hertzhaft # Date 1422954027 -3600 # Node ID 30753bd63eed9c7b21436ada4417d15a5379497a # Parent 6c169dca1ea749ec4eb251f664afe5d258ccc2ce select/unselect shapes diff -r 6c169dca1ea7 -r 30753bd63eed webapp/src/main/webapp/jquery/jquery.digilib.measure.css --- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.css Sun Feb 01 23:26:45 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.css Tue Feb 03 10:00:27 2015 +0100 @@ -88,10 +88,14 @@ margin: 0px 4px 4px 0px; } -.dl-measure-item { +.dl-measure-shape { pointer-events: visibleStroke; } -.dl-measure-item:hover { +.dl-measure-shape:hover { stroke: lightcyan; } + +.dl-measure-selected { + stroke: cyan; +} diff -r 6c169dca1ea7 -r 30753bd63eed webapp/src/main/webapp/jquery/jquery.digilib.measure.js --- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Sun Feb 01 23:26:45 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Tue Feb 03 10:00:27 2015 +0100 @@ -820,6 +820,7 @@ var onRenderShape = function(event, shape) { // event handler for updating shape info var info = function(event) { + selectShape(data, shape); updateInfo(data, shape); _debug_shape('onClick', shape); }; @@ -916,17 +917,37 @@ updateCalculation(data); }; + // select/unselect shape + var selectShape = function(data, shape, select) { + var css = CSS+'measure-selected'; + if (select == null) { + select = !shape.properties.selected } + var cssclass = shapeClass(shape.geometry.type, select ? css : null) + shape.$elem.attr("class", cssclass); + shape.properties.cssclass = cssclass; + shape.properties.selected = select; + }; + + // construct CSS class for svg shape + var shapeClass = function(shapeType, more) { + var css = CSS+'measure-shape '+CSS+'measure-'+shapeType; + if (more != null) { css += ' '+more }; + return css; + }; + // return a shape of the currently selected shape type var newShape = function(data) { + var shapeType = getActiveShapeType(data); return { geometry : { - type : getActiveShapeType(data) + type : shapeType }, properties : { stroke : getSelectedStroke(data), editable : true, - cssclass : 'dl-measure-item', - center : data.settings.drawFromCenter + cssclass : shapeClass(shapeType), + center : data.settings.drawFromCenter, + selected : false } }; };