You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2006/03/21 01:47:56 UTC
svn commit: r387362 -
/myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js
Author: mmarinschek
Date: Mon Mar 20 16:47:56 2006
New Revision: 387362
URL: http://svn.apache.org/viewcvs?rev=387362&view=rev
Log:
some fixes to tableSuggest
Modified:
myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js?rev=387362&r1=387361&r2=387362&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/inputsuggestajax/resource/tableSuggest.js Mon Mar 20 16:47:56 2006
@@ -30,36 +30,49 @@
//puting the values from the choosen row into the fields
org_apache_myfaces_TableSuggest.prototype.putValueToField = function(trElem)
{
- for(j=0;j<trElem.childNodes.length;j++)
+ if (trElem)
{
- var tdElem = trElem.childNodes[j];
+ /* var currentYPos = dojo.html.getScrollTop();
+ var currentXPos = dojo.html.getScrollLeft();
+ //window.location.href = dojo.dom.nextElement(trElem).name;
+ var nextElem = dojo.dom.nextElement(trElem);
+ nextElem.childNodes[0].onclick();
+ window.scrollTo(currentXPos,currentYPos);
+ var inputField = dojo.byId("_idJsp3:cityField2");
+ inputField.focus();*/
- for(a=0;a<tdElem.childNodes.length;a++)
+ for (j = 0; j < trElem.childNodes.length; j++)
{
- var spanElem = tdElem.childNodes[a];
+ var tdElem = trElem.childNodes[j];
- if(spanElem.id)
+ for (a = 0; a < tdElem.childNodes.length; a++)
{
- var idToPutValue = spanElem.id.substr(11);
- var elemToPutValue = dojo.byId(idToPutValue);
+ var spanElem = tdElem.childNodes[a];
- if (elemToPutValue)
+ if (spanElem.id)
{
- if(dojo.dom.getTagName(elemToPutValue) == "input") {
- elemToPutValue.value = spanElem.innerHTML;
- if(elemToPutValue.onchange)
+ var idToPutValue = spanElem.id.substr(11);
+ var elemToPutValue = dojo.byId(idToPutValue);
+
+ if (elemToPutValue)
+ {
+ if (dojo.dom.getTagName(elemToPutValue) == "input")
{
- elemToPutValue.onchange();
+ elemToPutValue.value = spanElem.innerHTML;
+ if (elemToPutValue.onchange)
+ {
+ elemToPutValue.onchange();
+ }
}
- }
- else if (dojo.dom.getTagName(elemToPutValue) == "select")
- {
- for (i = 0; i < elemToPutValue.options.length; i++)
+ else if (dojo.dom.getTagName(elemToPutValue) == "select")
{
- var optionValue = spanElem.innerHTML;
-
- if (elemToPutValue.options[i].value == optionValue)
- elemToPutValue.options[i].selected = true;
+ for (i = 0; i < elemToPutValue.options.length; i++)
+ {
+ var optionValue = spanElem.innerHTML;
+
+ if (elemToPutValue.options[i].value == optionValue)
+ elemToPutValue.options[i].selected = true;
+ }
}
}
}
@@ -175,24 +188,9 @@
var firstPage = null;
var firstPageField = null;
- var iframe = null;
-
- if(dojo.render.html.ie)
- {
- if(!tableSuggest.iframe) {
- tableSuggest.iframe = document.createElement("<iframe>");
- tableSuggest.iframe.frameborder='0';
- tableSuggest.iframe.src='about:blank';
- var s = tableSuggest.iframe.style;
- s.position = "absolute";
- s.display = "inline";
- s.zIndex = 2;
- var popUpParent = popUp.parentNode;
- dojo.dom.insertAtPosition(tableSuggest.iframe, popUpParent, "first");
- }
- }
dojo.dom.removeChildren(popUp);
+
collection.clear();
for(k=0;k<tablePagesArray.length;k++)
@@ -205,12 +203,10 @@
dojo.dom.insertAtPosition(firstPageField, popUp, "last");
k++;
- if(firstPage.rows) {
- if(firstPage.rows.length == 2) {
- var row = firstPage.rows[1];
- tableSuggest.putValueToField(row); }
+ if(firstPage.rows && firstPage.rows.length == 2) {
+ var row = firstPage.rows[1];
+ tableSuggest.putValueToField(row);
}
-
}
else
{
@@ -218,12 +214,9 @@
}
}
- if(dojo.render.html.ie) {
- tableSuggest.iframe.style.width = dojo.style.getBorderBoxWidth(popUp);
- tableSuggest.iframe.style.height = dojo.style.getBorderBoxHeight(popUp);
- }
- dojo.debug("releasing request lock");
- tableSuggest.requestLocker = false;
+ tableSuggest.handleIFrame(popUp);
+
+ tableSuggest.requestLocker = false;
}
else if(type == "error")
{
@@ -239,46 +232,51 @@
org_apache_myfaces_TableSuggest.prototype.nextPage = function(thisPageField)
{
- var nextPage = this.tablePagesCollection.item(0);
- var nextPageField = this.tablePagesCollection.item(1);
+ var collLength = this.tablePagesCollection.count;
- this.tablePagesCollection.removeAt(0);
- this.tablePagesCollection.removeAt(0);
+ if (collLength && collLength > 0)
+ {
+ var nextPage = this.tablePagesCollection.item(0);
+ var nextPageField = this.tablePagesCollection.item(1);
- var thisPage = dojo.dom.prevElement(thisPageField);
+ this.tablePagesCollection.removeAt(0);
+ this.tablePagesCollection.removeAt(0);
- var popUp = dojo.dom.getFirstAncestorByTag(thisPage, "div");
+ var thisPage = dojo.dom.prevElement(thisPageField);
- dojo.dom.removeChildren(popUp);
+ var popUp = dojo.dom.getFirstAncestorByTag(thisPage, "div");
- dojo.dom.insertAtPosition(nextPage, popUp, "first");
- dojo.dom.insertAtPosition(nextPageField, popUp, "last");
+ dojo.dom.removeChildren(popUp);
- this.tablePagesCollection.add(thisPage);
- this.tablePagesCollection.add(thisPageField);
+ dojo.dom.insertAtPosition(nextPage, popUp, "first");
+ dojo.dom.insertAtPosition(nextPageField, popUp, "last");
+
+ this.tablePagesCollection.add(thisPage);
+ this.tablePagesCollection.add(thisPageField);
+ }
};
org_apache_myfaces_TableSuggest.prototype.previousPage = function(thisPage)
{
var collLength = this.tablePagesCollection.count;
- var prevPageField = this.tablePagesCollection.item(collLength-1);
- var prevPage = this.tablePagesCollection.item(collLength-2);
-
- this.tablePagesCollection.removeAt(collLength-1);
- this.tablePagesCollection.removeAt(collLength-2);
-
- var popUp = dojo.dom.getFirstAncestorByTag(thisPage, "div");
-
- dojo.dom.removeChildren(popUp);
-
- dojo.dom.insertAtPosition(prevPage, popUp, "first");
- dojo.dom.insertAtPosition(prevPageField, popUp, "last");
-
- var table = dojo.dom.firstElement(thisPage);
- var thisPageField = dojo.dom.nextElement(table);
- this.tablePagesCollection.insert(0,thisPageField);
- this.tablePagesCollection.insert(0,thisPage);
+ if (collLength && collLength > 0)
+ {
+ var prevPageField = this.tablePagesCollection.item(collLength - 1);
+ var prevPage = this.tablePagesCollection.item(collLength - 2);
+ var popUp = dojo.dom.getFirstAncestorByTag(thisPage, "div");
+
+ this.tablePagesCollection.removeAt(collLength - 1);
+ this.tablePagesCollection.removeAt(collLength - 2);
+
+ var thisPageField = dojo.dom.nextElement(thisPage);
+ this.tablePagesCollection.insert(0, thisPageField);
+ this.tablePagesCollection.insert(0, thisPage);
+
+ dojo.dom.removeChildren(popUp);
+ dojo.dom.insertAtPosition(prevPage, popUp, "first");
+ dojo.dom.insertAtPosition(prevPageField, popUp, "last");
+ }
};
org_apache_myfaces_TableSuggest.prototype.getFirstRowElem = function(popUp)
@@ -331,6 +329,36 @@
}
};
+ org_apache_myfaces_TableSuggest.prototype.handleIFrame = function(popUp)
+ {
+ if (dojo.render.html.ie)
+ {
+ if (!this.iframe)
+ {
+ this.iframe = document.createElement("<iframe>");
+ this.iframe.frameborder = '0';
+ this.iframe.src = 'about:blank';
+ var s = this.iframe.style;
+ s.position = "absolute";
+ s.zIndex = 2;
+ var popUpParent = popUp.parentNode;
+ dojo.dom.insertAtPosition(this.iframe, popUpParent, "first");
+ }
+
+ var popUpStyleHeight = popUp.style.height;
+ var popUpHeight = dojo.style.getOuterHeight(popUp);
+ var popUpContentHeight = dojo.style.getOuterHeight(popUp.childNodes[0]);
+ var popUpContentWidth = dojo.style.getOuterWidth(popUp.childNodes[0]);
+
+ if(popUpStyleHeight == "" || popUpHeight < popUpContentHeight)
+ this.iframe.style.height = popUpHeight;
+ else
+ this.iframe.style.height = popUpContentHeight;
+
+ this.iframe.style.width = popUpContentWidth;
+ }
+ };
+
org_apache_myfaces_TableSuggest.prototype.lastKeyUpEvent = function()
{
//dojo.lang.setTimeout('',4000);
@@ -350,8 +378,8 @@
var popUp = dojo.byId(popUpId);
dojo.dom.removeChildren(popUp);
- if(this.iframe)
- this.iframe.style.display = "none";
+ if(this.iframe && popUp)
+ popUp.parentNode.removeChild(popUp.parentNode.childNodes[0])
this.firstHighlightedElem = null;
this.actualHighlightedElem = null;