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 = this.window_knows_me_by + ".cmds." + i + "()";
38 cmd.setAttribute(ev_type, s);
40 default: cmd.addEventListener(ev_type,this.control_map[i][1],false);
49 'render' : function(id) {
50 for (var i in this.render_list) {
53 if (id == this.render_list[i][0]) this.render_list[i][1]();
55 this.render_list[i][1]();
58 var error = 'Problem in circ.checkout.render with\n'
59 + this.render_list[i] + '\n\n' + js2JSON(E);
60 this.error.sdump('D_ERROR',error);
65 dump('exiting util/controller.js\n');