1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @fileoverview A class for walking "groups". Groups, intuitively, are logical 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * collections of dom elements. See AbstractNodeWalker and the 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * stopNodeDescent() method here for how groups are defined. 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.provide('cvox.GroupWalker'); 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.AbstractNodeWalker'); 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.BrailleUtil'); 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.CursorSelection'); 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.DescriptionUtil'); 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.DomUtil'); 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.GroupUtil'); 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @constructor 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @extends {cvox.AbstractNodeWalker} 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.GroupWalker = function() { 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) cvox.AbstractNodeWalker.call(this); 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.inherits(cvox.GroupWalker, cvox.AbstractNodeWalker); 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @override 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.GroupWalker.prototype.getDescription = function(prevSel, sel) { 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.DescriptionUtil.getCollectionDescription(prevSel, sel); 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @override 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.GroupWalker.prototype.getBraille = function(prevSel, sel) { 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) throw 'getBraille is unsupported'; 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @override 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.GroupWalker.prototype.getGranularityMsg = function() { 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.ChromeVox.msgs.getMsg('group_strategy'); 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @override 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.GroupWalker.prototype.stopNodeDescent = function(node) { 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.GroupUtil.isLeafNode(node); 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 60