Mercurial > hg > digilib
changeset 1346:7c6292ae8725
better comments
author | hertzhaft |
---|---|
date | Tue, 03 Feb 2015 23:52:29 +0100 |
parents | 01b7c2a38424 |
children | 668a62a873b2 |
files | webapp/src/main/webapp/jquery/jquery.digilib.measure.js |
diffstat | 1 files changed, 41 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Tue Feb 03 12:51:59 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Tue Feb 03 23:52:29 2015 +0100 @@ -717,7 +717,7 @@ Grid : { name : 'linegrid', display : 'spacing' }, InterCol : { name : 'intercolumnium', display : 'ratio' } }, - // most recently selected shape + // currently selected shape type activeShapeType : 'Line', // last measured distance lastMeasuredValue : 0, @@ -761,7 +761,6 @@ gridCopies : 10 }; - var _debug_shape = function (msg, shape) { // console.debug('measure: ' + msg, shape.geometry.type, shape.geometry.coordinates); }; @@ -774,7 +773,7 @@ }; $measureBar.toggle(); var on = $measureBar.is(":visible"); - setKeyHandler(data, on); + attachKeyDownHandler(data, on); showSVG(data, on); return; }, @@ -858,10 +857,12 @@ return geom.position(ar * c[0], c[1]); }; var coords = $.map(shape.geometry.coordinates, rectifyPoint); - if (shape.geometry.type === 'Ellipse') { // ellipse formula + // formula for ellipse area + if (shape.geometry.type === 'Ellipse') { return Math.abs((coords[0].x-coords[1].x) * (coords[0].y-coords[1].y) * Math.PI); } - var area = 0; // polygon area algorithm + // algorithm for polygon area + var area = 0; j = coords.length-1; // set j to the last vertex for (i = 0; i < coords.length; i++) { area += (coords[j].x + coords[i].x) * (coords[j].y - coords[i].y); @@ -870,16 +871,16 @@ return Math.abs(area/2); }; - // recalculate factor after entering a new value in input element "value1" + // recalculate factor after a new value was entered into input element "value1" var changeFactor = function(data) { var widgets = data.measureWidgets; var val = parseFloat(widgets.value1.val()); var fac = val / data.lastMeasuredValue; data.measureFactor = fac; - updateCalculation(data); + convertUnits(data); }; - // convert to second unit and display + // convert measured value to second unit and display var updateMeasures = function(data, val, type) { var info = data.settings.shapeInfo[type] var widgets = data.measureWidgets; @@ -887,7 +888,7 @@ var u1 = parseFloat(widgets.unit1.val()); var u2 = parseFloat(widgets.unit2.val()); var ratio = u1 / u2; - var result = (display === 'area') + var result = (display === 'area') // TODO: display unit² ? val * ratio * ratio : val * ratio; widgets.shape.val(type); @@ -895,8 +896,8 @@ widgets.value2.text(fn.cropFloatStr(mRound(result))); }; - // recalculate with new units - var updateCalculation = function(data) { + // convert measured pixel values to new units + var convertUnits = function(data) { var type = getActiveShapeType(data); var display = data.settings.shapeInfo[type].display; var val = data.lastMeasuredValue; @@ -916,13 +917,13 @@ : rectifiedDist(data, shape); data.lastMeasuredValue = val; setActiveShapeType(data, type); - updateCalculation(data); + convertUnits(data); }; - // select/unselect shape + // select/unselect shape (or toggle) var selectShape = function(data, shape, select) { var css = CSS+'measure-selected'; - if (select == null) { + if (select == null) { // toggle select = !shape.properties.selected } var cssclass = shapeClass(shape.geometry.type, select ? css : null) shape.$elem.attr("class", cssclass); @@ -937,7 +938,7 @@ return css; }; - // return a shape of the currently selected shape type + // create a shape of the currently selected shape type var newShape = function(data) { var shapeType = getActiveShapeType(data); return { @@ -954,7 +955,7 @@ }; }; - // dusable the calibration acccording to shapeType + // disable the calibration input var setInputState = function(data) { var widgets = data.measureWidgets; var type = getActiveShapeType(data); @@ -964,30 +965,30 @@ widgets.info.text(display); }; - // return the currently selected shape type + // return the current shape type var getActiveShapeType = function(data) { return data.settings.activeShapeType; }; - // set the currently selected shape type + // set the current shape type (from shape select widget) var changeShapeType = function(data) { data.settings.activeShapeType = data.measureWidgets.shape.val(); setInputState(data); }; - // set the currently selected shape type + // set the current shape type var setActiveShapeType = function(data, type) { data.settings.activeShapeType = type; setInputState(data); }; - // return line color chosen by user + // return line color from settings (TODO: chosen by user) var getSelectedStroke = function(data) { // TODO: colorpicker return data.settings.linecolor; }; - // load shapes into select element + // load shape types into select element var populateShapeSelect = function(data) { var $shape = data.measureWidgets.shape; var shapeInfo = data.settings.shapeInfo; @@ -1019,7 +1020,7 @@ $u2.children(':not(:disabled)')[data.settings.unitTo].selected = true; }; - // show or hide SVG element + // show or hide SVG element (not possible via jQuery .hide/.show) var showSVG = function(data, on) { var layers = data.vectorLayers; if (layers == null) return; @@ -1054,11 +1055,11 @@ return false; }; - // remove selected shapes or last, if none was selected + // remove selected shapes - or the most recent one, if none was selected var removeSelectedShapes = function(data) { var layers = data.vectorLayers; if (layers == null) return; - var layer = layers[0]; + var layer = layers[0]; // hopefully the correct layer? var shapes = layer.shapes; if (shapes == null) return; var shapesDeleted = 0; @@ -1073,25 +1074,25 @@ shapes.pop(); shapesDeleted++; }; - layer.renderFn(data, layer); + layer.renderFn(data, layer); console.debug('measure: shapes deleted:', shapesDeleted); }; - // keydown handler (active when measure bar is visible) + // keydown event handler (active when measure bar is visible) var onKeyDown = function(event, data) { // delete selected shapes if (event.keyCode === 46 || event.key === 'Del') { removeSelectedShapes(data); return false; } - // shiftPressed=event.shiftKey; - // altPressed =event.altKey; - // ctrlPressed =event.ctrlKey; + // 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 - var setKeyHandler = function(data, on) { + // attach/detach the keydown event handler + var attachKeyDownHandler = function(data, on) { if (on) { $(document.body).on('keydown.measure', function(evt) { onKeyDown(evt, data) } @@ -1100,7 +1101,7 @@ $(document.body).off('keydown.measure') } }; - // setup a div for accessing the measure functionality + // set up a div for accessing the measuring functionality var setupMeasureBar = function(data) { console.debug('measure: setupMeasureBar'); var widgets = { @@ -1133,12 +1134,13 @@ populateShapeSelect(data); populateUnitSelects(data); setupMeasureWidgets(data); - setScreenPosition(data, $measureBar); + setScreenPosition(data, $measureBar); + widgets.move.on('mousedown.measure', dragMeasureBar); return $measureBar; }; - // wire the draw button + // wire the draw button and widgets var setupMeasureWidgets = function (data) { console.debug('measure: setupMeasureWidgets'); var widgets = data.measureWidgets; @@ -1157,11 +1159,11 @@ }); widgets.shape.on('change.measure', function(evt) { changeShapeType(data) }); widgets.value1.on('change.measure', function(evt) { changeFactor(data) }); - widgets.unit1.on('change.measure', function(evt) { updateCalculation(data) }); - widgets.unit2.on('change.measure', function(evt) { updateCalculation(data) }); + widgets.unit1.on('change.measure', function(evt) { convertUnits(data) }); + widgets.unit2.on('change.measure', function(evt) { convertUnits(data) }); }; - // event handler + // event handler for setup phase var handleSetup = function (evt) { console.debug("measure: handleSetup"); var data = this; @@ -1171,13 +1173,13 @@ setupMeasureBar(data); }; - // event handler + // event handler for scaler update var handleUpdate = function (evt) { var data = this; console.debug("measure: handleUpdate"); }; - // plugin installation called by digilib on plugin object. + // plugin installation called by digilib on plugin object var install = function (plugin) { digilib = plugin; if (digilib.plugins.vector == null) {