annotate client/digitallibrary/jquery/jquery.digilib.pluginstub.js @ 869:5396529b3f46 jquery

treat arrows as normal buttons; factor out createButton()
author hertzhaft
date Thu, 17 Mar 2011 12:20:36 +0100
parents 4f4f455ebbdb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
801
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
1 /**
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
2 digilib plugin stub
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
3 */
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
4
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
5 (function($) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
6
806
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
7 // affine geometry
801
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
8 var geom;
806
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
9 // plugin object with digilib data
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
10 var digilib;
801
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
11
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
12 var FULL_AREA;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
13
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
14 var buttons = {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
15 stub : {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
16 onclick : ["doStub", 1],
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
17 tooltip : "what does this button do?",
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
18 icon : "stub.png"
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
19 }
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
20 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
21
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
22 var defaults = {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
23 // is stub active?
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
24 'isStubActive' : true
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
25 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
26
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
27 var actions = {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
28 // action code goes here
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
29 doStub : function (data, param) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
30 var settings = data.settings;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
31 console.log('isStubActive', settings.isStubActive);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
32 // do some useful stuff ...
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
33 }
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
34 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
35
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
36 // plugin installation called by digilib on plugin object.
806
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
37 var install = function(plugin) {
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
38 digilib = plugin;
801
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
39 console.debug('installing stub plugin. digilib:', digilib);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
40 // import geometry classes
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
41 geom = digilib.fn.geometry;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
42 FULL_AREA = geom.rectangle(0,0,1,1);
806
4f4f455ebbdb regions plugin works, inclunding event handlers
hertzhaft
parents: 801
diff changeset
43 // add defaults, actins, buttons
801
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
44 $.extend(digilib.defaults, defaults);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
45 $.extend(digilib.actions, actions);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
46 $.extend(digilib.buttons, buttons);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
47 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
48
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
49 // plugin initialization
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
50 var init = function (data) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
51 console.debug('initialising stub plugin. data:', data);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
52 var $data = $(data);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
53 // install event handler
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
54 $data.bind('setup', handleSetup);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
55 $data.bind('update', handleUpdate);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
56 $data.bind('redisplay', handleRedisplay);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
57 $data.bind('dragZoom', handleDragZoom);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
58 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
59
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
60
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
61 var handleSetup = function (evt) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
62 console.debug("stub: handleSetup");
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
63 var data = this;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
64 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
65
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
66 var handleUpdate = function (evt) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
67 console.debug("stub: handleUpdate");
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
68 var data = this;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
69 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
70
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
71 var handleRedisplay = function (evt) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
72 console.debug("stub: handleRedisplay");
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
73 var data = this;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
74 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
75
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
76 var handleDragZoom = function (evt, zoomArea) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
77 var data = this;
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
78 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
79
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
80 // plugin object with name and init
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
81 // shared objects filled by digilib on registration
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
82 var plugin = {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
83 name : 'pluginstub',
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
84 install : install,
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
85 init : init,
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
86 buttons : {},
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
87 actions : {},
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
88 fn : {},
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
89 plugins : {}
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
90 };
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
91
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
92 if ($.fn.digilib == null) {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
93 $.error("jquery.digilib.pluginstub must be loaded after jquery.digilib!");
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
94 } else {
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
95 $.fn.digilib('plugin', plugin);
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
96 }
2fb1f576375d stub for new plugins; overlay div for regions plugin
hertzhaft
parents:
diff changeset
97 })(jQuery);