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