Author: gseitz
Date: Wed Mar 26 17:11:37 2008
New Revision: 641651
URL: http://svn.apache.org/viewvc?rev=641651&view=rev
Log:
WICKET-1350
WICKET-1351
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js?rev=641651&r1=641650&r2=641651&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
(original)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
Wed Mar 26 17:11:37 2008
@@ -51,25 +51,29 @@
var objonkeyup;
var objonkeypress;
var objonchange;
+ var objonchangeoriginal;
- function initialize(){
+ function initialize(){
var obj=wicketGet(elementId);
- objonkeydown = obj.onkeydown;
- objonblur = obj.onblur;
- objonkeyup = obj.onkeyup;
- objonkeypress = obj.onkeypress;
+ objonkeydown=obj.onkeydown;
+ objonblur=obj.onblur;
+ objonkeyup=obj.onkeyup;
+ objonkeypress=obj.onkeypress;
// WICKET-1280
- objonchangeoriginal = obj.onchange;
+ objonchangeoriginal=obj.onchange;
obj.onchange=function(event){
- if(mouseactive==1) return false;
- if(typeof objonchangeoriginal ==
"function")objonchangeoriginal();
+ if(mouseactive==1)return false;
+ if(typeof objonchangeoriginal=="function")objonchangeoriginal();
}
- objonchange = obj.onchange;
+ objonchange=obj.onchange;
obj.onblur=function(event){
- if(mouseactive==1)return false;
+ if(mouseactive==1){
+ Wicket.$(elementId).focus();
+ return false;
+ }
hideAutoComplete();
}
@@ -105,13 +109,13 @@
obj.value=getSelectedValue();
hideAutoComplete();
hidingAutocomplete=1;
- } else if
(Wicket.AutoCompleteSettings.enterHidesWithNoSelection == true) {
+ } else if
(Wicket.AutoCompleteSettings.enterHidesWithNoSelection==true) {
hideAutoComplete();
hidingAutocomplete=1;
}
mouseactive=0;
- if(typeof objonkeydown == "function")objonkeydown();
- if(typeof objonchange ==
"function")objonchange();
+ if(typeof objonkeydown=="function")objonkeydown();
+ if(typeof objonchange=="function")objonchange();
if(selected>-1){
//return killEvent(event);
@@ -139,7 +143,7 @@
default:
updateChoices();
}
- if(typeof objonkeyup == "function")objonkeyup();
+ if(typeof objonkeyup=="function")objonkeyup();
return null;
}
@@ -150,7 +154,7 @@
return killEvent(event);
}
}
- if(typeof objonkeypress == "function")objonkeypress();
+ if(typeof objonkeypress=="function")objonkeypress();
}
}
@@ -168,6 +172,10 @@
choiceDiv.style.display = "none";
choiceDiv.style.position = "absolute";
choiceDiv.style.zIndex = "10000";
+
+ // WICKET-1350/WICKET-1351
+ choiceDiv.onmouseout=function() {mouseactive=0;};
+ choiceDiv.onmouseover=function() {mouseactive=1;};
}
choiceDiv.show = function() { wicketShow(this.id) }
@@ -175,7 +183,7 @@
return choiceDiv;
}
-
+
function killEvent(event){
if(!event)event=window.event;
if(!event)return false;
@@ -237,7 +245,7 @@
var leftPosition=0;
var topPosition=0;
do {
- topPosition += obj.offsetTop || 0;
+ topPosition += obj.offsetTop || 0;
leftPosition += obj.offsetLeft || 0;
obj = obj.offsetParent;
} while (obj);
@@ -248,7 +256,7 @@
// check if the input hasn't been cleared in the meanwhile
var input=wicketGet(elementId);
- if (input.value == null || input.value == "") {
+ if (input.value==null || input.value=="") {
hideAutoComplete();
return;
}
@@ -264,20 +272,15 @@
node.onclick = function(event){
mouseactive=0;
wicketGet(elementId).value=getSelectedValue();
- if(typeof objonchange ==
"function")objonchange();
+ if(typeof
objonchange=="function")objonchange();
hideAutoComplete();
}
- node.onmouseover = function(event){
- mouseactive=1;
+ node.onmouseover = function(event){
selected = getElementIndex(this);
render();
showAutoComplete();
}
-
- node.onmouseout = function(event){
- mouseactive=0;
- }
}
} else {
elementCount=0;
@@ -296,20 +299,20 @@
function scheduleEmptyCheck() {
window.setTimeout(function() {
var input=wicketGet(elementId);
- if (input.value == null || input.value == "") {
+ if (input.value==null || input.value=="") {
hideAutoComplete();
}
}, 100);
}
function getSelectedValue(){
- var element = getAutocompleteMenu();
+ var element=getAutocompleteMenu();
var
attr=element.firstChild.childNodes[selected].attributes['textvalue'];
var value;
if (attr==undefined) {
- value = element.firstChild.childNodes[selected].innerHTML;
+ value=element.firstChild.childNodes[selected].innerHTML;
} else {
- value = attr.value;
+ value=attr.value;
}
return stripHTML(value);
}
@@ -331,18 +334,19 @@
for(var i=0;i<elementCount;i++){
var node=element.firstChild.childNodes[i];
- var classNames = node.className.split(" ");
+ var classNames=node.className.split(" ");
for (var j=0; j<classNames.length; j++) {
- if (classNames[j] == 'selected') {
- classNames[j] = '';
+ if (classNames[j]=='selected') {
+ classNames[j]='';
}
}
if(selected==i){
classNames.push('selected');
+ node.scrollIntoView(true);
}
- node.className = classNames.join(" ");
+ node.className=classNames.join(" ");
}
}
@@ -351,11 +355,11 @@
var value = obj.style.visibility;
if (!value) {
if (document.defaultView &&
typeof(document.defaultView.getComputedStyle)=="function") {
- value =
document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");
+
value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");
} else if (obj.currentStyle) {
value = obj.currentStyle.visibility;
} else {
- value = '';
+ value='';
}
}
return value;
@@ -371,25 +375,25 @@
}
function hideShowCoveredTimeout(){
- var el = getAutocompleteMenu();
- var p = getPosition(el);
+ var el=getAutocompleteMenu();
+ var p=getPosition(el);
var acLeftX=p[0];
var acRightX=el.offsetWidth+acLeftX;
var acTopY=p[1];
var acBottomY=el.offsetHeight+acTopY;
- var hideTags = new Array("select","iframe","applet");
+ var hideTags=new Array("select","iframe","applet");
for (var j=0;j<hideTags.length;j++) {
- var tagsFound = document.getElementsByTagName(hideTags[j]);
+ var tagsFound=document.getElementsByTagName(hideTags[j]);
for (var i=0; i<tagsFound.length; i++){
var tag=tagsFound[i];
p=getPosition(tag);
- var leftX = p[0];
- var rightX = leftX+tag.offsetWidth;
- var topY = p[1];
- var bottomY = topY+tag.offsetHeight;
+ var leftX=p[0];
+ var rightX=leftX+tag.offsetWidth;
+ var topY=p[1];
+ var bottomY=topY+tag.offsetHeight;
if (this.hidden || (leftX>acRightX) || (rightX<acLeftX) ||
(topY>acBottomY) || (bottomY<acTopY)) {
if(!tag.wicket_element_visibility) {