1 dump('entering util/controller.js\n');
3 if (typeof util == 'undefined') util = {};
4 util.controller = function () {
6 JSAN.use('util.error'); this.error = new util.error();
11 util.controller.prototype = {
15 'init' : function (params) {
17 if (typeof params.control_map == 'undefined') throw('util.controller.init: No control_map');
19 this.control_map = params.control_map;
20 this.window_knows_me_by = params.window_knows_me_by;
21 this.render_list = [];
24 for (var i in this.control_map) {
25 var cmd = document.getElementById(i);
27 for (var j in this.control_map[i][0]) {
28 if (this.control_map[i][1]) {
29 var ev_type = this.control_map[i][0][j];
32 this.render_list.push( [i, this.control_map[i][1](cmd)] );
35 if (!this.window_knows_me_by)
36 throw('util.controller: on_command requires window_knows_me_by');
37 var s = 'try{'+this.window_knows_me_by+".cmds."+i+"();}catch(E){alert(E);}";
38 cmd.setAttribute(ev_type, s);
39 this.cmds[i] = this.control_map[i][1];
41 default: cmd.addEventListener(ev_type,this.control_map[i][1],false);
50 'render' : function(id) {
51 for (var i in this.render_list) {
54 if (id == this.render_list[i][0]) this.render_list[i][1]();
56 this.render_list[i][1]();
59 var error = 'Problem in circ.checkout.render with\n'
60 + this.render_list[i] + '\n\n' + js2JSON(E);
61 this.error.sdump('D_ERROR',error);
66 dump('exiting util/controller.js\n');