From 70ca3999683a00cd1c976a68e1dea30e98c445f8 Mon Sep 17 00:00:00 2001 From: Eitan Isaacson Date: Fri, 20 Jul 2012 09:46:54 -0700 Subject: [PATCH] Bug 775661 - Added dump tree Logger method, and states to string function. r=davidb --- accessible/src/jsat/Utils.jsm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/accessible/src/jsat/Utils.jsm b/accessible/src/jsat/Utils.jsm index a35efd22a30c..2c86a278639e 100644 --- a/accessible/src/jsat/Utils.jsm +++ b/accessible/src/jsat/Utils.jsm @@ -165,5 +165,32 @@ var Logger = { } return str; - } + }, + + statesToString: function statesToString(aAccessible) { + let [state, extState] = Utils.getStates(aAccessible); + let stringArray = []; + let stateStrings = gAccRetrieval.getStringStates(state, extState); + for (var i=0; i < stateStrings.length; i++) + stringArray.push(stateStrings.item(i)); + return stringArray.join(' '); + }, + + dumpTree: function dumpTree(aLogLevel, aRootAccessible) { + if (aLogLevel < this.logLevel) + return; + + this._dumpTreeInternal(aLogLevel, aRootAccessible, 0); + }, + + _dumpTreeInternal: function _dumpTreeInternal(aLogLevel, aAccessible, aIndent) { + let indentStr = ''; + for (var i=0; i < aIndent; i++) + indentStr += ' '; + this.log(aLogLevel, indentStr, + this.accessibleToString(aAccessible), + '(' + this.statesToString(aAccessible) + ')'); + for (var i=0; i < aAccessible.childCount; i++) + this._dumpTreeInternal(aLogLevel, aAccessible.getChildAt(i), aIndent + 1); + } };