]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/chrome/content/evergreen/util/widgets.js
toward copy editor
[Evergreen.git] / Open-ILS / xul / staff_client / chrome / content / evergreen / util / widgets.js
1 dump('entering util/widgets.js\n');
2
3 if (typeof util == 'undefined') var util = {};
4 util.widgets = {};
5
6 util.widgets.EXPORT_OK  = [ 
7         'get_list_from_tree_selection',
8         'disable_accesskeys_in_node_and_children', 
9         'enable_accesskeys_in_node_and_children', 
10         'remove_children',
11         'make_grid',
12         'make_menulist',
13 ];
14 util.widgets.EXPORT_TAGS        = { ':all' : util.widgets.EXPORT_OK };
15
16 util.widgets.make_menulist = function( items ) {
17         var menulist = document.createElement('menulist');
18         var menupopup = document.createElement('menupopup'); menulist.appendChild(menupopup);
19         for (var i = 0; i < items.length; i++) {
20                 var menuitem = document.createElement('menuitem'); menupopup.appendChild(menuitem);
21                 menuitem.setAttribute('label',items[i][0]);
22                 menuitem.setAttribute('value',items[i][1]);
23         }
24         return menulist;
25 }
26
27 util.widgets.make_grid = function( cols ) {
28         var grid = document.createElement('grid');
29         var columns = document.createElement('columns'); grid.appendChild(columns);
30         for (var i = 0; i < cols.length; i++) {
31                 var column = document.createElement('column'); columns.appendChild(column);
32                 for (var j in cols[i]) {
33                         column.setAttribute(j,cols[i][j]);
34                 }
35         }
36         var rows = document.createElement('rows'); grid.appendChild(rows);
37         return grid;
38 }
39
40 util.widgets.get_list_from_tree_selection = function(tree_w) {
41         var hitlist;
42         if (typeof(tree_w) != 'object') {
43                 tree = document.getElementById(tree_w);
44         } else {
45                 tree = tree_w;
46         }
47         var list = [];
48         var start = new Object();
49         var end = new Object();
50         var numRanges = tree.view.selection.getRangeCount();
51         for (var t=0; t<numRanges; t++){
52                 tree.view.selection.getRangeAt(t,start,end);
53                 for (var v=start.value; v<=end.value; v++){
54                         var i = tree.contentView.getItemAtIndex(v);
55                         list.push( i );
56                 }
57         }
58         return list;
59 }
60
61 util.widgets.remove_children = function(w) {
62         if (typeof w != 'object') w = document.getElementById(w);
63         while(w.lastChild) w.removeChild( w.lastChild );
64 }
65
66 util.widgets.disable_accesskeys_in_node_and_children = function( node ) {
67         if (node.getAttribute('accesskey')) {
68                 node.setAttribute('oldaccesskey', node.getAttribute('accesskey'));
69                 node.setAttribute('accesskey',''); node.accessKey = '';
70         }
71         for (var i = 0; i < node.childNodes.length; i++) {
72                 util.widgets.disable_accesskeys_in_node_and_children( node.childNodes[i] );
73         }
74         dump('- node = <' + node.id + '> accesskey = <' + node.accessKey + '> accesskey = <' + node.getAttribute('accesskey') + '> oldaccesskey = <' + node.getAttribute('oldaccesskey') + '>\n');
75 }
76
77 util.widgets.enable_accesskeys_in_node_and_children = function( node ) {
78         if (node.getAttribute('oldaccesskey')) {
79                 node.setAttribute('accesskey', node.getAttribute('oldaccesskey'));
80                 node.accessKey = node.getAttribute('oldaccesskey'); 
81                 node.setAttribute('oldaccesskey','');
82         }
83         for (var i = 0; i < node.childNodes.length; i++) {
84                 util.widgets.enable_accesskeys_in_node_and_children( node.childNodes[i] );
85         }
86         dump('+ node = <' + node.id + '> accesskey = <' + node.accessKey + '> accesskey = <' + node.getAttribute('accesskey') + '> oldaccesskey = <' + node.getAttribute('oldaccesskey') + '>\n');
87 }
88
89 dump('exiting util/widgets.js\n');