blob: 2dd469bcfbe767359df6286970c58a528eb9d479 [file] [log] [blame]
<!DOCTYPE html>
<html>
<!--
Copyright 2007 The Closure Library Authors. All Rights Reserved.
Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<!--
-->
<head>
<title>goog.ui.ac.RichRemote</title>
<script src="../base.js"></script>
<script>
goog.require("goog.array");
goog.require("goog.dom");
goog.require("goog.ui.ac.RichRemote");
</script>
<link rel="stylesheet" href="css/demo.css">
<link rel="stylesheet" href="../css/autocomplete.css">
<style type="text/css">
.apple {
background-color: #990033;
color: #FFFFFF;
margin: 3px;
font-style: italic;
}
.citrus {
background-color: #CCCC33;
color: #FFFFFF;
margin: 3px;
font-style: italic;
}
.berry {
background-color: #009933;
color: #FFFFFF;
margin: 3px;
font-style: italic;
}
</style>
</head>
<body>
<h1>goog.ui.ac.RichRemote</h1>
<p>
Fruit Selector:<br>
<input type="text" id="txtInput" style="width:500px"/>
<input type="checkbox" id="berryAllergy" onclick="setFilter()"/>
<label for="berryAllergy">berry allergy</label>
<input type="checkbox" id="setHighlighting"
onclick="setHighlighting()"/>
<label for="setHighlighting">standard highlighting</label>
<p>
This data is being pulled from the server at
<a href="autocompleterichremotedata.js">autocompleterichremotedata.js</a>.
</p>
<p>
Ideally the server would perform a search on the query and would only
return relevant results; however, this response is static.
</p>
</p>
<iframe id="wikipedia" width="900" height="600"></iframe>
<script>
var makeRichRow_ = function(item, itemType, itemClassName) {
item.type = itemType;
item.render = function(node, token) {
var dom_ = goog.dom.getDomHelper(node);
var typeNode = dom_.createDom("span", itemClassName);
dom_.appendChild(typeNode, dom_.createTextNode(itemType));
var nameNode = dom_.createDom("span");
dom_.appendChild(nameNode, dom_.createTextNode(item.name));
dom_.appendChild(node, typeNode);
dom_.appendChild(node, nameNode);
};
item.select = function(target) {
target.value = item.name;
wikipedia.src = item.url;
};
return item;
};
var apple = function(item) {
return makeRichRow_(item, "Apple", "apple");
};
var citrus = function(item) {
return makeRichRow_(item, "Citrus", "citrus");
};
var berry = function(item) {
return makeRichRow_(item, "Berry", "berry");
};
var input = document.getElementById("txtInput");
var wikipedia = document.getElementById("wikipedia");
var ac = new goog.ui.ac.RichRemote("autocompleterichremotedata.js",
input);
// Set the autocomplete"s rowFilter appropriately
var setFilter = function() {
var checkbox = document.getElementById("berryAllergy");
if (checkbox.checked) {
ac.setRowFilter(filterOutBerries);
} else {
ac.setRowFilter();
}
};
// Set the autocomplete"s standard highlighting
var setHighlighting = function() {
var checkbox = document.getElementById("setHighlighting");
ac.setUseStandardHighlighting(checkbox.checked);
};
// Do not include berries in the search results
var filterOutBerries = function(rows) {
var filterFunction = function(item) { return item.type != "Berry"; };
return goog.array.filter(rows, filterFunction);
};
// When the page loads, make sure to set the filter appropriately
window.onload = function() {
setFilter();
setHighlighting();
};
</script>
</body>
</html>