src/cm/media/js/lib/yui/yui3-3.15.0/build/datatable-table/datatable-table.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('datatable-table', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
View class responsible for rendering a `<table>` from provided data.  Used as
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
@module datatable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
@submodule datatable-table
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
@since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
var toArray = Y.Array,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
    YLang   = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
    fromTemplate = YLang.sub,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
    isArray    = YLang.isArray,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
    isFunction = YLang.isFunction;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
View class responsible for rendering a `<table>` from provided data.  Used as
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
the default `view` for `Y.DataTable.Base` and `Y.DataTable` classes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
@class TableView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
@namespace DataTable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
@extends View
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
@since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
Y.namespace('DataTable').TableView = Y.Base.create('table', Y.View, [], {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    The HTML template used to create the caption Node if the `caption`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    attribute is set.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    @property CAPTION_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
    @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    @default '<caption class="{className}"/>'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    CAPTION_TEMPLATE: '<caption class="{className}"/>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    The HTML template used to create the table Node.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    @property TABLE_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
    @default '<table cellspacing="0" class="{className}"/>'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
    TABLE_TEMPLATE  : '<table cellspacing="0" class="{className}"/>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    The object or instance of the class assigned to `bodyView` that is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    responsible for rendering and managing the table's `<tbody>`(s) and its
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
    content.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    @property body
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
    @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    @default undefined (initially unset)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
    //body: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
    The object or instance of the class assigned to `footerView` that is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
    responsible for rendering and managing the table's `<tfoot>` and its
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    content.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
    @property foot
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
    @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
    @default undefined (initially unset)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
    //foot: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
    The object or instance of the class assigned to `headerView` that is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
    responsible for rendering and managing the table's `<thead>` and its
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
    content.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
    @property head
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    @default undefined (initially unset)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
    //head: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
    //-----------------------------------------------------------------------//
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
    // Public methods
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
    //-----------------------------------------------------------------------//
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
    Returns the `<td>` Node from the given row and column index.  Alternately,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
    the `seed` can be a Node.  If so, the nearest ancestor cell is returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
    If the `seed` is a cell, it is returned.  If there is no cell at the given
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
    coordinates, `null` is returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
    Optionally, include an offset array or string to return a cell near the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
    cell identified by the `seed`.  The offset can be an array containing the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
    number of rows to shift followed by the number of columns to shift, or one
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
    of "above", "below", "next", or "previous".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
    <pre><code>// Previous cell in the previous row
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
    var cell = table.getCell(e.target, [-1, -1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
    // Next cell
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
    var cell = table.getCell(e.target, 'next');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
    var cell = table.getCell(e.taregt, [0, 1];</pre></code>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
    This is actually just a pass through to the `bodyView` instance's method
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
    by the same name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
    @method getCell
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
    @param {Number[]|Node} seed Array of row and column indexes, or a Node that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
        is either the cell itself or a descendant of one.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
    @param {Number[]|String} [shift] Offset by which to identify the returned
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
        cell Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
    @return {Node}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
    getCell: function (/* seed, shift */) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
        return this.body && this.body.getCell &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
            this.body.getCell.apply(this.body, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
    Returns the generated CSS classname based on the input.  If the `host`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
    attribute is configured, it will attempt to relay to its `getClassName`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
    or use its static `NAME` property as a string base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
    If `host` is absent or has neither method nor `NAME`, a CSS classname
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
    will be generated using this class's `NAME`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
    @method getClassName
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
    @param {String} token* Any number of token strings to assemble the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
        classname from.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
    @return {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
    getClassName: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
        // TODO: add attr with setter for host?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
        var host = this.host,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
            NAME = (host && host.constructor.NAME) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
                    this.constructor.NAME;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
        if (host && host.getClassName) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
            return host.getClassName.apply(host, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
            return Y.ClassNameManager.getClassName
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
                .apply(Y.ClassNameManager,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
                       [NAME].concat(toArray(arguments, 0, true)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
    Relays call to the `bodyView`'s `getRecord` method if it has one.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
    @method getRecord
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
    @param {String|Node} seed Node or identifier for a row or child element
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
    @return {Model}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
    getRecord: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
        return this.body && this.body.getRecord &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
            this.body.getRecord.apply(this.body, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
    Returns the `<tr>` Node from the given row index, Model, or Model's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
    `clientId`.  If the rows haven't been rendered yet, or if the row can't be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
    found by the input, `null` is returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
    This is actually just a pass through to the `bodyView` instance's method
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
    by the same name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
    @method getRow
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
    @param {Number|String|Model} id Row index, Model instance, or clientId
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
    @return {Node}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
    getRow: function (/* id */) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
        return this.body && this.body.getRow &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
            this.body.getRow.apply(this.body, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
    //-----------------------------------------------------------------------//
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
    // Protected and private methods
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
    //-----------------------------------------------------------------------//
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
    Updates the table's `summary` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
    @method _afterSummaryChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
    @param {EventHandle} e The change event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
    _afterSummaryChange: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
        this._uiSetSummary(e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
    Updates the table's `<caption>`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
    @method _afterCaptionChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
    @param {EventHandle} e The change event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
    _afterCaptionChange: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
        this._uiSetCaption(e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
    Updates the table's width.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
    @method _afterWidthChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
    @param {EventHandle} e The change event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
    _afterWidthChange: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
        this._uiSetWidth(e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
    Attaches event subscriptions to relay attribute changes to the child Views.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
    @method _bindUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
    _bindUI: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
        var relay;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
        if (!this._eventHandles) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
            relay = Y.bind('_relayAttrChange', this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
            this._eventHandles = this.after({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
                columnsChange  : relay,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
                modelListChange: relay,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
                summaryChange  : Y.bind('_afterSummaryChange', this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
                captionChange  : Y.bind('_afterCaptionChange', this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
                widthChange    : Y.bind('_afterWidthChange', this)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
    Creates the `<table>`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
    @method _createTable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
    @return {Node} The `<table>` node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
    _createTable: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
        return Y.Node.create(fromTemplate(this.TABLE_TEMPLATE, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
            className: this.getClassName('table')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
        })).empty();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
    Calls `render()` on the `bodyView` class instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
    @method _defRenderBodyFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
    @param {EventFacade} e The renderBody event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
    _defRenderBodyFn: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
        e.view.render();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
    Calls `render()` on the `footerView` class instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
    @method _defRenderFooterFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
    @param {EventFacade} e The renderFooter event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
    _defRenderFooterFn: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
        e.view.render();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
    Calls `render()` on the `headerView` class instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
    @method _defRenderHeaderFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
    @param {EventFacade} e The renderHeader event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
    _defRenderHeaderFn: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
        e.view.render();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
    Renders the `<table>` and, if there are associated Views, the `<thead>`,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
    `<tfoot>`, and `<tbody>` (empty until `syncUI`).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
    Assigns the generated table nodes to the `tableNode`, `_theadNode`,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
    `_tfootNode`, and `_tbodyNode` properties.  Assigns the instantiated Views
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
    to the `head`, `foot`, and `body` properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
    @method _defRenderTableFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
    @param {EventFacade} e The renderTable event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
    _defRenderTableFn: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
        var container = this.get('container'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
            attrs = this.getAttrs();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
        if (!this.tableNode) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
            this.tableNode = this._createTable();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
        attrs.host  = this.get('host') || this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
        attrs.table = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
        attrs.container = this.tableNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
        this._uiSetCaption(this.get('caption'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
        this._uiSetSummary(this.get('summary'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
        this._uiSetWidth(this.get('width'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
        if (this.head || e.headerView) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
            if (!this.head) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
                this.head = new e.headerView(Y.merge(attrs, e.headerConfig));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
            this.fire('renderHeader', { view: this.head });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
        if (this.foot || e.footerView) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
            if (!this.foot) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
                this.foot = new e.footerView(Y.merge(attrs, e.footerConfig));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
            this.fire('renderFooter', { view: this.foot });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
        attrs.columns = this.displayColumns;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
        if (this.body || e.bodyView) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
            if (!this.body) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
                this.body = new e.bodyView(Y.merge(attrs, e.bodyConfig));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
            this.fire('renderBody', { view: this.body });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
        if (!container.contains(this.tableNode)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
            container.append(this.tableNode);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
        this._bindUI();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
    Cleans up state, destroys child views, etc.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
    @method destructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
    destructor: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
        if (this.head && this.head.destroy) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
            this.head.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
        delete this.head;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
        if (this.foot && this.foot.destroy) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
            this.foot.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
        delete this.foot;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
        if (this.body && this.body.destroy) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
            this.body.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
        delete this.body;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
        if (this._eventHandles) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
            this._eventHandles.detach();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
            delete this._eventHandles;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
        if (this.tableNode) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
            this.tableNode.remove().destroy(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
    Processes the full column array, distilling the columns down to those that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
    correspond to cell data columns.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
    @method _extractDisplayColumns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
    _extractDisplayColumns: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
        var columns = this.get('columns'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
            displayColumns = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
        function process(cols) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
            var i, len, col;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
            for (i = 0, len = cols.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
                col = cols[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
                if (isArray(col.children)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
                    process(col.children);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
                    displayColumns.push(col);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
        if (columns) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
            process(columns);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
        Array of the columns that correspond to those with value cells in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
        data rows. Excludes colspan header columns (configured with `children`).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
        @property displayColumns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
        @type {Object[]}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
        this.displayColumns = displayColumns;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
    Publishes core events.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
    @method _initEvents
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
    _initEvents: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
        this.publish({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
            // Y.bind used to allow late binding for method override support
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
            renderTable : { defaultFn: Y.bind('_defRenderTableFn', this) },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
            renderHeader: { defaultFn: Y.bind('_defRenderHeaderFn', this) },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
            renderBody  : { defaultFn: Y.bind('_defRenderBodyFn', this) },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
            renderFooter: { defaultFn: Y.bind('_defRenderFooterFn', this) }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
    Constructor logic.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
    @method intializer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
    @param {Object} config Configuration object passed to the constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
    initializer: function (config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
        this.host = config.host;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
        this._initEvents();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
        this._extractDisplayColumns();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
        this.after('columnsChange', this._extractDisplayColumns, this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
    Relays attribute changes to the child Views.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
    @method _relayAttrChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
    @param {EventHandle} e The change event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
    @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
    _relayAttrChange: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
        var attr = e.attrName,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
            val  = e.newVal;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
        if (this.head) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
            this.head.set(attr, val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
        if (this.foot) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
            this.foot.set(attr, val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
        if (this.body) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
            if (attr === 'columns') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
                val = this.displayColumns;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
            this.body.set(attr, val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
    Creates the UI in the configured `container`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
    @method render
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
    @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
    render: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
        if (this.get('container')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
            this.fire('renderTable', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
                headerView  : this.get('headerView'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
                headerConfig: this.get('headerConfig'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
                bodyView    : this.get('bodyView'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
                bodyConfig  : this.get('bodyConfig'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
                footerView  : this.get('footerView'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
                footerConfig: this.get('footerConfig')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
    Creates, removes, or updates the table's `<caption>` element per the input
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
    value.  Empty values result in the caption being removed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
    @method _uiSetCaption
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
    @param {String} htmlContent The content to populate the table caption
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
    _uiSetCaption: function (htmlContent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
        var table   = this.tableNode,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
            caption = this.captionNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
        if (htmlContent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
            if (!caption) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
                this.captionNode = caption = Y.Node.create(
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
                    fromTemplate(this.CAPTION_TEMPLATE, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
                        className: this.getClassName('caption')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
                    }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
                table.prepend(this.captionNode);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
            caption.setHTML(htmlContent);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
        } else if (caption) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
            caption.remove(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
            delete this.captionNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   553
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   554
    Updates the table's `summary` attribute with the input value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   555
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   556
    @method _uiSetSummary
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   557
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   558
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   559
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   560
    _uiSetSummary: function (summary) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   561
        if (summary) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   562
            this.tableNode.setAttribute('summary', summary);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   563
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   564
            this.tableNode.removeAttribute('summary');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   565
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   566
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   567
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   568
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   569
    Sets the `boundingBox` and table width per the input value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   570
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   571
    @method _uiSetWidth
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   572
    @param {Number|String} width The width to make the table
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   573
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   574
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   575
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   576
    _uiSetWidth: function (width) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   577
        var table = this.tableNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   578
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   579
        // Table width needs to account for borders
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   580
        table.setStyle('width', !width ? '' :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   581
            (this.get('container').get('offsetWidth') -
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   582
             (parseInt(table.getComputedStyle('borderLeftWidth'), 10)||0) -
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   583
             (parseInt(table.getComputedStyle('borderLeftWidth'), 10)||0)) +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   584
             'px');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   585
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   586
        table.setStyle('width', width);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   587
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   588
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   589
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   590
    Ensures that the input is a View class or at least has a `render` method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   591
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   592
    @method _validateView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   593
    @param {View|Function} val The View class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   594
    @return {Boolean}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   595
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   596
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   597
    _validateView: function (val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   598
        return isFunction(val) && val.prototype.render;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   599
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   600
}, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   601
    ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   602
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   603
        Content for the `<table summary="ATTRIBUTE VALUE HERE">`.  Values
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   604
        assigned to this attribute will be HTML escaped for security.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   605
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   606
        @attribute summary
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   607
        @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   608
        @default '' (empty string)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   609
        @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   610
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   611
        //summary: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   612
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   613
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   614
        HTML content of an optional `<caption>` element to appear above the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   615
        table.  Leave this config unset or set to a falsy value to remove the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   616
        caption.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   617
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   618
        @attribute caption
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   619
        @type HTML
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   620
        @default undefined (initially unset)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   621
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   622
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   623
        //caption: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   624
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   625
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   626
        Columns to include in the rendered table.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   627
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   628
        This attribute takes an array of objects. Each object is considered a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   629
        data column or header cell to be rendered.  How the objects are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   630
        translated into markup is delegated to the `headerView`, `bodyView`,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   631
        and `footerView`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   632
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   633
        The raw value is passed to the `headerView` and `footerView`.  The
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   634
        `bodyView` receives the instance's `displayColumns` array, which is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   635
        parsed from the columns array.  If there are no nested columns (columns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   636
        configured with a `children` array), the `displayColumns` is the same
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   637
        as the raw value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   638
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   639
        @attribute columns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   640
        @type {Object[]}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   641
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   642
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   643
        columns: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   644
            validator: isArray
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   645
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   646
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   647
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   648
        Width of the table including borders.  This value requires units, so
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   649
        `200` is invalid, but `'200px'` is valid.  Setting the empty string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   650
        (the default) will allow the browser to set the table width.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   651
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   652
        @attribute width
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   653
        @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   654
        @default ''
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   655
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   656
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   657
        width: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   658
            value: '',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   659
            validator: YLang.isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   660
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   661
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   662
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   663
        An instance of this class is used to render the contents of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   664
        `<thead>`&mdash;the column headers for the table.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   665
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   666
        The instance of this View will be assigned to the instance's `head`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   667
        property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   668
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   669
        It is not strictly necessary that the class function assigned here be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   670
        a View subclass.  It must however have a `render()` method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   671
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   672
        @attribute headerView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   673
        @type {Function|Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   674
        @default Y.DataTable.HeaderView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   675
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   676
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   677
        headerView: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   678
            value: Y.DataTable.HeaderView,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   679
            validator: '_validateView'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   680
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   681
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   682
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   683
        Configuration overrides used when instantiating the `headerView`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   684
        instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   685
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   686
        @attribute headerConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   687
        @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   688
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   689
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   690
        //headerConfig: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   691
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   692
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   693
        An instance of this class is used to render the contents of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   694
        `<tfoot>` (if appropriate).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   695
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   696
        The instance of this View will be assigned to the instance's `foot`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   697
        property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   698
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   699
        It is not strictly necessary that the class function assigned here be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   700
        a View subclass.  It must however have a `render()` method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   702
        @attribute footerView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   703
        @type {Function|Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   704
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   705
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   706
        footerView: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   707
            validator: '_validateView'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   708
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   709
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   710
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   711
        Configuration overrides used when instantiating the `footerView`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   712
        instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   713
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   714
        @attribute footerConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   715
        @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   716
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   717
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   718
        //footerConfig: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   719
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   720
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   721
        An instance of this class is used to render the contents of the table's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   722
        `<tbody>`&mdash;the data cells in the table.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   723
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   724
        The instance of this View will be assigned to the instance's `body`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   725
        property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   726
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   727
        It is not strictly necessary that the class function assigned here be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   728
        a View subclass.  It must however have a `render()` method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   729
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   730
        @attribute bodyView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   731
        @type {Function|Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   732
        @default Y.DataTable.BodyView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   733
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   734
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   735
        bodyView: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   736
            value: Y.DataTable.BodyView,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   737
            validator: '_validateView'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   738
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   739
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   740
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   741
        Configuration overrides used when instantiating the `bodyView`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   742
        instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   743
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   744
        @attribute bodyConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   745
        @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   746
        @since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   747
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   748
        //bodyConfig: {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   749
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   750
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   751
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   752
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   753
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   754
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   755
}, '@VERSION@', {"requires": ["datatable-core", "datatable-head", "datatable-body", "view", "classnamemanager"]});