Mercurial > hg > digilib
changeset 1343:30753bd63eed
select/unselect shapes
author | hertzhaft |
---|---|
date | Tue, 03 Feb 2015 10:00:27 +0100 |
parents | 6c169dca1ea7 |
children | 3ec94ec07930 |
files | webapp/src/main/webapp/jquery/jquery.digilib.measure.css webapp/src/main/webapp/jquery/jquery.digilib.measure.js |
diffstat | 2 files changed, 30 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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; +}
--- 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 } }; };