diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/ac/richremotearraymatcher.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/ui/ac/richremotearraymatcher.js | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/ac/richremotearraymatcher.js b/contexts/data/lib/closure-library/closure/goog/ui/ac/richremotearraymatcher.js deleted file mode 100644 index dadb34a..0000000 --- a/contexts/data/lib/closure-library/closure/goog/ui/ac/richremotearraymatcher.js +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2007 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Class that retrieves rich autocomplete matches, represented as - * a structured list of lists, via an ajax call. The first element of each - * sublist is the name of a client-side javascript function that converts the - * remaining sublist elements into rich rows. - * - */ - -goog.provide('goog.ui.ac.RichRemoteArrayMatcher'); - -goog.require('goog.ui.ac.RemoteArrayMatcher'); - - - -/** - * An array matcher that requests rich matches via ajax and converts them into - * rich rows. - * @param {string} url The Uri which generates the auto complete matches. The - * search term is passed to the server as the 'token' query param. - * @param {boolean=} opt_noSimilar If true, request that the server does not do - * similarity matches for the input token against the dictionary. - * The value is sent to the server as the 'use_similar' query param which is - * either "1" (opt_noSimilar==false) or "0" (opt_noSimilar==true). - * @constructor - * @extends {goog.ui.ac.RemoteArrayMatcher} - */ -goog.ui.ac.RichRemoteArrayMatcher = function(url, opt_noSimilar) { - goog.ui.ac.RemoteArrayMatcher.call(this, url, opt_noSimilar); - - /** - * A function(rows) that is called before the array matches are returned. - * It runs client-side and filters the results given by the server before - * being rendered by the client. - * @type {Function} - * @private - */ - this.rowFilter_ = null; - -}; -goog.inherits(goog.ui.ac.RichRemoteArrayMatcher, goog.ui.ac.RemoteArrayMatcher); - - -/** - * Set the filter that is called before the array matches are returned. - * @param {Function} rowFilter A function(rows) that returns an array of rows as - * a subset of the rows input array. - */ -goog.ui.ac.RichRemoteArrayMatcher.prototype.setRowFilter = function(rowFilter) { - this.rowFilter_ = rowFilter; -}; - - -/** - * Retrieve a set of matching rows from the server via ajax and convert them - * into rich rows. - * @param {string} token The text that should be matched; passed to the server - * as the 'token' query param. - * @param {number} maxMatches The maximum number of matches requested from the - * server; passed as the 'max_matches' query param. The server is - * responsible for limiting the number of matches that are returned. - * @param {Function} matchHandler Callback to execute on the result after - * matching. - * @override - */ -goog.ui.ac.RichRemoteArrayMatcher.prototype.requestMatchingRows = - function(token, maxMatches, matchHandler) { - // The RichRemoteArrayMatcher must map over the results and filter them - // before calling the request matchHandler. This is done by passing - // myMatchHandler to RemoteArrayMatcher.requestMatchingRows which maps, - // filters, and then calls matchHandler. - var myMatchHandler = goog.bind(function(token, matches) { - /** @preserveTry */ - try { - var rows = []; - for (var i = 0; i < matches.length; i++) { - var func = /** @type {!Function} */ - (goog.json.unsafeParse(matches[i][0])); - for (var j = 1; j < matches[i].length; j++) { - var richRow = func(matches[i][j]); - rows.push(richRow); - - // If no render function was provided, set the node's innerHTML. - if (typeof richRow.render == 'undefined') { - richRow.render = function(node, token) { - node.innerHTML = richRow.toString(); - }; - } - - // If no select function was provided, set the text of the input. - if (typeof richRow.select == 'undefined') { - richRow.select = function(target) { - target.value = richRow.toString(); - }; - } - } - } - if (this.rowFilter_) { - rows = this.rowFilter_(rows); - } - matchHandler(token, rows); - } catch (exception) { - // TODO(user): Is this what we want? - matchHandler(token, []); - } - }, this); - - // Call the super's requestMatchingRows with myMatchHandler - goog.ui.ac.RichRemoteArrayMatcher.superClass_ - .requestMatchingRows.call(this, token, maxMatches, myMatchHandler); -}; |