Sha256: 16c0744a58f51e58980a4da4e65a4e1ce3f88fe5dddca1c2ac3a3ea0a125be88

Contents?: true

Size: 1.75 KB

Versions: 58

Compression:

Stored size: 1.75 KB

Contents

(function() {

  define(['view_model'], function(ViewModel) {
    var ViewCollection, ViewHierModel, flatten;
    ViewCollection = Backbone.Collection;
    flatten = function(rootViewModel) {
      var childViewModel, flattenedViewModels, _i, _len, _ref;
      flattenedViewModels = [rootViewModel];
      _ref = rootViewModel.get('children');
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        childViewModel = _ref[_i];
        flattenedViewModels = flattenedViewModels.concat(flatten(childViewModel));
      }
      return flattenedViewModels;
    };
    ViewHierModel = Backbone.Model.extend({
      getAccessibleViews: function() {
        return this.get('allViews').filter(function(viewModel) {
          return viewModel.has('accessibilityLabel');
        });
      },
      resetViewHier: function(rawRootView) {
        var allViews, rootViewModel,
          _this = this;
        rootViewModel = new ViewModel(rawRootView);
        allViews = new ViewCollection(flatten(rootViewModel));
        allViews.on('change:active', function(viewModel) {
          if (viewModel.get('active')) {
            return _this.trigger('active-view-changed', viewModel);
          }
        });
        allViews.on('selected', function(selectedViewModel) {
          allViews.each(function(viewModel) {
            return viewModel.set('selected', viewModel === selectedViewModel);
          });
          return _this.trigger('selected-view-changed', selectedViewModel);
        });
        allViews.on('accessible-selected', function(viewModel) {
          return _this.trigger('accessible-view-selected', viewModel);
        });
        this.set('root', rootViewModel);
        return this.set('allViews', allViews);
      }
    });
    return ViewHierModel;
  });

}).call(this);

Version data entries

58 entries across 41 versions & 5 rubygems

Version Path
rufus-0.6 RufusApp/Frank/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.6 RufusApp/Frank/frankified_build/Frankified.app/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.5 RufusApp/Frank/frankified_build/Frankified.app/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.5 RufusApp/Frank/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.4 RufusApp/Frank/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.4 RufusApp/Frank/frankified_build/Frankified.app/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.3 RufusApp/Frank/frankified_build/Frankified.app/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.3 RufusApp/Frank/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.1 RufusApp/Frank/frank_static_resources.bundle/js/view_hier_model.js
rufus-0.1 RufusApp/Frank/frankified_build/Frankified.app/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.2.0 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.2.0.pre1 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.13.pre1 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.12 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.11.pre1 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.10 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.9.pre1 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js
frank-cucumber-1.1.8 frank-skeleton/frank_static_resources.bundle/js/view_hier_model.js