src/cm/media/js/lib/yui/yui3.0.0/build/console/console.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('console', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * Console creates a visualization for messages logged through calls to a YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * instance's <code>Y.log( message, category, source )</code> method.  The
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * debug versions of YUI modules will include logging statements to offer some
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * insight into the steps executed during that module's operation.  Including
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 * log statements in your code will cause those messages to also appear in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
 * Console.  Use Console to aid in developing your page or application.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * Entry categories &quot;info&quot;, &quot;warn&quot;, and &quot;error&quot;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 * are also referred to as the log level, and entries are filtered against the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
 * configured logLevel.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
 * @module console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
 * @class Console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
 * @extends Widget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
 * @param conf {Object} Configuration object (see Configuration attributes)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
 * @constructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
function Console() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
    Console.superclass.constructor.apply(this,arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
var getCN = Y.ClassNameManager.getClassName,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    CHECKED        = 'checked',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    CLEAR          = 'clear',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    CLICK          = 'click',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
    COLLAPSED      = 'collapsed',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    CONSOLE        = 'console',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
    CONTENT_BOX    = 'contentBox',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
    DISABLED       = 'disabled',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
    ENTRY          = 'entry',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
    ERROR          = 'error',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    HEIGHT         = 'height',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
    INFO           = 'info',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
    INNER_HTML     = 'innerHTML',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    LAST_TIME      = 'lastTime',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
    PAUSE          = 'pause',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    PAUSED         = 'paused',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    RESET          = 'reset',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    START_TIME     = 'startTime',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
    TITLE          = 'title',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
    WARN           = 'warn',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    DOT = '.',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    C_BUTTON           = getCN(CONSOLE,'button'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    C_CHECKBOX         = getCN(CONSOLE,'checkbox'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
    C_CLEAR            = getCN(CONSOLE,CLEAR),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    C_COLLAPSE         = getCN(CONSOLE,'collapse'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
    C_COLLAPSED        = getCN(CONSOLE,COLLAPSED),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    C_CONSOLE_CONTROLS = getCN(CONSOLE,'controls'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    C_CONSOLE_HD       = getCN(CONSOLE,'hd'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    C_CONSOLE_BD       = getCN(CONSOLE,'bd'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
    C_CONSOLE_FT       = getCN(CONSOLE,'ft'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
    C_CONSOLE_TITLE    = getCN(CONSOLE,TITLE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
    C_ENTRY            = getCN(CONSOLE,ENTRY),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
    C_ENTRY_CAT        = getCN(CONSOLE,ENTRY,'cat'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
    C_ENTRY_CONTENT    = getCN(CONSOLE,ENTRY,'content'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
    C_ENTRY_META       = getCN(CONSOLE,ENTRY,'meta'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
    C_ENTRY_SRC        = getCN(CONSOLE,ENTRY,'src'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
    C_ENTRY_TIME       = getCN(CONSOLE,ENTRY,'time'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
    C_PAUSE            = getCN(CONSOLE,PAUSE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
    C_PAUSE_LABEL      = getCN(CONSOLE,PAUSE,'label'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
    RE_INLINE_SOURCE = /^(\S+)\s/,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
    RE_AMP = /&/g,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
    RE_GT  = />/g,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    RE_LT  = /</g,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    ESC_AMP = '&#38;',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
    ESC_GT  = '&#62;',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
    ESC_LT  = '&#60;',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
    ENTRY_TEMPLATE_STR =
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        '<div class="{entry_class} {cat_class} {src_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
            '<p class="{entry_meta_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
                '<span class="{entry_src_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
                    '{sourceAndDetail}'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
                '</span>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
                '<span class="{entry_cat_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
                    '{category}</span>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
                '<span class="{entry_time_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
                    ' {totalTime}ms (+{elapsedTime}) {localTime}'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
                '</span>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
            '</p>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
            '<pre class="{entry_content_class}">{message}</pre>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
        '</div>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
    L = Y.Lang,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
    create     = Y.Node.create,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
    isNumber   = L.isNumber,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
    isString   = L.isString,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
    merge      = Y.merge,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
    substitute = Y.substitute;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
Y.mix(Console, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
     * The identity of the widget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
     * @property Console.NAME
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    NAME : CONSOLE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
     * Static identifier for logLevel configuration setting to allow all
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
     * incoming messages to generate Console entries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
     * @property Console.LOG_LEVEL_INFO
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
    LOG_LEVEL_INFO  : INFO,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
     * Static identifier for logLevel configuration setting to allow only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
     * incoming messages of logLevel &quot;warn&quot; or &quot;error&quot;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
     * to generate Console entries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
     * @property Console.LOG_LEVEL_WARN
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
    LOG_LEVEL_WARN  : WARN,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
     * Static identifier for logLevel configuration setting to allow only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
     * incoming messages of logLevel &quot;error&quot; to generate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
     * Console entries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
     * @property Console.LOG_LEVEL_ERROR
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
    LOG_LEVEL_ERROR : ERROR,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
     * Map (object) of classNames used to populate the placeholders in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
     * Console.ENTRY_TEMPLATE markup when rendering a new Console entry.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
     * <p>By default, the keys contained in the object are:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
     *    <li>entry_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
     *    <li>entry_meta_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
     *    <li>entry_cat_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
     *    <li>entry_src_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
     *    <li>entry_time_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
     *    <li>entry_content_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
     * @property Console.ENTRY_CLASSES
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
    ENTRY_CLASSES   : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
        entry_class         : C_ENTRY,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
        entry_meta_class    : C_ENTRY_META,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
        entry_cat_class     : C_ENTRY_CAT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        entry_src_class     : C_ENTRY_SRC,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
        entry_time_class    : C_ENTRY_TIME,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        entry_content_class : C_ENTRY_CONTENT
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
     * Map (object) of classNames used to populate the placeholders in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
     * Console.HEADER_TEMPLATE, Console.BODY_TEMPLATE, and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
     * Console.FOOTER_TEMPLATE markup when rendering the Console UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
     * <p>By default, the keys contained in the object are:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
     *   <li>console_hd_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
     *   <li>console_bd_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
     *   <li>console_ft_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
     *   <li>console_controls_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
     *   <li>console_checkbox_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
     *   <li>console_pause_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
     *   <li>console_pause_label_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
     *   <li>console_button_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
     *   <li>console_clear_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
     *   <li>console_collapse_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
     *   <li>console_title_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
     * @property Console.CHROME_CLASSES
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
    CHROME_CLASSES  : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        console_hd_class       : C_CONSOLE_HD,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
        console_bd_class       : C_CONSOLE_BD,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
        console_ft_class       : C_CONSOLE_FT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
        console_controls_class : C_CONSOLE_CONTROLS,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
        console_checkbox_class : C_CHECKBOX,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
        console_pause_class    : C_PAUSE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
        console_pause_label_class : C_PAUSE_LABEL,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
        console_button_class   : C_BUTTON,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
        console_clear_class    : C_CLEAR,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        console_collapse_class : C_COLLAPSE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
        console_title_class    : C_CONSOLE_TITLE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
     * Markup template used to generate the DOM structure for the header
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
     * section of the Console when it is rendered.  The template includes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
     * these {placeholder}s:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
     *   <li>console_button_class - contributed by Console.CHROME_CLASSES</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
     *   <li>console_collapse_class - contributed by Console.CHROME_CLASSES</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
     *   <li>console_hd_class - contributed by Console.CHROME_CLASSES</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
     *   <li>console_title_class - contributed by Console.CHROME_CLASSES</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
     *   <li>str_collapse - pulled from attribute strings.collapse</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
     *   <li>str_title - pulled from attribute strings.title</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
     * @property Console.HEADER_TEMPLATE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
    HEADER_TEMPLATE :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
        '<div class="{console_hd_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
            '<h4 class="{console_title_class}">{str_title}</h4>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
            '<button type="button" class="'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
                '{console_button_class} {console_collapse_class}">{str_collapse}'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
            '</button>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
        '</div>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
     * Markup template used to generate the DOM structure for the Console body
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
     * (where the messages are inserted) when it is rendered.  The template
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
     * includes only the {placeholder} &quot;console_bd_class&quot;, which is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
     * constributed by Console.CHROME_CLASSES.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
     * @property Console.BODY_TEMPLATE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
    BODY_TEMPLATE : '<div class="{console_bd_class}"></div>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
     * Markup template used to generate the DOM structure for the footer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
     * section of the Console when it is rendered.  The template includes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
     * many of the {placeholder}s from Console.CHROME_CLASSES as well as:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
     *   <li>id_guid - generated unique id, relates the label and checkbox</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
     *   <li>str_pause - pulled from attribute strings.pause</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
     *   <li>str_clear - pulled from attribute strings.clear</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
     * @property Console.FOOTER_TEMPLATE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
    FOOTER_TEMPLATE :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
        '<div class="{console_ft_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
            '<div class="{console_controls_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
                '<label for="{id_guid}" class="{console_pause_label_class}">'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
                    '<input type="checkbox" class="{console_checkbox_class} '+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
                        '{console_pause_class}" value="1" id="{id_guid}"> '+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
                    '{str_pause}</label>' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
                '<button type="button" class="'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
                    '{console_button_class} {console_clear_class}">{str_clear}'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
                '</button>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
            '</div>'+
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        '</div>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
     * Default markup template used to create the DOM structure for Console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
     * entries. The markup contains {placeholder}s for content and classes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
     * that are replaced via Y.substitute.  The default template contains
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
     * the {placeholder}s identified in Console.ENTRY_CLASSES as well as the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
     * following placeholders that will be populated by the log entry data:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
     *   <li>cat_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
     *   <li>src_class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
     *   <li>totalTime</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
     *   <li>elapsedTime</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
     *   <li>localTime</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
     *   <li>sourceAndDetail</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
     *   <li>message</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
     * @property Console.ENTRY_TEMPLATE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
    ENTRY_TEMPLATE : ENTRY_TEMPLATE_STR,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
     * Static property used to define the default attribute configuration of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
     * the Widget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
     * @property Console.ATTRS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
     * @Type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
    ATTRS : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
         * Name of the custom event that will communicate log messages.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
         * @attribute logEvent
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
         * @default "yui:log"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
        logEvent : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
            value : 'yui:log',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
            writeOnce : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
            validator : isString
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
         * Object that will emit the log events.  By default the YUI instance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
         * To have a single Console capture events from all YUI instances, set
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
         * this to the Y.Global object.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
         * @attribute logSource
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
         * @type EventTarget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
         * @default Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
        logSource : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
            value : Y,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
            writeOnce : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
                return v && Y.Lang.isFunction(v.on);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
         * Collection of strings used to label elements in the Console UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
         * Default collection contains the following name:value pairs:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
         * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
         *   <li>title : &quot;Log Console&quot;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
         *   <li>pause : &quot;Pause&quot;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
         *   <li>clear : &quot;Clear&quot;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
         *   <li>collapse : &quot;Collapse&quot;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
         *   <li>expand : &quot;Expand&quot;</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
         * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
         * @attribute strings
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
         * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
        strings : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
            value : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
                title : "Log Console",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
                pause : "Pause",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
                clear : "Clear",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
                collapse : "Collapse",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
                expand   : "Expand"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
         * Boolean to pause the outputting of new messages to the console.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
         * When paused, messages will accumulate in the buffer.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
         * @attribute paused
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
         * @type boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
         * @default false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
        paused : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
            value : false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
            validator : L.isBoolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
         * If a category is not specified in the Y.log(..) statement, this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
         * category will be used. Categories &quot;info&quot;,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
         * &quot;warn&quot;, and &quot;error&quot; are also called log level.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
         * @attribute defaultCategory
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
         * @default "info"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
        defaultCategory : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
            value : INFO,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
            validator : isString
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
         * If a source is not specified in the Y.log(..) statement, this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
         * source will be used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
         * @attribute defaultSource
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
         * @default "global"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
        defaultSource   : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
            value : 'global',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
            validator : isString
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
         * Markup template used to create the DOM structure for Console entries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
         * @attribute entryTemplate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
         * @default Console.ENTRY_TEMPLATE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
        entryTemplate : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
            value : ENTRY_TEMPLATE_STR,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
            validator : isString
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
         * Minimum entry log level to render into the Console.  The initial
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
         * logLevel value for all Console instances defaults from the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
         * Y.config.logLevel YUI configuration, or Console.LOG_LEVEL_INFO if
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
         * that configuration is not set.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
         * Possible values are &quot;info&quot;, &quot;warn&quot;,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
         * &quot;error&quot; (case insensitive), or their corresponding statics
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
         * Console.LOG_LEVEL_INFO and so on.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
         * @attribute logLevel
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
         * @default Y.config.logLevel or Console.LOG_LEVEL_INFO
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
        logLevel : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
            value : Y.config.logLevel || INFO,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
                return this._setLogLevel(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
         * Millisecond timeout between iterations of the print loop, moving
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
         * entries from the buffer to the UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
         * @attribute printTimeout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
         * @default 100
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
        printTimeout : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
            value : 100,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
            validator : isNumber
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
         * Maximum number of entries printed in each iteration of the print
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
         * loop. This is used to prevent excessive logging locking the page UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
         * @attribute printLimit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
         * @default 50
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
        printLimit : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
            value : 50,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
            validator : isNumber
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
         * Maximum number of Console entries allowed in the Console body at one
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
         * time.  This is used to keep acquired messages from exploding the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
         * DOM tree and impacting page performance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
         * @attribute consoleLimit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
         * @default 300
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
        consoleLimit : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
            value : 300,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
            validator : isNumber
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
         * New entries should display at the top of the Console or the bottom?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
         * @attribute newestOnTop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
         * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
         * @default true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
        newestOnTop : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
            value : true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
         * When new entries are added to the Console UI, should they be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
         * scrolled into view?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
         * @attribute scrollIntoView
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
         * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
         * @default true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
        scrollIntoView : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
            value : true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
         * The baseline time for this Console instance, used to measure elapsed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
         * time from the moment the console module is <code>use</code>d to the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
         * moment each new entry is logged (not rendered).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
         * This value is reset by the instance method myConsole.reset().
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
         * @attribute startTime
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
         * @type Date
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
         * @default The moment the console module is <code>use</code>d
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
        startTime : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
            value : new Date()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
         * The precise time the last entry was logged.  Used to measure elapsed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
         * time between log messages.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
         * @attribute lastTime
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
         * @type Date
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
         * @default The moment the console module is <code>use</code>d
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
        lastTime : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
            value : new Date(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
            readOnly: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
         * Controls the collapsed state of the Console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
         * @attribute collapsed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
         * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
         * @default false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
        collapsed : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
            value : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
        * String with units, or number, representing the height of the Console,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
        * inclusive of header and footer. If a number is provided, the default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
        * unit, defined by Widget's DEF_UNIT, property is used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
        *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
        * @attribute height
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
        * @default "300px"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
        * @type {String | Number}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
        height: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
            value: "300px"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
        * String with units, or number, representing the width of the Console.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
        * If a number is provided, the default unit, defined by Widget's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
        * DEF_UNIT, property is used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
        *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
        * @attribute width
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
        * @default "300px"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
        * @type {String | Number}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
        width: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
            value: "300px"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
         * Pass through to the YUI instance useBrowserConsole configuration.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
         * By default this is set to false, which will disable logging to the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
         * browser console when a Console instance is created.  If the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
         * logSource is not a YUI instance, this has no effect.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
         * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
         * @attribute useBrowserConsole
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
         * @type {Boolean}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
         * @default false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
         useBrowserConsole : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
            lazyAdd: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
            value: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
            getter : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
                var logSource = this.get('logSource');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
                return logSource instanceof YUI ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
                    logSource.config.useBrowserConsole : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
                var logSource = this.get('logSource');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
                if (logSource instanceof YUI) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
                    v = !!v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
                    logSource.config.useBrowserConsole = !!v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
                    return v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
                    return Y.Attribute.INVALID_VALUE;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
         },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
         /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
          * Allows the Console to flow in the document.  Available values are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
          * 'inline', 'block', and 'separate' (the default).  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
          *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
          * @attribute style
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
          * @type {String}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
          * @default 'separate'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
          */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
         style : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
            value : 'separate',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
            writeOnce : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
                return this._validateStyle(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
         }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
Y.extend(Console,Y.Widget,{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
     * Category to prefix all event subscriptions to allow for ease of detach
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
     * during destroy.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
     * @property _evtCat
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
     * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
    _evtCat : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
     * Reference to the Node instance containing the header contents.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
     * @property _head
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
     * @type Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
     * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
    _head    : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
     * Reference to the Node instance that will house the console messages.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
     * @property _body
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
     * @type Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
     * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
    _body    : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
     * Reference to the Node instance containing the footer contents.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
     * @property _foot
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
     * @type Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
     * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
    _foot    : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
     * Holds the object API returned from <code>Y.later</code> for the print
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
     * loop interval.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
     * @property _printLoop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
     * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
    _printLoop : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
     * Array of normalized message objects awaiting printing.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
     * @property buffer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
     * @type Array
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
     * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
    buffer   : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
     * Wrapper for <code>Y.log</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
     * @method log
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
     * @param arg* {MIXED} (all arguments passed through to <code>Y.log</code>)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
    log : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
        Y.log.apply(Y,arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
     * Clear the console of messages and flush the buffer of pending messages.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
     * @method clearConsole
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
    clearConsole : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
        // TODO: clear event listeners from console contents
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
        this._body.set(INNER_HTML,'');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
        this._cancelPrintLoop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
        this.buffer = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
     * Clears the console and resets internal timers.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
     * @method reset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
    reset : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
        this.fire(RESET);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
     * Collapses the body and footer.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
     * @method collapse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
    collapse : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
        this.set(COLLAPSED, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
     * Expands the body and footer if collapsed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
     * @method expand
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
    expand : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
        this.set(COLLAPSED, false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
     * Outputs buffered messages to the console UI.  This is typically called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
     * from a scheduled interval until the buffer is empty (referred to as the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
     * print loop).  The number of buffered messages output to the Console is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
     * limited to the number provided as an argument.  If no limit is passed,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
     * all buffered messages are rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
     * @method printBuffer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
     * @param limit {Number} (optional) max number of buffered entries to write
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
    printBuffer: function (limit) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
        var messages    = this.buffer,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
            debug       = Y.config.debug,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
            entries     = [],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
            consoleLimit= this.get('consoleLimit'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
            newestOnTop = this.get('newestOnTop'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
            anchor      = newestOnTop ? this._body.get('firstChild') : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
            i;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
        if (messages.length > consoleLimit) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
            messages.splice(0, messages.length - consoleLimit);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
        limit = Math.min(messages.length, (limit || messages.length));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
        // turn off logging system
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
        Y.config.debug = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
        if (!this.get(PAUSED) && this.get('rendered')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
            for (i = 0; i < limit && messages.length; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
                entries[i] = this._createEntryHTML(messages.shift());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
            if (!messages.length) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
                this._cancelPrintLoop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
            if (entries.length) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
                if (newestOnTop) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
                    entries.reverse();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
                this._body.insertBefore(create(entries.join('')), anchor);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
                if (this.get('scrollIntoView')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
                    this.scrollToLatest();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
                this._trimOldEntries();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
        // restore logging system
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
        Y.config.debug = debug;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
     * Constructor code.  Set up the buffer and entry template, publish
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
     * internal events, and subscribe to the configured logEvent.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
     * @method initializer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
    initializer : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
        this._evtCat = Y.stamp(this) + '|';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
        this.buffer = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
        this.get('logSource').on(this._evtCat +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
            this.get('logEvent'),Y.bind("_onLogEvent",this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
         * Transfers a received message to the print loop buffer.  Default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
         * behavior defined in _defEntryFn.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
         * @event entry
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
         *  <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
         *      <dt>message</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
         *          <dd>The message data normalized into an object literal (see _normalizeMessage)</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
         *  </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
         * @preventable _defEntryFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
        this.publish(ENTRY, { defaultFn: this._defEntryFn });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
         * Triggers the reset behavior via the default logic in _defResetFn.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
         * @event reset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
         * @param event {Event.Facade} Event Facade object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
         * @preventable _defResetFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   844
        this.publish(RESET, { defaultFn: this._defResetFn });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   845
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   846
        this.after('rendered', this._schedulePrint);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
     * Tears down the instance, flushing event subscriptions and purging the UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
     * @method destructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
    destructor : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
        var bb = this.get('boundingBox');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
        this._cancelPrintLoop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
        this.get('logSource').detach(this._evtCat + '*');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
        Y.Event.purgeElement(bb, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
        bb.set('innerHTML','');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
     * Generate the Console UI.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
     * @method renderUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
    renderUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
        this._initHead();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
        this._initBody();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
        this._initFoot();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
        // Apply positioning to the bounding box if appropriate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   879
        var style = this.get('style');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   880
        if (style !== 'block') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   881
            this.get('boundingBox').addClass('yui-'+style+'-console');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
     * Sync the UI state to the current attribute state.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
     * @method syncUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   889
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   890
    syncUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   891
        this._uiUpdatePaused(this.get(PAUSED));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
        this._uiUpdateCollapsed(this.get(COLLAPSED));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   893
        this._uiSetHeight(this.get(HEIGHT));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   894
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   895
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   897
     * Set up event listeners to wire up the UI to the internal state.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   898
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   899
     * @method bindUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   900
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   901
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   902
    bindUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   903
        this.get(CONTENT_BOX).query('button.'+C_COLLAPSE).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   904
            on(CLICK,this._onCollapseClick,this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   905
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   906
        this.get(CONTENT_BOX).query('input[type=checkbox].'+C_PAUSE).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   907
            on(CLICK,this._onPauseClick,this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   908
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   909
        this.get(CONTENT_BOX).query('button.'+C_CLEAR).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   910
            on(CLICK,this._onClearClick,this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   911
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   912
        // Attribute changes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   913
        this.after(this._evtCat + 'stringsChange',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   914
            this._afterStringsChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   915
        this.after(this._evtCat + 'pausedChange',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   916
            this._afterPausedChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   917
        this.after(this._evtCat + 'consoleLimitChange',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   918
            this._afterConsoleLimitChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   919
        this.after(this._evtCat + 'collapsedChange',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   920
            this._afterCollapsedChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   921
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   922
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   923
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   924
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   925
     * Create the DOM structure for the header elements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   926
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   927
     * @method _initHead
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   928
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   929
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   930
    _initHead : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   931
        var cb   = this.get(CONTENT_BOX),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   932
            info = merge(Console.CHROME_CLASSES, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   933
                        str_collapse : this.get('strings.collapse'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   934
                        str_title : this.get('strings.title')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   935
                    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   936
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   937
        this._head = create(substitute(Console.HEADER_TEMPLATE,info));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   938
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   939
        cb.insertBefore(this._head,cb.get('firstChild'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   940
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   941
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   942
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   943
     * Create the DOM structure for the console body&#8212;where messages are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   944
     * rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   945
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   946
     * @method _initBody
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   947
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   948
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   949
    _initBody : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   950
        this._body = create(substitute(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   951
                            Console.BODY_TEMPLATE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   952
                            Console.CHROME_CLASSES));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   953
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   954
        this.get(CONTENT_BOX).appendChild(this._body);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   955
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   956
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   957
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   958
     * Create the DOM structure for the footer elements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   959
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   960
     * @method _initFoot
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   961
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   962
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   963
    _initFoot : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   964
        var info = merge(Console.CHROME_CLASSES, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   965
                id_guid   : Y.guid(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   966
                str_pause : this.get('strings.pause'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   967
                str_clear : this.get('strings.clear')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   968
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   969
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   970
        this._foot = create(substitute(Console.FOOTER_TEMPLATE,info));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   971
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   972
        this.get(CONTENT_BOX).appendChild(this._foot);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   973
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   974
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   975
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   976
     * Determine if incoming log messages are within the configured logLevel
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   977
     * to be buffered for printing.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   978
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   979
     * @method _isInLogLevel
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   980
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   981
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   982
    _isInLogLevel : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   983
        var cat = e.cat, lvl = this.get('logLevel');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   984
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   985
        if (lvl !== INFO) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   986
            cat = cat || INFO;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   987
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   988
            if (isString(cat)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   989
                cat = cat.toLowerCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   990
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   991
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   992
            if ((cat === WARN && lvl === ERROR) ||
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   993
                (cat === INFO && lvl !== INFO)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   994
                return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   995
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   996
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   997
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   998
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   999
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1000
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1001
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1002
     * Create a log entry message from the inputs including the following keys:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1003
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1004
     *     <li>time - this moment</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1005
     *     <li>message - leg message</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1006
     *     <li>category - logLevel or custom category for the message</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1007
     *     <li>source - when provided, the widget or util calling Y.log</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1008
     *     <li>sourceAndDetail - same as source but can include instance info</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1009
     *     <li>localTime - readable version of time</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1010
     *     <li>elapsedTime - ms since last entry</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1011
     *     <li>totalTime - ms since Console was instantiated or reset</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1012
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1013
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1014
     * @method _normalizeMessage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1015
     * @param e {Event} custom event containing the log message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1016
     * @return Object the message object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1017
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1018
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1019
    _normalizeMessage : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1020
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1021
        var msg = e.msg,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1022
            cat = e.cat,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1023
            src = e.src,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1024
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1025
            m = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1026
                time            : new Date(),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1027
                message         : msg,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1028
                category        : cat || this.get('defaultCategory'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1029
                sourceAndDetail : src || this.get('defaultSource'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1030
                source          : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1031
                localTime       : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1032
                elapsedTime     : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1033
                totalTime       : null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1034
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1035
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1036
        // Extract m.source "Foo" from m.sourceAndDetail "Foo bar baz"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1037
        m.source          = RE_INLINE_SOURCE.test(m.sourceAndDetail) ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1038
                                RegExp.$1 : m.sourceAndDetail;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1039
        m.localTime       = m.time.toLocaleTimeString ? 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1040
                            m.time.toLocaleTimeString() : (m.time + '');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1041
        m.elapsedTime     = m.time - this.get(LAST_TIME);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1042
        m.totalTime       = m.time - this.get(START_TIME);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1043
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1044
        this._set(LAST_TIME,m.time);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1045
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1046
        return m;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1047
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1048
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1049
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1050
     * Sets an interval for buffered messages to be output to the console.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1051
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1052
     * @method _schedulePrint
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1053
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1054
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1055
    _schedulePrint : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1056
        if (!this._printLoop && !this.get(PAUSED) && this.get('rendered')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1057
            this._printLoop = Y.later(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1058
                                this.get('printTimeout'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1059
                                this, this.printBuffer,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1060
                                this.get('printLimit'), true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1061
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1062
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1063
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1064
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1065
     * Translates message meta into the markup for a console entry.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1066
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1067
     * @method _createEntryHTML
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1068
     * @param m {Object} object literal containing normalized message metadata
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1069
     * @return String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1070
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1071
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1072
    _createEntryHTML : function (m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1073
        m = merge(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1074
                this._htmlEscapeMessage(m),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1075
                Console.ENTRY_CLASSES,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1076
                {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1077
                    cat_class : this.getClassName(ENTRY,m.category),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1078
                    src_class : this.getClassName(ENTRY,m.source)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1079
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1080
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1081
        return this.get('entryTemplate').replace(/\{(\w+)\}/g,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1082
            function (_,token) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1083
                return token in m ? m[token] : '';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1084
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1085
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1086
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1087
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1088
     * Scrolls to the most recent entry
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1089
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1090
     * @method scrollToLatest
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1091
     * @chainable
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1092
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1093
    scrollToLatest : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1094
        var scrollTop = this.get('newestOnTop') ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1095
                            0 :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1096
                            this._body.get('scrollHeight');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1097
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1098
        this._body.set('scrollTop', scrollTop);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1099
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1100
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1101
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1102
     * Performs HTML escaping on strings in the message object.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1103
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1104
     * @method _htmlEscapeMessage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1105
     * @param m {Object} the normalized message object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1106
     * @return Object the message object with proper escapement
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1107
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1108
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1109
    _htmlEscapeMessage : function (m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1110
        m.message         = this._encodeHTML(m.message);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1111
        m.source          = this._encodeHTML(m.source);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1112
        m.sourceAndDetail = this._encodeHTML(m.sourceAndDetail);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1113
        m.category        = this._encodeHTML(m.category);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1114
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1115
        return m;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1116
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1117
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1118
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1119
     * Removes the oldest message entries from the UI to maintain the limit
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1120
     * specified in the consoleLimit configuration.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1121
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1122
     * @method _trimOldEntries
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1123
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1124
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1125
    _trimOldEntries : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1126
        // Turn off the logging system for the duration of this operation
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1127
        // to prevent an infinite loop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1128
        Y.config.debug = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1129
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1130
        var bd = this._body,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1131
            limit = this.get('consoleLimit'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1132
            debug = Y.config.debug,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1133
            entries,e,i,l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1134
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1135
        if (bd) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1136
            entries = bd.queryAll(DOT+C_ENTRY);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1137
            l = entries.size() - limit;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1138
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1139
            if (l > 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1140
                if (this.get('newestOnTop')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1141
                    i = limit;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1142
                    l = entries.size();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1143
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1144
                    i = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1145
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1146
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1147
                this._body.setStyle('display','none');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1149
                for (;i < l; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1150
                    e = entries.item(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1151
                    if (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1152
                        e.remove();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1153
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1154
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1155
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1156
                this._body.setStyle('display','');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1157
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1158
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1159
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1160
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1161
        Y.config.debug = debug;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1162
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1164
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1165
     * Returns the input string with ampersands (&amp;), &lt, and &gt; encoded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1166
     * as HTML entities.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1167
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1168
     * @method _encodeHTML
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1169
     * @param s {String} the raw string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1170
     * @return String the encoded string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1171
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1172
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1173
    _encodeHTML : function (s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1174
        return isString(s) ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1175
            s.replace(RE_AMP,ESC_AMP).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1176
              replace(RE_LT, ESC_LT).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1177
              replace(RE_GT, ESC_GT) :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1178
            s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1179
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1180
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1181
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1182
     * Clears the timeout for printing buffered messages.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1183
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1184
     * @method _cancelPrintLoop
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1185
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1186
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1187
    _cancelPrintLoop : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1188
        if (this._printLoop) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1189
            this._printLoop.cancel();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1190
            this._printLoop = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1191
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1192
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1193
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1194
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1195
     * Validates input value for style attribute.  Accepts only values 'inline',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1196
     * 'block', and 'separate'.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1197
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1198
     * @method _validateStyle
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1199
     * @param style {String} the proposed value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1200
     * @return {Boolean} pass/fail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1201
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1202
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1203
    _validateStyle : function (style) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1204
        return style === 'inline' || style === 'block' || style === 'separate';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1205
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1206
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1207
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1208
     * Event handler for clicking on the Pause checkbox to update the paused
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1209
     * attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1210
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1211
     * @method _onPauseClick
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1212
     * @param e {Event} DOM event facade for the click event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1213
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1214
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1215
    _onPauseClick : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1216
        this.set(PAUSED,e.target.get(CHECKED));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1217
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1218
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1219
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1220
     * Event handler for clicking on the Clear button.  Pass-through to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1221
     * <code>this.clearConsole()</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1222
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1223
     * @method _onClearClick
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1224
     * @param e {Event} DOM event facade for the click event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1225
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1226
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1227
    _onClearClick : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1228
        this.clearConsole();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1229
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1230
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1231
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1232
     * Event handler for clicking on the Collapse/Expand button. Sets the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1233
     * &quot;collapsed&quot; attribute accordingly.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1234
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1235
     * @method _onCollapseClick
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1236
     * @param e {Event} DOM event facade for the click event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1237
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1238
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1239
    _onCollapseClick : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1240
        this.set(COLLAPSED, !this.get(COLLAPSED));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1241
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1242
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1243
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1244
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1245
     * Setter method for logLevel attribute.  Acceptable values are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1246
     * &quot;error&quot, &quot;warn&quot, and &quot;info&quot (case
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1247
     * insensitive).  Other values are treated as &quot;info&quot;.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1248
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1249
     * @method _setLogLevel
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1250
     * @param v {String} the desired log level
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1251
     * @return String One of Console.LOG_LEVEL_INFO, _WARN, or _ERROR
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1252
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1253
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1254
    _setLogLevel : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1255
        if (isString(v)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1256
            v = v.toLowerCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1257
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1258
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1259
        return (v === WARN || v === ERROR) ? v : INFO;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1260
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1261
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1262
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1263
     * Set the height of the Console container.  Set the body height to the difference between the configured height and the calculated heights of the header and footer.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1264
     * Overrides Widget.prototype._uiSetHeight.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1265
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1266
     * @method _uiSetHeight
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1267
     * @param v {String|Number} the new height
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1268
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1269
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1270
    _uiSetHeight : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1271
        Console.superclass._uiSetHeight.apply(this,arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1272
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1273
        if (this._head && this._foot) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1274
            var h = this.get('boundingBox').get('offsetHeight') -
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1275
                    this._head.get('offsetHeight') -
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1276
                    this._foot.get('offsetHeight');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1277
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1278
            this._body.setStyle(HEIGHT,h+'px');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1279
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1280
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1281
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1282
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1283
     * Updates the UI if changes are made to any of the strings in the strings
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1284
     * attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1285
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1286
     * @method _afterStringsChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1287
     * @param e {Event} Custom event for the attribute change
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1288
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1289
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1290
    _afterStringsChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1291
        var prop   = e.subAttrName ? e.subAttrName.split(DOT)[1] : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1292
            cb     = this.get(CONTENT_BOX),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1293
            before = e.prevVal,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1294
            after  = e.newVal;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1295
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1296
        if ((!prop || prop === TITLE) && before.title !== after.title) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1297
            cb.queryAll(DOT+C_CONSOLE_TITLE).set(INNER_HTML, after.title);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1298
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1299
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1300
        if ((!prop || prop === PAUSE) && before.pause !== after.pause) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1301
            cb.queryAll(DOT+C_PAUSE_LABEL).set(INNER_HTML, after.pause);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1302
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1303
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1304
        if ((!prop || prop === CLEAR) && before.clear !== after.clear) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1305
            cb.queryAll(DOT+C_CLEAR).set('value',after.clear);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1306
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1307
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1308
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1309
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1310
     * Updates the UI and schedules or cancels the print loop.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1311
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1312
     * @method _afterPausedChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1313
     * @param e {Event} Custom event for the attribute change
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1314
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1315
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1316
    _afterPausedChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1317
        var paused = e.newVal;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1318
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1319
        if (e.src !== Y.Widget.SRC_UI) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1320
            this._uiUpdatePaused(paused);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1321
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1322
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1323
        if (!paused) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1324
            this._schedulePrint();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1325
        } else if (this._printLoop) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1326
            this._cancelPrintLoop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1327
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1328
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1329
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1330
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1331
     * Checks or unchecks the paused checkbox
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1332
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1333
     * @method _uiUpdatePaused
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1334
     * @param on {Boolean} the new checked state
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1335
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1336
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1337
    _uiUpdatePaused : function (on) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1338
        var node = this._foot.queryAll('input[type=checkbox].'+C_PAUSE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1339
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1340
        if (node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1341
            node.set(CHECKED,on);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1342
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1343
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1344
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1345
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1346
     * Calls this._trimOldEntries() in response to changes in the configured
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1347
     * consoleLimit attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1348
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1349
     * @method _afterConsoleLimitChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1350
     * @param e {Event} Custom event for the attribute change
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1351
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1352
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1353
    _afterConsoleLimitChange : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1354
        this._trimOldEntries();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1355
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1356
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1357
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1358
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1359
     * Updates the className of the contentBox, which should trigger CSS to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1360
     * hide or show the body and footer sections depending on the new value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1361
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1362
     * @method _afterCollapsedChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1363
     * @param e {Event} Custom event for the attribute change
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1364
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1365
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1366
    _afterCollapsedChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1367
        this._uiUpdateCollapsed(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1368
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1369
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1370
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1371
     * Updates the UI to reflect the new Collapsed state
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1372
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1373
     * @method _uiUpdateCollapsed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1374
     * @param v {Boolean} true for collapsed, false for expanded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1375
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1376
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1377
    _uiUpdateCollapsed : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1378
        var bb     = this.get('boundingBox'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1379
            button = bb.queryAll('button.'+C_COLLAPSE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1380
            method = v ? 'addClass' : 'removeClass',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1381
            str    = this.get('strings.'+(v ? 'expand' : 'collapse'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1382
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1383
        bb[method](C_COLLAPSED);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1384
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1385
        if (button) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1386
            button.set('innerHTML',str);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1387
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1388
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1389
        this._uiSetHeight(v ? this._head.get('offsetHeight'): this.get(HEIGHT));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1390
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1391
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1392
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1393
     * Makes adjustments to the UI if needed when the Console is hidden or shown
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1394
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1395
     * @method _afterVisibleChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1396
     * @param e {Event} the visibleChange event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1397
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1398
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1399
    _afterVisibleChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1400
        Console.superclass._afterVisibleChange.apply(this,arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1401
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1402
        this._uiUpdateFromHideShow(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1403
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1404
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1405
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1406
     * Recalculates dimensions and updates appropriately when shown
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1407
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1408
     * @method _uiUpdateFromHideShow
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1409
     * @param v {Boolean} true for visible, false for hidden
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1410
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1411
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1412
    _uiUpdateFromHideShow : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1413
        if (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1414
            this._uiSetHeight(this.get(HEIGHT));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1415
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1416
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1417
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1418
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1419
     * Responds to log events by normalizing qualifying messages and passing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1420
     * them along through the entry event for buffering etc.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1421
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1422
     * @method _onLogEvent
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1423
     * @param msg {String} the log message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1424
     * @param cat {String} OPTIONAL the category or logLevel of the message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1425
     * @param src {String} OPTIONAL the source of the message (e.g. widget name)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1426
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1427
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1428
    _onLogEvent : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1429
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1430
        if (!this.get(DISABLED) && this._isInLogLevel(e)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1431
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1432
            var debug = Y.config.debug;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1433
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1434
            /* TODO: needed? */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1435
            Y.config.debug = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1436
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1437
            this.fire(ENTRY, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1438
                message : this._normalizeMessage(e)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1439
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1440
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1441
            Y.config.debug = debug;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1442
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1443
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1444
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1445
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1446
     * Clears the console, resets the startTime attribute, enables and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1447
     * unpauses the widget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1448
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1449
     * @method _defResetFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1450
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1451
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1452
    _defResetFn : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1453
        this.clearConsole();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1454
        this.set(START_TIME,new Date());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1455
        this.set(DISABLED,false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1456
        this.set(PAUSED,false);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1457
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1458
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1459
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1460
     * Buffers incoming message objects and schedules the printing.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1461
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1462
     * @method _defEntryFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1463
     * @param e {Event} The Custom event carrying the message in its payload
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1464
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1465
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1466
    _defEntryFn : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1467
        if (e.message) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1468
            this.buffer.push(e.message);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1469
            this._schedulePrint();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1470
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1471
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1472
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1473
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1474
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1475
Y.Console = Console;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1476
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1477
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1478
}, '3.0.0' ,{requires:['substitute','widget']});