Sha256: 36e6e3886608ce845abe8b7648e0e60a43f278188a27c24c0ceadc6801f8e64f

Contents?: true

Size: 1.93 KB

Versions: 11

Compression:

Stored size: 1.93 KB

Contents

// ==========================================================================
// Project:   SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
//            Portions ©2008-2011 Apple Inc. All rights reserved.
// License:   Licensed under MIT license (see license.js)
// ==========================================================================


SC.BaseTheme.disclosureRenderDelegate = SC.RenderDelegate.create({
  className: 'disclosure',

  render: function(dataSource, context) {
    this.addSizeClassName(dataSource, context);

    var theme = dataSource.get('theme'),
        value = dataSource.get('value'),
        labelClassNames = ['sc-button-label', 'sc-disclosure-label'];

    var labelId = SC.guidFor(dataSource) + "-label";

    //addressing accessibility
    context.setAttr('aria-expanded', value);
    context.setAttr('aria-labelledby', labelId);

    if (dataSource.get('isSelected')) context.addClass('sel');

    var state = '';
    state += dataSource.get('isSelected') ? 'open' : 'closed';
    if (dataSource.get('isActive')) state += ' active';

    context.push('<img src = "' + SC.BLANK_IMAGE_URL + '" class = "disclosure button ' + state + '" />');

    context = context.begin('span').addClass(labelClassNames).id(labelId);
    theme.labelRenderDelegate.render(dataSource, context);
    context = context.end();
  },

  update: function(dataSource, jquery) {
    this.updateSizeClassName(dataSource, jquery);

    var theme = dataSource.get('theme'),
        value = dataSource.get('value');

    //addressing accessibility
    jquery.attr('aria-expanded', value);

    if (dataSource.get('isSelected')) jquery.addClass('sel');

    jquery.find('img').setClass({
      open: dataSource.get('isSelected'),
      closed: !dataSource.get('isSelected'),
      active: dataSource.get('isActive')
    });

    theme.labelRenderDelegate.update(dataSource, jquery.find('span.sc-disclosure-label'));
  }
});

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sproutcore-1.11.0 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.11.0.rc3 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.11.0.rc2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.11.0.rc1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.3.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.0 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.0.rc.3 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.0.rc.2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.10.0.rc.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js