Author: pyaschenko
Date: 2011-02-17 10:34:11 -0500 (Thu, 17 Feb 2011)
New Revision: 21738
Added:
trunk/core/impl/src/main/resources/META-INF/resources/richfaces-utils.js
Modified:
trunk/core/impl/src/main/resources/META-INF/resources/richfaces.js
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java
Log:
https://jira.jboss.org/browse/RF-8454
Added: trunk/core/impl/src/main/resources/META-INF/resources/richfaces-utils.js
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/resources/richfaces-utils.js
(rev 0)
+++ trunk/core/impl/src/main/resources/META-INF/resources/richfaces-utils.js 2011-02-17
15:34:11 UTC (rev 21738)
@@ -0,0 +1,87 @@
+// RichFaces.utils
+// RichFaces.utils.cache
+(function ($, rf) {
+ rf.utils = rf.utils || {};
+
+ rf.utils.Cache = function (key, items, values, useCache) {
+ this.key = key.toLowerCase();
+ this.cache = {};
+ this.cache[this.key] = items || [];
+ this.originalValues = typeof values == "function" ? values(items) : values ||
this.cache[this.key];
+ this.values = processValues(this.originalValues);
+ this.useCache = useCache || checkValuesPrefix.call(this);
+ };
+
+ var processValues = function (values) {
+ var processedValues = [];
+ for (var i = 0; i<values.length; i++) {
+ processedValues.push(values[i].toLowerCase());
+ }
+ return processedValues;
+ };
+
+ var checkValuesPrefix = function () {
+ var result = true;
+ for (var i = 0; i<this.values.length; i++) {
+ if (this.values[i].indexOf(this.key)!=0) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ };
+
+ var getItems = function (key, filterFunction) {
+ key = key.toLowerCase();
+ var newCache = [];
+
+ if (key.length < this.key.length) {
+ return newCache;
+ }
+
+ if (this.cache[key]) {
+ newCache = this.cache[key];
+ } else {
+ var useCustomFilterFunction = typeof filterFunction == "function";
+ var itemsCache = this.cache[this.key];
+ for (var i = 0; i<this.values.length; i++) {
+ var value = this.values[i];
+ if (useCustomFilterFunction && filterFunction(key, value)) {
+ newCache.push(itemsCache[i]);
+ } else {
+ var p = value.indexOf(key);
+ if (p == 0) {
+ newCache.push(itemsCache[i]);
+ }
+ }
+ }
+
+ if ((!this.lastKey || key.indexOf(this.lastKey)!=0) && newCache.length > 0)
{
+ this.cache[key] = newCache;
+ if (newCache.length==1) {
+ this.lastKey = key;
+ }
+ }
+ }
+
+ return newCache;
+ };
+
+ var getItemValue = function (item) {
+ return this.originalValues[this.cache[this.key].index(item)];
+ };
+
+ var isCached = function (key) {
+ key = key.toLowerCase();
+ return this.cache[key] || this.useCache && key.indexOf(this.key)==0;
+ };
+
+ $.extend(rf.utils.Cache.prototype, (function () {
+ return {
+ getItems: getItems,
+ getItemValue: getItemValue,
+ isCached: isCached
+ };
+ })());
+
+})(jQuery, RichFaces);
\ No newline at end of file
Modified: trunk/core/impl/src/main/resources/META-INF/resources/richfaces.js
===================================================================
--- trunk/core/impl/src/main/resources/META-INF/resources/richfaces.js 2011-02-17 15:26:41
UTC (rev 21737)
+++ trunk/core/impl/src/main/resources/META-INF/resources/richfaces.js 2011-02-17 15:34:11
UTC (rev 21738)
@@ -594,93 +594,4 @@
} else {
window.attachEvent("onunload", richfaces.cleanDom);
}
-}(jQuery, RichFaces));
-
-// RichFaces.utils
-// RichFaces.utils.cache
-(function ($, rf) {
- rf.utils = rf.utils || {};
-
- rf.utils.Cache = function (key, items, values, useCache) {
- this.key = key.toLowerCase();
- this.cache = {};
- this.cache[this.key] = items || [];
- this.originalValues = typeof values == "function" ? values(items) : values ||
this.cache[this.key];
- this.values = processValues(this.originalValues);
- this.useCache = useCache || checkValuesPrefix.call(this);
- };
-
- var processValues = function (values) {
- var processedValues = [];
- for (var i = 0; i<values.length; i++) {
- processedValues.push(values[i].toLowerCase());
- }
- return processedValues;
- };
-
- var checkValuesPrefix = function () {
- var result = true;
- for (var i = 0; i<this.values.length; i++) {
- if (this.values[i].indexOf(this.key)!=0) {
- result = false;
- break;
- }
- }
- return result;
- };
-
- var getItems = function (key, filterFunction) {
- key = key.toLowerCase();
- var newCache = [];
-
- if (key.length < this.key.length) {
- return newCache;
- }
-
- if (this.cache[key]) {
- newCache = this.cache[key];
- } else {
- var useCustomFilterFunction = typeof filterFunction == "function";
- var itemsCache = this.cache[this.key];
- for (var i = 0; i<this.values.length; i++) {
- var value = this.values[i];
- if (useCustomFilterFunction && filterFunction(key, value)) {
- newCache.push(itemsCache[i]);
- } else {
- var p = value.indexOf(key);
- if (p == 0) {
- newCache.push(itemsCache[i]);
- }
- }
- }
-
- if ((!this.lastKey || key.indexOf(this.lastKey)!=0) && newCache.length > 0)
{
- this.cache[key] = newCache;
- if (newCache.length==1) {
- this.lastKey = key;
- }
- }
- }
-
- return newCache;
- };
-
- var getItemValue = function (item) {
- return this.originalValues[this.cache[this.key].index(item)];
- };
-
- var isCached = function (key) {
- key = key.toLowerCase();
- return this.cache[key] || this.useCache && key.indexOf(this.key)==0;
- };
-
- $.extend(rf.utils.Cache.prototype, (function () {
- return {
- getItems: getItems,
- getItemValue: getItemValue,
- isCached: isCached
- };
- })());
-
-})(jQuery, RichFaces);
-
+}(jQuery, RichFaces));
\ No newline at end of file
Modified:
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java
===================================================================
---
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-02-17
15:26:41 UTC (rev 21737)
+++
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/AutocompleteRendererBase.java 2011-02-17
15:34:11 UTC (rev 21738)
@@ -67,6 +67,7 @@
*/
@ResourceDependencies({
@ResourceDependency(library = "org.richfaces", name =
"ajax.reslib"),
+ @ResourceDependency(name = "richfaces-utils.js"),
@ResourceDependency(library = "org.richfaces", name =
"base-component.reslib"),
@ResourceDependency(name = "jquery.position.js"), @ResourceDependency(name
= "richfaces-event.js"),
@ResourceDependency(name = "richfaces-selection.js"),
Modified: trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java
===================================================================
---
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java 2011-02-17
15:26:41 UTC (rev 21737)
+++
trunk/ui/input/ui/src/main/java/org/richfaces/renderkit/SelectRendererBase.java 2011-02-17
15:34:11 UTC (rev 21738)
@@ -40,7 +40,8 @@
*/
@ResourceDependencies({ @ResourceDependency(library = "javax.faces", name =
"jsf.js"),
@ResourceDependency(name = "jquery.js"), @ResourceDependency(name =
"jquery.position.js"),
- @ResourceDependency(name = "richfaces.js"), @ResourceDependency(name =
"jquery.position.js"),
+ @ResourceDependency(name = "richfaces.js"), @ResourceDependency(name =
"richfaces-utils.js"),
+ @ResourceDependency(name = "jquery.position.js"),
@ResourceDependency(name = "richfaces-event.js"),
@ResourceDependency(name = "richfaces-base-component.js"),
@ResourceDependency(name = "richfaces-selection.js"),
@ResourceDependency(library = "org.richfaces", name =
"inputBase.js"),