Mercurial > hg > digilib-old
diff webapp/src/main/webapp/jquery/jquery.digilib.regions.js @ 1060:d9abeaa44c49
better region info
author | hertzhaft |
---|---|
date | Sat, 31 Mar 2012 19:56:53 +0200 |
parents | 4aa90cccb3e4 |
children | a45894a81e40 |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Sat Mar 31 15:27:20 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.regions.js Sat Mar 31 19:56:53 2012 +0200 @@ -73,7 +73,7 @@ var actions = { // define a region interactively with two clicked points - "defineRegion" : function(data) { + defineRegion : function(data) { if (!data.settings.isRegionVisible) { alert("Please turn on regions visibility!"); return; @@ -140,7 +140,7 @@ }, // remove the last added region - "removeRegion" : function (data) { + removeRegion : function (data) { if (!data.settings.isRegionVisible) { alert("Please turn on regions visibility!"); return; @@ -153,7 +153,7 @@ }, // show/hide regions - "toggleRegions" : function (data) { + toggleRegions : function (data) { var show = !data.settings.isRegionVisible; data.settings.isRegionVisible = show; fn.highlightButtons(data, 'regions', show); @@ -161,41 +161,48 @@ }, // show region info in a window - "showRegionInfo" : function (data) { + showRegionInfo : function (data) { var $elem = data.$elem; var cssPrefix = data.settings.cssPrefix; - var $info = $elem.find('#'+cssPrefix+'regionInfo'); - if ($info.length > 0) { + var infoselector = '#'+cssPrefix+'regionInfo'; + if (fn.find(data, infoselector)) { fn.withdraw($info); return; } var html = '\ <div id="'+cssPrefix+'regionInfo" class="'+cssPrefix+'keep '+cssPrefix+'regionInfo">\ - <div class="'+cssPrefix+'infoheader">\ - <div class="'+cssPrefix+'infobutton html">HTML</div>\ - <div class="'+cssPrefix+'infobutton svgattr">SVG</div>\ - <div class="'+cssPrefix+'infobutton digilib">Digilib</div>\ - <div class="'+cssPrefix+'infobutton x">X</div>\ - </div>\ + <table class="'+cssPrefix+'infoheader">\ + <tr>\ + <td class="'+cssPrefix+'infobutton html">HTML</td>\ + <td class="'+cssPrefix+'infobutton svgattr">SVG</td>\ + <td class="'+cssPrefix+'infobutton csv">CSV</td>\ + <td class="'+cssPrefix+'infobutton digilib">Digilib</td>\ + <td class="'+cssPrefix+'infobutton x">X</td>\ + </tr>\ + </table>\ </div>'; $info = $(html); $info.appendTo($elem); $info.append(regionInfoHTML(data)); $info.append(regionInfoSVG(data)); + $info.append(regionInfoCSV(data)); $info.append(regionInfoDigilib(data)); var bind = function(name) { - $info.find('div.'+name).on('click.regioninfo', function () { + $info.find('.'+name).on('click.regioninfo', function () { $info.find('div.'+cssPrefix+'info').hide(); $info.find('div.'+cssPrefix+name).show(); + fn.centerOnScreen(data, $info); }); }; bind('html'); bind('svgattr'); + bind('csv'); bind('digilib'); $info.find('.x').on('click.regioninfo', function () { fn.withdraw($info); }); $info.fadeIn(); + fn.centerOnScreen(data, $info); } }; @@ -241,6 +248,20 @@ return $infoDiv; }; + // SVG-style + var regionInfoCSV = function (data) { + var cssPrefix = data.settings.cssPrefix; + var $infoDiv = $('<div class="'+cssPrefix+'info '+cssPrefix+'csv"/>'); + $.each(data.regions, function(index, r) { + var area = [ + fn.cropFloatStr(r.x), + fn.cropFloatStr(r.y), + fn.cropFloatStr(r.width), + fn.cropFloatStr(r.height)].join(','); + $infoDiv.append($('<div/>').text(index+1 + ": " + area)); + }); + return $infoDiv; + }; // digilib-style var regionInfoDigilib = function (data) { var cssPrefix = data.settings.cssPrefix;