annotate webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js @ 1037:8f6bf570e3a2

factor out calibration/scalemode to new dialogs plugin
author hertzhaft
date Sun, 25 Mar 2012 22:05:23 +0200
parents
children b6056314d5a9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1037
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
1 /**
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
2 digilib dialogs plugin
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
3 */
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
4
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
5 (function($) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
6
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
7 // plugin object with digilib data
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
8 var digilib = null;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
9 // the functions made available by digilib
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
10 var fn = null;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
11 // affine geometry plugin
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
12 var geom = null;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
13
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
14 var modes = [
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
15 { name : "screen",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
16 label : "fit to screen",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
17 tooltip : "scales the graphic file so that it fills the screen"
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
18 },
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
19 { name : "pixel",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
20 label : "pixel by pixel",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
21 tooltip : "all pixels of the current part of the graphic file are shown"
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
22 },
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
23 { name : "size",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
24 label : "original size",
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
25 tooltip : "tries to display the current part of the graphic file in the size of the orginal resource (after screen calibration)"
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
26 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
27 ];
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
28
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
29 var defaults = {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
30 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
31
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
32 var actions = {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
33 // shows Calibration Div
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
34 dialogCalibration : function (data) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
35 fn.showCalibrationDialog(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
36 },
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
37
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
38 // shows ScaleModeSelector
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
39 dialogScaleMode : function (data) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
40 fn.showScaleModeDialog(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
41 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
42 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
43
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
44 /** creates and displays HTML structure for screen calibration
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
45 */
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
46 var showCalibrationDialog = function (data) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
47 var $elem = data.$elem;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
48 var settings = data.settings;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
49 var cssPrefix = settings.cssPrefix;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
50 var $calDiv = $elem.find('#'+cssPrefix+'calibration');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
51 if ($calDiv.length > 0) return; // already onscreen
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
52 var html = '\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
53 <div id="'+cssPrefix+'calibration" class="'+cssPrefix+'calibration">\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
54 <div id="'+cssPrefix+'ruler">\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
55 <div id="'+cssPrefix+'cm">Please enter the length of this scale on your screen</div>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
56 <div>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
57 <input id="'+cssPrefix+'calibrationInput" size="5"/> cm\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
58 <button class="'+cssPrefix+'button" id="'+cssPrefix+'calibrationOk">OK</button>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
59 <button class="'+cssPrefix+'button" id="'+cssPrefix+'calibrationCancel">Cancel</button>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
60 </div>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
61 <div id="'+cssPrefix+'calibrationError" class="'+cssPrefix+'calibration-error">Please enter a numeric value like this: 12.3</div>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
62 </div>\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
63 </div>';
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
64 $calDiv = $(html);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
65 $calDiv.appendTo($elem);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
66 var $input = $calDiv.find('#'+cssPrefix+'calibrationInput');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
67 var $ok = $calDiv.find('#'+cssPrefix+'calibrationOk');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
68 var $cancel = $calDiv.find('#'+cssPrefix+'calibrationCancel');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
69 var $error = $calDiv.find('#'+cssPrefix+'calibrationError');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
70 var handler = function(event) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
71 // var _data = data;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
72 console.log("HANDLER calibration");
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
73 if (event.keyCode == 27 || event.target.id == cssPrefix+'calibrationCancel') {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
74 fn.withdraw($calDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
75 return false;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
76 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
77 if (event.keyCode == 13 || event.target.id == cssPrefix+'calibrationOk') {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
78 var w = $calDiv.width();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
79 var cm = $input.val();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
80 var dpi = fn.cropFloat(w / parseFloat(cm) * 2.54);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
81 console.debug('width', w, 'cm', cm, 'input dpi:', dpi);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
82 if (!fn.isNumber(dpi)) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
83 $input.addClass(cssPrefix+'error');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
84 $error.fadeIn();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
85 return;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
86 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
87 digilib.actions.calibrate(data, dpi);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
88 fn.withdraw($calDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
89 return false;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
90 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
91 $error.fadeOut();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
92 $input.removeClass(cssPrefix+'error');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
93 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
94 $ok.on("click.dialog", handler);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
95 $cancel.on("click.dialog", handler);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
96 $input.on("keypress.dialog", handler);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
97 $input.on("focus.dialog", handler);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
98 $calDiv.fadeIn();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
99 fn.centerOnScreen(data, $calDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
100 $input.focus();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
101 return $calDiv;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
102 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
103
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
104 /** creates and displays HTML structure for scale mode selection
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
105 */
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
106 var showScaleModeDialog = function (data) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
107 var $elem = data.$elem;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
108 var settings = data.settings;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
109 var cssPrefix = settings.cssPrefix;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
110 var $scaleDiv = $elem.find('#'+cssPrefix+'scalemode');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
111 if ($scaleDiv.length > 0) return; // already onscreen
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
112 var html = '\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
113 <div id="'+cssPrefix+'scalemode" style="display:none; z-index:1000; position:absolute">\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
114 <select class="'+cssPrefix+'scalemode" />\
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
115 </div>';
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
116 $scaleDiv = $(html);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
117 $scaleDiv.appendTo($elem);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
118 var mode = fn.getScaleMode(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
119 var $select = $scaleDiv.find('select');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
120 for (var i = 0; i < modes.length; i++) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
121 var m = modes[i];
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
122 var selected = (m.name == mode) ? ' selected="selected"' : '';
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
123 html = '<option name="'+m.name+'"'+selected+'>'+m.label+'</option>';
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
124 $select.append($(html));
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
125 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
126 $select.on('change.scalemode', function(event) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
127 var newMode = $select.find("option:selected").attr("name");
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
128 console.debug('setting mode to:', newMode);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
129 digilib.actions.setScaleMode(data, newMode);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
130 fn.withdraw($scaleDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
131 });
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
132 $select.on('blur.scalemode', function(event) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
133 fn.withdraw($scaleDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
134 });
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
135 // position the element next to the scale button
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
136 var $button = $elem.find('#'+cssPrefix+'button-scale');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
137 // var $button = digilib.buttons['scale'].button;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
138 var buttonRect = geom.rectangle($button);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
139 $scaleDiv.fadeIn();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
140 $select.focus();
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
141 var divRect = geom.rectangle($scaleDiv);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
142 $scaleDiv.offset({
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
143 left : Math.abs(buttonRect.x - divRect.width - 4),
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
144 top : buttonRect.y + 4
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
145 });
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
146 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
147
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
148 // plugin installation called by digilib on plugin object.
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
149 var install = function (plugin) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
150 digilib = plugin;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
151 console.debug('installing dialogs plugin. digilib:', digilib);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
152 fn = digilib.fn;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
153 // import geometry classes
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
154 geom = fn.geometry;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
155 // add defaults, actions, buttons
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
156 $.extend(true, digilib.defaults, defaults); // make deep copy
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
157 $.extend(digilib.actions, actions);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
158 fn.setButtonAction('calibrationx', 'dialogCalibration');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
159 fn.setButtonAction('scale', 'dialogScaleMode');
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
160 // export functions
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
161 fn.showCalibrationDialog = showCalibrationDialog;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
162 fn.showScaleModeDialog = showScaleModeDialog;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
163 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
164
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
165 // plugin initialization
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
166 var init = function (data) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
167 console.debug('initialising dialogs plugin. data:', data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
168 var $data = $(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
169 $data.bind('setup', handleSetup);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
170 // create ScaleMode selector;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
171 // setupScaleModeDiv(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
172 // create Calibration div;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
173 // setupCalibrationDiv(data);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
174 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
175
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
176 var handleSetup = function (evt) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
177 console.debug("dialogs: handleSetup");
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
178 var data = this;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
179 var settings = data.settings;
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
180 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
181
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
182 // plugin object with name and init
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
183 // shared objects filled by digilib on registration
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
184 var plugin = {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
185 name : 'dialogs',
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
186 install : install,
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
187 init : init,
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
188 buttons : {},
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
189 actions : {},
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
190 fn : {},
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
191 plugins : {}
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
192 };
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
193
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
194 if ($.fn.digilib == null) {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
195 $.error("jquery.digilib.dialogs must be loaded after jquery.digilib!");
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
196 } else {
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
197 $.fn.digilib('plugin', plugin);
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
198 }
8f6bf570e3a2 factor out calibration/scalemode to new dialogs plugin
hertzhaft
parents:
diff changeset
199 })(jQuery);