broken
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 22 Jun 2005 17:44:30 +0000 (17:44 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 22 Jun 2005 17:44:30 +0000 (17:44 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@910 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/main/app_shell.js

index 7a05d0f..41a8180 100644 (file)
@@ -2,6 +2,41 @@ sdump('D_TRACE','Loading app_shell.js\n');
 
 var tab_count = [ false, false, false, false, false, false, false, false, false, false ];
 
+function debug_tabs( d, tabbox ) {
+       if (typeof(tabbox)!='object')
+               tabbox = d.getElementById(tabbox);
+       if (typeof(tabbox)!='object')
+               throw('Could not find tabbox. d = ' + d + ' tabbox = ' + tabbox + '\n');
+       var tabs = tabbox.firstChild; 
+       var panels = tabbox.lastChild;
+       sdump('D_TAB', d.id + '\t' + tabbox.id + '\n');
+       sdump('D_TAB','\ttabs.childNodes.length = ' + tabs.childNodes.length + '\n');
+       for (var i = 0; i < tabs.childNodes.length; i++) {
+               var tab = tabs.childNodes[i];
+               sdump('D_TAB','\t\t#' + i + '  tab = ' + tab.tagName + ' : ' + tab.id + '\n' );
+               if (tab.childNodes) {
+                       sdump('D_TAB','\t\t\ttab.childNodes.length = ' + tab.childNodes.length + '\n');
+                       for (var j = 0; j < tab.childNodes.length; j++) {
+                               var child = tab.childNodes[j];
+                               sdump('D_TAB','\t\t\t#' + j + ' ' + child.tagName + ' : ' + child.id + '\n');
+                       }
+               }
+       }
+
+       sdump('D_TAB','\tpanels.childNodes.length = ' + panels.childNodes.length + '\n');
+       for (var i = 0; i < panels.childNodes.length; i++) {
+               var panel = panels.childNodes[i];
+               sdump('D_TAB','\t\t#' + i + '  panel = ' + panel.tagName + ' : ' + panel.id + '\n' );
+               if (panel.childNodes) {
+                       sdump('D_TAB','\t\t\tpanel.childNodes.length = ' + panel.childNodes.length + '\n');
+                       for (var j = 0; j < panel.childNodes.length; j++) {
+                               var child = panel.childNodes[j];
+                               sdump('D_TAB','\t\t\t#' + j + ' ' + child.tagName + ' : ' + child.id + '\n');
+                       }
+               }
+       }
+}
+
 function app_shell_init(params) {
        dump("TESTING: app_shell.js: " + mw.G['main_test_variable'] + '\n');
        replace_tab(params.d,'main_tabbox','Tab','chrome://evergreen/content/main/about.xul');
@@ -9,7 +44,7 @@ function app_shell_init(params) {
 }
 
 function close_tab( d, tabbox ) {
-       sdump('D_TAB','calling close_tab( ' + d + ',' + tabbox + ');\n');
+       sdump('D_TAB','calling close_tab( ' + d.id + ',' + tabbox + ');\n');
        if (typeof(tabbox)!='object')
                tabbox = d.getElementById(tabbox);
        if (typeof(tabbox)!='object')
@@ -35,14 +70,22 @@ function close_tab( d, tabbox ) {
                dump(E+'\n');
                throw(E);
        }
-       sdump('D_TAB',' : tabs.childNodes.length = ' + tabs.childNodes.length + '  panels.childNodes.length = ' + panels.childNodes.length + '\n');
+       debug_tabs(d,tabbox);
 }
 
 function delete_tab_contents( tab, panel ) {
-       sdump('D_TAB','calling delete_tab_contents( ' + tab + ',' + panel + ');\n');
+       sdump('D_TAB','calling delete_tab_contents( ' + tab.id + ',' + panel.id + ');\n');
        try {
+               if (tab.childNodes)
+                       sdump('D_TAB','before: tab.childNodes.length = ' + tab.childNodes.length + '\n');
+               if (panel.childNodes)
+                       sdump('D_TAB','before: panel.childNodes.length = ' + panel.childNodes.length + '\n');
                while (tab.lastChild) { tab.removeChild(tab.lastChild); }
                while (panel.lastChild) { panel.removeChild(panel.lastChild); }
+               if (tab.childNodes)
+                       sdump('D_TAB','after: tab.childNodes.length = ' + tab.childNodes.length + '\n');
+               if (panel.childNodes)
+                       sdump('D_TAB','after: panel.childNodes.length = ' + panel.childNodes.length + '\n');
        } catch(E) {
                dump(js2JSON(E)+'\n');
        }
@@ -59,7 +102,7 @@ function first_free_tab_count() {
 }
 
 function new_tab( d, tabbox ) {
-       sdump('D_TAB','calling new_tab( ' + d + ',' + tabbox + ');\n');
+       sdump('D_TAB','calling new_tab( ' + d.id + ',' + tabbox + ');\n');
        if (typeof(tabbox)!='object')
                tabbox = d.getElementById(tabbox);
        if (typeof(tabbox)!='object')
@@ -69,34 +112,54 @@ function new_tab( d, tabbox ) {
        var tc = first_free_tab_count();
        if (tc == -1) { return; } // let's only have up to 10 tabs
        var panel = d.createElement('tabpanel');
-               var pl = d.createElement('label');
-               pl.setAttribute('value','Panel ' + tc);
                panel.setAttribute('flex','1');
-               //panel.setAttribute('style','overflow: auto; min-width: 500px; min-height: 500px;');
                panel.setAttribute('id','panel'+tc);
-               panel.appendChild(pl);
        panels.appendChild(panel);
+       sdump('D_TAB','Created a tabpanel: ' + panel.id + '\n');
 
        var tab = d.createElement('tab');
+               tab.setAttribute('id','tab' + tc );
                tab.setAttribute('label','Tab ' + tc );
                tab.setAttribute('count',tc);
                tab.setAttribute('accesskey',tc);
                tab.setAttribute('linkedpanel','panel'+tc);
        tabs.appendChild(tab);
+       sdump('D_TAB','Created a tab: ' + tab.id + '\n');
        try {
+               sdump('D_TAB','before: tabbox.selectedIndex = ' +
+                       tabbox.selectedIndex +
+                       ' .selectedTab = ' + tabbox.selectedTab.id +
+                       ' .selectedPanel = ' + tabbox.selectedPanel.id + '\n');
+               sdump('D_TAB','before: tabs.selectedIndex = ' +
+                       tabs.selectedIndex + ' .selectedItem = ' +
+                       tabs.selectedItem.id + '\n');
+               sdump('D_TAB','before: panels.selectedIndex = ' +
+                       panels.selectedIndex + ' .selectedPanel = ' +
+                       panels.selectedPanel.id + '\n');
                tabbox.selectedIndex = tc;
                tabs.selectedIndex = tc;
+               sdump('D_TAB','after: tabbox.selectedIndex = ' +
+                       tabbox.selectedIndex +
+                       ' .selectedTab = ' + tabbox.selectedTab.id +
+                       ' .selectedPanel = ' + tabbox.selectedPanel.id + '\n');
+               sdump('D_TAB','after: tabs.selectedIndex = ' +
+                       tabs.selectedIndex + ' .selectedItem = ' +
+                       tabs.selectedItem.id + '\n');
+               sdump('D_TAB','after: panels.selectedIndex = ' +
+                       panels.selectedIndex + ' .selectedPanel = ' +
+                       panels.selectedPanel.id + '\n');
+
                //tabbox.selectedIndex = tabs.childNodes.length - 1;
                //tabs.selectedIndex = tabs.childNodes.length - 1;
                replace_tab(d,tabbox,'Tab','chrome://evergreen/content/main/about.xul');
        } catch(E) {
                dump(js2JSON(E)+'\n');
        }
-       sdump('D_TAB',' : tabs.childNodes.length = ' + tabs.childNodes.length + '  panels.childNodes.length = ' + panels.childNodes.length + '\n');
+       debug_tabs(d,tabbox);
 }
 
 function replace_tab( d, tabbox, label, chrome, params ) {
-       sdump('D_TAB','calling replace_tab( ' + d + ',' + tabbox + ');\n');
+       sdump('D_TAB','calling replace_tab( ' + d.id + ',' + tabbox + ');\n');
        if (typeof(tabbox)!='object')
                tabbox = d.getElementById(tabbox);
        if (typeof(tabbox)!='object')
@@ -112,10 +175,12 @@ function replace_tab( d, tabbox, label, chrome, params ) {
                tab.setAttribute('label',label + ' ' + tab.getAttribute('count') );
 
                var frame = d.createElement('iframe');
+               frame.setAttribute('id','frame'+tab.getAttribute('count'));
                frame.setAttribute('flex','1');
                //frame.setAttribute('style','overflow: scroll; min-height: 500px; min-width: 500px;');
                frame.setAttribute('src',chrome);
                panel.appendChild(frame);
+               sdump('D_TAB','Created frame : ' + frame.id + ' for tab : ' + tab.id + ' and panel : ' + panel.id + '\n');
                //frame.contentWindow.parentWindow = parentWindow;
                //frame.contentWindow.tabWindow = this;
                //dump('replace_tab.tabWindow = ' + this + '\n');
@@ -128,6 +193,5 @@ function replace_tab( d, tabbox, label, chrome, params ) {
        } catch(E) {
                dump(js2JSON(E)+'\n');
        }
-       sdump('D_TAB',' : tabs.childNodes.length = ' + tabs.childNodes.length + '  panels.childNodes.length = ' + panels.childNodes.length + '\n');
-
+       debug_tabs(d,tabbox);
 }