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){