~jstys-z/helioviewer.org/client5

« back to all changes in this revision

Viewing changes to lib/helioviewer/LEGACY/Debug.js

  • Committer: Keith Hughitt
  • Date: 2010-02-17 22:00:59 UTC
  • mfrom: (402.1.68 hv)
  • Revision ID: keith.hughitt@nasa.gov-20100217220059-wmdq7kgokj4seryx
Merged with Keith's branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * @author <a href="mailto:patrick.schmiedel@gmx.net">Patrick Schmiedel</a>
3
 
 * @fileOverview Provides basic debugging functionality to Helioviewer.
4
 
 */
5
 
var Debug = Class.create(
6
 
        /** @lends Debug.prototype */
7
 
        {
8
 
        /**
9
 
         * @description Creates a new Debug instance.
10
 
         * @constructs 
11
 
         */ 
12
 
        initialize: function () {
13
 
                this.outputBuffer  = "";
14
 
                this.outputTimeout = null;              
15
 
        },
16
 
 
17
 
        /**
18
 
         * @description test
19
 
         * @param {Int} xIndex
20
 
         * @param {Int} yIndex
21
 
         * @param {Int} level
22
 
         */
23
 
        test: function (xIndex, yIndex, level) {
24
 
                xIndex = 9;
25
 
                level = 3;
26
 
                for (var l = 0; l <= level; l++) {
27
 
                        var x = (xIndex >> (level - l + 1)) / (1 << l);
28
 
                        var x2 = 1 / (1 << l + 1);
29
 
                        Debug.output(x, (1 << l), (xIndex >> (level - l)), x2);
30
 
                }
31
 
        },
32
 
        
33
 
        /**
34
 
         * @description Outputs text to Firebug's console when available.
35
 
         */
36
 
        output: function () {
37
 
                var txt = '';
38
 
                
39
 
                for (var i = 0; i < arguments.length; i++) {
40
 
                        txt += arguments[i];
41
 
                        if (i < arguments.length - 1) {
42
 
                            txt += ', ';
43
 
                        }
44
 
                }
45
 
                
46
 
                if (window.console) {
47
 
                        window.console.log(txt);
48
 
                } else {
49
 
                        if (Debug.outputTimeout) {
50
 
                            clearTimeout(Debug.outputTimeout);
51
 
                        }
52
 
                        Debug.outputBuffer = txt + '\n' + Debug.outputBuffer;
53
 
                        Debug.outputTimeout = setTimeout(Debug.flush, 100);
54
 
                }
55
 
        },
56
 
        
57
 
        /**
58
 
         * @description Outputs the contents of a JavaScript array.
59
 
         * @param {Array} a Array to output 
60
 
         */
61
 
        plotArray: function (a) {
62
 
                Debug.output('----\n' + Debug.strArray(a, '', 0));
63
 
        },
64
 
        
65
 
        /**
66
 
         * @description Converts an array to a string.
67
 
         * @param {Array} a
68
 
         * @param {int} indent
69
 
         * @param {int} index
70
 
         */
71
 
        strArray: function (a, indent, index) {
72
 
                //Debug.output(typeof(a), a instanceof Array);
73
 
                if (a instanceof Array) {
74
 
                        if (a.length === 0) {
75
 
                            return indent + index + ': []\n';
76
 
                        }
77
 
                        var txt = indent + index + ': [\n';
78
 
                        var c = 0;
79
 
                        a.each(function (m) {
80
 
                                txt += Debug.strArray(m, indent + '  ', c);
81
 
                                ++c;
82
 
                        });
83
 
                        return txt + indent + ']\n';
84
 
                } else {
85
 
                        return indent + index + ': ' + a + '\n';
86
 
                }
87
 
        },
88
 
        
89
 
        /**
90
 
         * @description Flushes output buffer.
91
 
         */
92
 
        flush: function () {
93
 
            if ($('debugOutput')) {
94
 
                $('debugOutput').innerHTML = '----\n' + Debug.outputBuffer + $('debugOutput').innerHTML;
95
 
                Debug.outputBuffer = '';
96
 
            }
97
 
        },
98
 
        
99
 
        /**
100
 
         * @description Outputs informative message when an AJAX request fails.
101
 
         * @param {Object} transport
102
 
         * @param {String} url
103
 
         */
104
 
        ajaxFailure: function (transport, url) {
105
 
                Debug.output('Error getting file "' + url + '": ' + transport.status + ' ' + transport.statusText);
106
 
        }
107
 
});
 
 
b'\\ No newline at end of file'