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 2004/12/20 07:13:03 UTC
cvs commit: incubator-myfaces/webapps/examples/web jslistener.jsp popup.jsp
mmarinschek 2004/12/19 22:13:03
Modified: src/components/org/apache/myfaces/custom/jslistener/resource
JSListener.js
src/components/org/apache/myfaces/custom/popup/resource
JSPopup.js
src/components/org/apache/myfaces/custom/popup
HtmlPopupRenderer.java
src/myfaces/org/apache/myfaces/renderkit/html
HtmlLabelRenderer.java
webapps/examples/web jslistener.jsp popup.jsp
Log:
killed bugs
Revision Changes Path
1.2 +110 -9 incubator-myfaces/src/components/org/apache/myfaces/custom/jslistener/resource/JSListener.js
Index: JSListener.js
===================================================================
RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/jslistener/resource/JSListener.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JSListener.js 17 Dec 2004 13:19:10 -0000 1.1
+++ JSListener.js 20 Dec 2004 06:13:00 -0000 1.2
@@ -1,17 +1,118 @@
-function orgApacheMyfacesJsListenerSetExpressionProperty(srcId, destId, property, expression)
+function orgApacheMyfacesJsListenerSetExpressionProperty(
+ srcId, destId, property, expression)
{
- var srcElem = document.getElementById(srcId);
- var destElem = document.getElementById(destId);
+ var log = true;
+ var logStr;
- expression = expression.replace(/\$srcElem/g,"srcElem");
- expression = expression.replace(/\$destElem/g,"destElem");
+ try
+ {
+
+ if(log) logStr+="Source-Element id: "+srcId;
+
+ var srcElem = document.getElementById(srcId);
+
+ if(!srcElem)
+ {
+ srcElem = document.getElementsByName(srcId);
+ }
+
+ if(log) logStr+="\n Source-element: "+srcElem;
+ if(log) logStr+="\n Type of source-element: "+typeof(srcElem);
+ if(log && typeof(srcElem)=='object') logStr+="\n Constructor : " +srcElem.constructor;
+ if(log && orgApacheMyfacesJsListenerIsArray(srcElem))
+ logStr+="\n Source-element is an array";
+
+ if(log) logStr += "\n\n Destination-element id: "+destId;
+
+ var destElem = document.getElementById(destId);
+
+ if(!destElem)
+ {
+ destElem = document.getElementsByName(destId);
+ }
+
+ if(log) logStr+="\n Destination-element: "+destElem;
+ if(log) logStr+="\n Type of destination-element: "+typeof(destElem);
+ if(log && typeof(destElem)=='object') logStr+="Constructor : " +destElem.constructor;
+ if(log && orgApacheMyfacesJsListenerIsArray(destElem))
+ logStr+="\n Destination-element is an array";
+
+ if(log) logStr+="\n\n Expression before parsing: "+expression;
+
+ expression = orgApacheMyfacesJsListenerReplaceMakro(expression, "srcElem",srcElem);
+ expression = orgApacheMyfacesJsListenerReplaceMakro(expression, "destElem",destElem);
+
+ if(log) logStr+="\n Expression after parsing: "+expression;
+
+ var value = eval(expression);
+
+ if(property)
+ {
+ var destElemStr = "destElem";
+
+ if(orgApacheMyfacesJsListenerIsArray(destElem))
+ destElemStr+="[0]";
+
+ destElemStr+=".";
- var value = eval(expression);
+ var valueStr;
- if(property)
+ if(typeof (value) == 'string')
+ {
+ valueStr = "'"+value+"'";
+ }
+ else
+ {
+ valueStr = value;
+ }
+
+ var propertySetStr = destElemStr+property+"="+valueStr+";";
+
+ if(log) logStr+="\n\n Property set string: "+propertySetStr;
+
+ eval(propertySetStr);
+ }
+ }
+ catch(e)
{
- var propertySetStr = "destElem."+property+"='"+value+"';";
+ var errorString = 'Error encountered : ';
+ errorString += e['message'];
+ errorString += logStr;
+
+ if(document.all)
+ {
+ e['description']=errorString;
+ throw e;
+ }
+ else
+ {
+ throw errorString;
+ }
+ }
+
+}
+
+function orgApacheMyfacesJsListenerIsArray (array)
+{
+ return ((array != null) && (typeof array == "object") &&
+ ((array.constructor == Array) || array.constructor == HTMLCollection));
+}
+
+function orgApacheMyfacesJsListenerReplaceMakro(expression, macroName, elem)
+{
+
+ var regEx = new RegExp("\\$"+macroName, "g");
- eval(propertySetStr);
+ if(orgApacheMyfacesJsListenerIsArray(elem))
+ {
+ var arrRegEx = new RegExp("\\$"+macroName+"[\\[]([0-9]+)[\\]]", "g");
+ expression = expression.replace(arrRegEx,macroName+"[$1]");
+ expression = expression.replace(regEx,macroName+"[0]");
+ }
+ else
+ {
+ expression = expression.replace(regEx,macroName);
}
+
+ return expression;
}
1.2 +25 -2 incubator-myfaces/src/components/org/apache/myfaces/custom/popup/resource/JSPopup.js
Index: JSPopup.js
===================================================================
RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/popup/resource/JSPopup.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JSPopup.js 1 Dec 2004 16:32:03 -0000 1.1
+++ JSPopup.js 20 Dec 2004 06:13:01 -0000 1.2
@@ -23,8 +23,10 @@
if(document.all)
{
elem = window.event.srcElement;
- x=window.event.x;
- y=window.event.y;
+ x=window.event.clientX;
+ x+=orgApacheMyfacesPopupGetScrollingX();
+ y=window.event.clientY;
+ y+=orgApacheMyfacesPopupGetScrollingY();
}
else
{
@@ -58,4 +60,25 @@
var popupElem = document.getElementById(this.popupId);
popupElem.style.display="block";
orgApacheMyfacesPopupCurrentlyOpenedPopup = popupElem;
+}
+
+function orgApacheMyfacesPopupGetScrollingX() {
+ var x = 0;
+
+ if (document.body && document.body.scrollLeft && !isNaN(document.body.scrollLeft)) {
+ x = document.body.scrollLeft;
+ }
+
+ return x;
+}
+
+function orgApacheMyfacesPopupGetScrollingY() {
+
+ var y = 0;
+
+ if (document.body && document.body.scrollTop && !isNaN(document.body.scrollTop)) {
+ y = document.body.scrollTop;
+ }
+
+ return y;
}
1.10 +7 -3 incubator-myfaces/src/components/org/apache/myfaces/custom/popup/HtmlPopupRenderer.java
Index: HtmlPopupRenderer.java
===================================================================
RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/popup/HtmlPopupRenderer.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- HtmlPopupRenderer.java 17 Dec 2004 22:06:32 -0000 1.9
+++ HtmlPopupRenderer.java 20 Dec 2004 06:13:01 -0000 1.10
@@ -30,6 +30,9 @@
* @author Martin Marinschek (latest modification by $Author$)
* @version $Revision$ $Date$
* $Log$
+ * Revision 1.10 2004/12/20 06:13:01 mmarinschek
+ * killed bugs
+ *
* Revision 1.9 2004/12/17 22:06:32 grantsmith
* Jira MYFACES-57: Changed logging levels to DEBUG from INFO
*
@@ -141,7 +144,8 @@
Integer displayAtDistanceX, Integer displayAtDistanceY)
throws IOException
{
- AddResource.addJavaScriptToHeader(HtmlPopupRenderer.class, "JSPopup.js", true, context);
+ AddResource.addJavaScriptToHeader(
+ HtmlPopupRenderer.class, "JSPopup.js", false, context);
String popupId = (clientId+"Popup").replace(':','_').replaceAll("_",
"popupIdSeparator");
1.13 +6 -2 incubator-myfaces/src/myfaces/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java
Index: HtmlLabelRenderer.java
===================================================================
RCS file: /home/cvs/incubator-myfaces/src/myfaces/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- HtmlLabelRenderer.java 13 Oct 2004 11:51:00 -0000 1.12
+++ HtmlLabelRenderer.java 20 Dec 2004 06:13:02 -0000 1.13
@@ -36,6 +36,9 @@
* @author Martin Marinschek
* @version $Revision$ $Date$
* $Log$
+ * Revision 1.13 2004/12/20 06:13:02 mmarinschek
+ * killed bugs
+ *
* Revision 1.12 2004/10/13 11:51:00 matze
* renamed packages to org.apache
*
@@ -62,6 +65,7 @@
ResponseWriter writer = facesContext.getResponseWriter();
writer.startElement(HTML.LABEL_ELEM, uiComponent);
+ writer.writeAttribute(HTML.ID_ATTR, uiComponent.getClientId(facesContext),null);
HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.LABEL_PASSTHROUGH_ATTRIBUTES);
String forAttr = getFor(uiComponent);
1.4 +6 -0 incubator-myfaces/webapps/examples/web/jslistener.jsp
Index: jslistener.jsp
===================================================================
RCS file: /home/cvs/incubator-myfaces/webapps/examples/web/jslistener.jsp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- jslistener.jsp 19 Dec 2004 00:50:56 -0000 1.3
+++ jslistener.jsp 20 Dec 2004 06:13:02 -0000 1.4
@@ -75,6 +75,12 @@
<h:outputText value="Countryname - enter ISO Code in first input-field (e.g. AT)"/>
</h:panelGroup>
<h:panelGroup/>
+ <h:selectOneMenu id="selone_menu_colors" value="red" styleClass="selectOneMenu">
+ <f:selectItem itemValue="" itemLabel="#{example_messages['empty_selitem']}" />
+ <f:selectItems value="#{carconf.colors}" />
+ <x:jsValueChangeListener for="selone_menu_subcolors" expressionValue="($srcElem.options[$srcElem.selectedIndex].value=='color_black')?$destElem.style.display='inline':$destElem.style.display='none';"/>
+ </h:selectOneMenu>
+ <h:inputText id="selone_menu_subcolors"/>
</h:panelGrid>
</h:panelGroup>
</f:facet>
1.5 +2 -2 incubator-myfaces/webapps/examples/web/popup.jsp
Index: popup.jsp
===================================================================
RCS file: /home/cvs/incubator-myfaces/webapps/examples/web/popup.jsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- popup.jsp 23 Nov 2004 23:24:04 -0000 1.4
+++ popup.jsp 20 Dec 2004 06:13:02 -0000 1.5
@@ -56,13 +56,13 @@
<h:panelGroup id="body">
<h:panelGrid columns="1">
- <x:popup
+ <x:popup id="x"
styleClass="popup"
closePopupOnExitingElement="true"
closePopupOnExitingPopup="true"
displayAtDistanceX="10"
displayAtDistanceY="10" >
- <h:outputText value="This is the first textual text situation."/>
+ <h:outputText id="ox" value="This is the first textual text situation."/>
<f:facet name="popup">
<h:panelGroup>
<h:panelGrid columns="1" >