You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/08/14 11:41:57 UTC
[28/37] git commit: WICKET-4993 Add a minInputLength parameter to
AutoCompleteTextField
WICKET-4993 Add a minInputLength parameter to AutoCompleteTextField
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/30345bf3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/30345bf3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/30345bf3
Branch: refs/heads/5299-ajax-strategy
Commit: 30345bf3d004fe0d7213c59f61302b3d1c35d621
Parents: 4ab5064
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Aug 8 13:26:35 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Aug 8 13:26:35 2013 +0200
----------------------------------------------------------------------
.../AbstractAutoCompleteBehavior.java | 1 +
.../html/autocomplete/AutoCompleteSettings.java | 23 ++++++++++++++++++++
.../html/autocomplete/wicket-autocomplete.js | 20 ++++++++++++++---
3 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/30345bf3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
index a9360a7..45ed86d 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
@@ -155,6 +155,7 @@ public abstract class AbstractAutoCompleteBehavior extends AbstractDefaultAjaxBe
settings.getIgnoreBordersWhenPositioning());
sb.append(",showListOnFocusGain: ").append(settings.getShowListOnFocusGain());
sb.append(",throttleDelay: ").append(settings.getThrottleDelay());
+ sb.append(",minInputLength: ").append(settings.getMinInputLength());
sb.append(",parameterName: '").append(settings.getParameterName()).append('\'');
sb.append(",showCompleteListOnFocusGain: ").append(
settings.getShowCompleteListOnFocusGain());
http://git-wip-us.apache.org/repos/asf/wicket/blob/30345bf3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
index 0bd6aa8..89b78ab 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
@@ -71,6 +71,8 @@ public final class AutoCompleteSettings implements IClusterable
private String parameterName = "q";
+ private int minInputLength = 1;
+
/**
* Indicates whether the first item in the list is automatically selected when the autocomplete
* list is shown.
@@ -357,4 +359,25 @@ public final class AutoCompleteSettings implements IClusterable
{
return parameterName;
}
+
+ /**
+ * @return the minimum input length required to display the autocomplete list
+ */
+ public int getMinInputLength()
+ {
+ return minInputLength;
+ }
+
+ /**
+ * Set the minimum input length required to display the autocomplete list
+ *
+ * @param minInputLength
+ * the minimum input length required to display the autocomplete list
+ * @return this {@link AutoCompleteSettings}
+ */
+ public AutoCompleteSettings setMinInputLength(int minInputLength)
+ {
+ this.minInputLength = minInputLength;
+ return this;
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/30345bf3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
index 6de3de2..1a13d0c 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
@@ -72,6 +72,9 @@
var localThrottler = new Wicket.Throttler(true);
var throttleDelay = cfg.throttleDelay;
+ //this is the minimum input length required to display the autocomplete list
+ var minInputLength = cfg.minInputLength || 1;
+
function initialize(){
var isShowing = false;
// Remove the autocompletion menu if still present from
@@ -353,7 +356,13 @@
var attrs = {
u: callbackUrl,
pre: [ function (attributes) {
- return (document.activeElement === initialElement);
+ var activeIsInitial = (document.activeElement === initialElement);
+ var elementVal = Wicket.$(elementId).value;
+ var hasMinimumLength = elementVal.length >= minInputLength;
+
+ var result = hasMinimumLength && activeIsInitial;
+ if (!result) hideAutoComplete();
+ return result;
}],
ep: {},
wr: false,
@@ -366,12 +375,17 @@
function actualUpdateChoices() {
showIndicator();
-
+
var paramName = cfg.parameterName;
var attrs = {
u: callbackUrl,
pre: [ function (attributes) {
- return (document.activeElement === initialElement);
+ var activeIsInitial = (document.activeElement === initialElement);
+ var elementVal = Wicket.$(elementId).value;
+ var hasMinimumLength = elementVal.length >= minInputLength;
+ var result = hasMinimumLength && activeIsInitial;
+ if (!result) hideAutoComplete();
+ return result;
}],
ep: {},
wr: false,