Sha256: 604439f830d6102fd6becb2519a3855a60a158d6ff7f97a91c511e3d111cce12

Contents?: true

Size: 1.95 KB

Versions: 17

Compression:

Stored size: 1.95 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({
  name: 'disclosure',
  
  render: function(dataSource, context) {
    this.addSizeClassName(dataSource, context);

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

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

    //addresing accessibility
    context.attr('aria-expanded', value);
    context.attr('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('sc-button-label').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'),
        title = dataSource.get('title');

    //addresing 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-button-label'));
  }
});

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
sproutcore-1.6.0.rc.2-x86-mingw32 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.rc.2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.rc.2-java lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.rc.1-x86-mingw32 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.rc.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.rc.1-java lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.3-x86-mingw32 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.3-java lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.3 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.2-x86-mingw32 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.2-java lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.6.0.beta.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.5.0-java lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.5.0 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.5.0.rc.2 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js
sproutcore-1.5.0.rc.1 lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js