Author: ivaynberg
Date: Sat Sep 27 00:12:10 2008
New Revision: 699584

URL: http://svn.apache.org/viewvc?rev=699584&view=rev
Log:
WICKET-1839

Modified:
    
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
    
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js

Modified: 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java?rev=699584&r1=699583&r2=699584&view=diff
==============================================================================
--- 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
 (original)
+++ 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
 Sat Sep 27 00:12:10 2008
@@ -23,6 +23,7 @@
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
+import org.apache.wicket.util.string.Strings;
 
 /**
  * @since 1.2
@@ -49,23 +50,34 @@
                super.renderHead(response);
                response.renderJavascriptReference(AUTOCOMPLETE_JS);
                final String id = getComponent().getMarkupId();
-               String initJS = String.format("new 
Wicket.AutoComplete('%s','%s',%s);", id,
-                       getCallbackUrl(), constructSettingsJS());
+
+               String indicatorId = findIndicatorId();
+               if (Strings.isEmpty(indicatorId))
+               {
+                       indicatorId = "null";
+               }
+               else
+               {
+                       indicatorId = "'" + indicatorId + "'";
+               }
+
+               String initJS = String.format("new 
Wicket.AutoComplete('%s','%s',%s,%s);", id,
+                       getCallbackUrl(), constructSettingsJS(), indicatorId);
                response.renderOnDomReadyJavascript(initJS);
        }
 
        protected final String constructSettingsJS()
        {
-        final StringBuilder sb = new StringBuilder();
-        sb.append("{preselect: ").append(settings.getPreselect());
-        sb.append(",maxHeight: ").append(settings.getMaxHeightInPx());
-        sb.append(",adjustInputWidth: ").append(settings.isAdjustInputWidth());
-        sb.append(",showListOnEmptyInput: 
").append(settings.getShowListOnEmptyInput());
-        if(settings.getCssClassName() != null)
-            sb.append(",className: 
'").append(settings.getCssClassName()).append('\'');
-        sb.append('}');
-        return sb.toString();
-    }
+               final StringBuilder sb = new StringBuilder();
+               sb.append("{preselect: ").append(settings.getPreselect());
+               sb.append(",maxHeight: ").append(settings.getMaxHeightInPx());
+               sb.append(",adjustInputWidth: 
").append(settings.isAdjustInputWidth());
+               sb.append(",showListOnEmptyInput: 
").append(settings.getShowListOnEmptyInput());
+               if (settings.getCssClassName() != null)
+                       sb.append(",className: 
'").append(settings.getCssClassName()).append('\'');
+               sb.append('}');
+               return sb.toString();
+       }
 
        /**
         * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#onBind()

Modified: 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js?rev=699584&r1=699583&r2=699584&view=diff
==============================================================================
--- 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
 (original)
+++ 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
 Sat Sep 27 00:12:10 2008
@@ -27,7 +27,7 @@
        enterHidesWithNoSelection : false
 };
 
-Wicket.AutoComplete=function(elementId, callbackUrl, cfg){
+Wicket.AutoComplete=function(elementId, callbackUrl, cfg, indicatorId){
     var KEY_TAB=9;
     var KEY_ENTER=13;
     var KEY_ESC=27;
@@ -257,11 +257,24 @@
 
     function actualUpdateChoices()
     {
+       showIndicator();
         var value = wicketGet(elementId).value;
                var request = new 
Wicket.Ajax.Request(callbackUrl+"&q="+processValue(value), doUpdateChoices, 
false, true, false, "wicket-autocomplete|d");
                request.get();
     }
-
+    
+    function showIndicator() {
+       if (indicatorId!=null) {
+               Wicket.$(indicatorId).style.display='';
+       }
+    }
+    
+    function hideIndicator() {
+       if (indicatorId!=null) {
+               Wicket.$(indicatorId).style.display='none';
+       }
+    }
+    
     function processValue(param) {
         return (encodeURIComponent)?encodeURIComponent(param):escape(param);
     }
@@ -353,6 +366,7 @@
         
         Wicket.Log.info("Response processed successfully.");
         Wicket.Ajax.invokePostCallHandlers();
+        hideIndicator();
     }
     
     function scheduleEmptyCheck() {


Reply via email to