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.event_listeners = new EventListenerList();
20 this.control_map = params.control_map;
21 this.window_knows_me_by = params.window_knows_me_by;
22 this.render_list = [];
25 for (var i in this.control_map) {
26 var cmd = document.getElementById(i);
28 for (var j in this.control_map[i][0]) {
29 if (this.control_map[i][1]) {
30 var ev_type = this.control_map[i][0][j];
33 this.render_list.push( [i, this.control_map[i][1](cmd)] );
36 if (!this.window_knows_me_by)
37 throw('util.controller: on_command requires window_knows_me_by');
38 var s = 'try{'+this.window_knows_me_by+".cmds."+i+"(event);}catch(E){alert(E);}";
39 cmd.setAttribute(ev_type, s);
40 this.cmds[i] = this.control_map[i][1];
42 default: this.event_listeners.add(cmd, ev_type,this.control_map[i][1],false);
51 'cleanup' : function() {
53 obj.event_listeners.removeAll();
56 'render' : function(id,param) {
57 for (var i in this.render_list) {
60 if (id == this.render_list[i][0]) this.render_list[i][1](param);
62 this.render_list[i][1](param);
65 var error = 'Problem in util.controller.render with\n'
66 + this.render_list[i] + '\n\n' + js2JSON(E);
67 this.error.sdump('D_WARN',error);
72 dump('exiting util/controller.js\n');