You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2008/10/05 00:11:24 UTC

svn commit: r701721 - in /wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete: AbstractAutoCompleteBehavior.java AutoCompleteSettings.java wicket-autocomplete.js

Author: jcompagner
Date: Sat Oct  4 15:11:23 2008
New Revision: 701721

URL: http://svn.apache.org/viewvc?rev=701721&view=rev
Log:
various fixes from 1.3

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/AutoCompleteSettings.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=701721&r1=701720&r2=701721&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 Oct  4 15:11:23 2008
@@ -73,6 +73,7 @@
 		sb.append(",maxHeight: ").append(settings.getMaxHeightInPx());
 		sb.append(",adjustInputWidth: ").append(settings.isAdjustInputWidth());
 		sb.append(",showListOnEmptyInput: ").append(settings.getShowListOnEmptyInput());
+        sb.append(",showListOnFocusGain: ").append(settings.getShowListOnFocusGain());
 		if (settings.getCssClassName() != null)
 			sb.append(",className: '").append(settings.getCssClassName()).append('\'');
 		sb.append('}');

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java?rev=701721&r1=701720&r2=701721&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java Sat Oct  4 15:11:23 2008
@@ -57,6 +57,8 @@
     private String cssClassName = null;
 
     private boolean adjustInputWidth = true;
+    
+    private boolean showListOnFocusGain = false;
 
   /**
 	 * Indicates whether the first item in the list is automatically selected when the autocomplete
@@ -188,4 +190,25 @@
     {
         this.adjustInputWidth = adjustInputWidth;
     }
-}
\ No newline at end of file
+    
+    /**
+	 * Indicates whether the autocomplete list will be shown when the input field receives focus.
+	 * 
+	 * @return true if the autocomplete list will be shown when the input field receives focus, false
+	 *         otherwise
+	 */
+    public boolean getShowListOnFocusGain()
+    {
+        return this.showListOnFocusGain;
+    }
+    
+    /**
+	 * Sets whether the list should be shown when the input field receives focus.
+	 * 
+	 * @param showListOnEmptyInput the flag
+	 */
+    public void setShowListOnFocusGain(final boolean showListOnFocusGain)
+    {
+        this.showListOnFocusGain = showListOnFocusGain;
+    }
+}

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=701721&r1=701720&r2=701721&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 Oct  4 15:11:23 2008
@@ -128,7 +128,7 @@
                         var value = getSelectedValue();
                         if(value = handleSelection(value)) {
                           obj.value = value;
-                          if(typeof objonchange=="function") objonchange();
+                          if(typeof objonchange=="function") objonchange(event);
                         }
                         hideAutoComplete();
                         hidingAutocomplete = 1;
@@ -137,7 +137,7 @@
                         hidingAutocomplete = 1;
                     }
 	                mouseactive=0;
-	                if(typeof objonkeydown=="function")objonkeydown();
+	                if(typeof objonkeydown=="function")objonkeydown(event);
 
 	                if(selected>-1){
 	                	//return killEvent(event);
@@ -152,10 +152,13 @@
             switch(wicketKeyCode(Wicket.fixEvent(event))){
                 case KEY_ENTER:
 	                return killEvent(event);
+                case KEY_TAB:
+                    if (cfg.showListOnFocusGain)
+                        updateChoices();
+                    break;
                 case KEY_UP:
                 case KEY_DOWN:
                 case KEY_ESC:
-                case KEY_TAB:
                 case KEY_RIGHT:
                 case KEY_LEFT:
                 case KEY_SHIFT:
@@ -165,7 +168,7 @@
                 default:
     	            updateChoices();
             }
-			if(typeof objonkeyup=="function")objonkeyup();
+			if(typeof objonkeyup=="function")objonkeyup(event);
             return null;
         }
 
@@ -176,7 +179,7 @@
 			        return killEvent(event);
                 }
             }
-			if(typeof objonkeypress=="function")objonkeypress();
+			if(typeof objonkeypress=="function")objonkeypress(event);
         }
     }
 
@@ -285,7 +288,7 @@
         var input=wicketGet(elementId);
         var index=getOffsetParentZIndex(elementId);
         container.show();
-        container.style.zIndex=(Number(index)!=Number.NaN?Number(index)+1:index);
+        container.style.zIndex=(!isNaN(Number(index))?Number(index)+1:index);
         container.style.left=position[0]+'px'
         container.style.top=(input.offsetHeight+position[1])+'px';
         if(cfg.adjustInputWidth)
@@ -319,7 +322,7 @@
     
     	// check if the input hasn't been cleared in the meanwhile
     	var input=wicketGet(elementId);
-   		if (!cfg.showListOnEmptyInput && (input.value==null || input.value=="")) {
+   		if ((Wicket.Focus.getFocusedElement() != input) || !cfg.showListOnEmptyInput && (input.value==null || input.value=="")) {
    			hideAutoComplete();
    			return;
    		}
@@ -335,8 +338,8 @@
 			if(value = handleSelection(value)) {
 				wicketGet(elementId).value=value;
 				if (typeof objonchange=="function") {objonchange();}
-				hideAutoComplete();
 			}
+			hideAutoComplete();
 		};
 			
 		var mouseOverFunc = function(event){