You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by jw...@apache.org on 2006/09/22 23:31:55 UTC
svn commit: r449124 - in
/incubator/adffaces/trunk/trinidad/trinidad-impl/src:
main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/
test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/
Author: jwaldman
Date: Fri Sep 22 16:31:54 2006
New Revision: 449124
URL: http://svn.apache.org/viewvc?view=rev&rev=449124
Log:
ADFFACES-167 Add 'autoSubmit' support for basic input components on PDAs. Committed for Piyush Hari.
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectBooleanRadioRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneChoiceRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-minimalPPC-golden.xml
incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-simple-minimalPPC-golden.xml
incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-minimalPPC-golden.xml
incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-simple-minimalPPC-golden.xml
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java Fri Sep 22 16:31:54 2006
@@ -1,12 +1,12 @@
/*
* Copyright 2000-2006 The Apache Software Foundation.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -38,7 +38,7 @@
import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidad.context.Agent;
-
+import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.renderkit.FormData;
import org.apache.myfaces.trinidadinternal.renderkit.PartialPageContext;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
@@ -64,9 +64,9 @@
public void decode(FacesContext context,
UIComponent component)
{
- Map<String, String> paramMap =
+ Map<String, String> paramMap =
context.getExternalContext().getRequestParameterMap();
-
+
Object formName = paramMap.get(CoreResponseStateManager.FORM_FIELD_NAME);
boolean submitted = false;
@@ -272,6 +272,26 @@
//a partial page submission.
if (isPIE && pprContext == null)
{
+ //PH: Add hidden elements in the form for enabling PPR on IE Mobile.
+
+ Object domLevel = arc.getAgent().getCapabilities().get(
+ TrinidadAgent.CAP_DOM);
+
+ if(
+ domLevel == null ||
+ domLevel == TrinidadAgent.DOM_CAP_NONE ||
+ domLevel == TrinidadAgent.DOM_CAP_FORM)
+ {
+ FormData formData = arc.getFormData();
+ if(formData != null)
+ {
+ formData.addNeededValue(XhtmlConstants.EVENT_PARAM);
+ formData.addNeededValue(XhtmlConstants.SOURCE_PARAM);
+ formData.addNeededValue(XhtmlConstants.PARTIAL_TARGETS_PARAM);
+ formData.addNeededValue(XhtmlConstants.PARTIAL_PARAM);
+ }
+ }
+
_renderNeededValues(context, arc);
}
@@ -517,7 +537,7 @@
writer.writeText(jsID, null);
// get the form validators
- List<CoreFormData.ConvertValidate> validatorInfoList =
+ List<CoreFormData.ConvertValidate> validatorInfoList =
fData.getFormValidatorsInfo(false);
if (validatorInfoList == null)
@@ -607,7 +627,7 @@
Integer globalFormatIndex = fData.addGlobalMessageFormat(arc);
writer.writeText("]],", null);
- writer.writeText(globalFormatIndex, null);
+ writer.writeText(globalFormatIndex, null);
writer.writeText(");if(fl.length>0){_validationAlert('", null);
writer.writeText(XhtmlUtils.escapeJS(
arc.getTranslatedString("af_form.SUBMIT_ERRORS")),
@@ -671,7 +691,7 @@
writer.writeText("};", null);
- }
+ }
}
//
@@ -726,7 +746,7 @@
ResponseWriter writer = context.getResponseWriter();
List<String> subforms =
SubformRenderer.getSubformList(context, false, false);
-
+
writer.writeText("var ", null);
writer.writeText(jsID, null);
writer.writeText("_SF={", null);
@@ -734,7 +754,7 @@
{
List<String> defaultSubforms =
SubformRenderer.getSubformList(context, true, false);
-
+
Iterator<String> ids = subforms.iterator();
while (ids.hasNext())
{
@@ -983,7 +1003,7 @@
/**
* Render each "needed" FormValue that hasn't already
- * been rendered. Called by FormRenderer.postrender().
+ * been rendered. Called by FormRenderer.postrender().
* @see FormRenderer#encodeEnd(FacesContext,RenderingContext, UIComponent, FacesBean)
*/
static private void _renderNeededValues(
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectBooleanRadioRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectBooleanRadioRenderer.java?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectBooleanRadioRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectBooleanRadioRenderer.java Fri Sep 22 16:31:54 2006
@@ -23,6 +23,7 @@
import org.apache.myfaces.trinidad.bean.FacesBean;
import org.apache.myfaces.trinidad.bean.PropertyKey;
import org.apache.myfaces.trinidad.component.core.input.CoreSelectBooleanRadio;
+import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
/**
@@ -164,9 +165,16 @@
FacesBean bean) throws IOException
{
ResponseWriter rw = context.getResponseWriter();
- if ( isAutoSubmit(bean))
- rw.writeAttribute("onclick", getAutoSubmitScript(bean) , null);
-
+
+ // PH: This condition is needed to set onclick on radio rather than on
+ // enclosing span in an IE Mobile and PIE since these browsers don't have
+ // onclick support on a span.
+
+ if(!isPDA(RenderingContext.getCurrentInstance()))
+ {
+ if ( isAutoSubmit(bean))
+ rw.writeAttribute("onclick", getAutoSubmitScript(bean) , null);
+ }
rw.writeAttribute("ondblclick", getOndblclick(bean), "ondblclick");
rw.writeAttribute("onkeydown", getOnkeydown(bean), "onkeydown");
rw.writeAttribute("onkeyup", getOnkeyup(bean), "onkeyup");
@@ -184,6 +192,16 @@
FacesBean bean) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
+
+ //PH: this condition is needed to set onclick on radio rather than on
+ // enclosing span in an IE Mobile and PIE since these browsers don't have
+ // onclick support on a span.
+ if(isPDA(RenderingContext.getCurrentInstance()))
+ {
+ if ( isAutoSubmit(bean))
+ writer.writeAttribute("onclick", getAutoSubmitScript(bean) , null);
+ }
+
writer.writeAttribute("onclick", getOnclick(bean), "onclick");
writer.writeAttribute("onblur", getOnblur(bean), "onblur");
writer.writeAttribute("onfocus", getOnfocus(bean), "onfocus");
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneChoiceRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneChoiceRenderer.java?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneChoiceRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneChoiceRenderer.java Fri Sep 22 16:31:54 2006
@@ -31,6 +31,7 @@
import org.apache.myfaces.trinidad.component.core.input.CoreSelectOneChoice;
+import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
import org.apache.myfaces.trinidadinternal.renderkit.RenderingContext;
/**
@@ -134,7 +135,11 @@
{
RenderingContext arc = RenderingContext.getCurrentInstance();
String onclick = super.getOnclick(bean);
- if (isIE(arc) && isAutoSubmit(bean))
+
+ //PH: onclick should be included only for desktop IE since PIE and
+ //IE mobile do not support onclick on a select component
+ if (isIE(arc) && isDesktop(arc)
+ && isAutoSubmit(bean) )
{
String auto = getAutoSubmitScript(arc, bean);
// On IE, if we autosubmit,
@@ -149,11 +154,10 @@
auto = _IE_ACTION_HANDLER_PREFIX + auto;
onclick = XhtmlUtils.getChainedJS(onclick, auto, true);
}
-
+
return onclick;
}
-
-
+
/**
* In Internet Explorer, handle autosubmit.
*/
@@ -163,14 +167,17 @@
{
RenderingContext arc = RenderingContext.getCurrentInstance();
String onblur = super.getOnblur(bean);
- if (isIE(arc) && isAutoSubmit(bean))
+
+ //PH: onblur should be included only for desktop IE since PIE and
+ //IE mobile do not support onblur on a select component
+ if (isIE(arc) && isDesktop(arc) && isAutoSubmit(bean) )
{
String auto = getAutoSubmitScript(arc, bean);
// See getOnclick()
auto = _IE_ACTION_HANDLER_PREFIX + auto;
onblur = XhtmlUtils.getChainedJS(onblur, auto, true);
}
-
+
return onblur;
}
@@ -190,8 +197,14 @@
// Prepend the autosubmit script
if (isAutoSubmit(bean))
{
- // See getOnclick() for the explanation of the IE code.
- if (isIE(arc))
+ // See getOnclick() for the explanation of the IE code.
+ // PH: The weird behaviour of an IE SELECT element as mentioned in
+ // the getOnclick method above is not seen on PIE and IE Mobile.
+ // Therefore, _CHOICE_CHANGE_TRACKER is not needed.
+ // Also, since PIE and IE Mobile do not support an 'onclick' javascript
+ // handler on a SELECT element,
+ // autoSubmit script is added in the 'onchange' javascript handler.
+ if (isIE(arc) && isDesktop(arc) )
auto = _CHOICE_CHANGE_TRACKER;
else
auto = getAutoSubmitScript(arc, bean);
@@ -205,8 +218,8 @@
auto = _SYNC_FUNC;
else
auto = (_SYNC_FUNC + ";") + auto;
- }
-
+ }
+
// And chain everything together
return XhtmlUtils.getChainedJS(onchange, auto, true);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-minimalPPC-golden.xml?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-minimalPPC-golden.xml Fri Sep 22 16:31:54 2006
@@ -133,7 +133,6 @@
<span
class="af_selectBooleanRadio_content"
id="mainId__xc_r"
- onclick="_radioSet_adfspu('formId',1,'mainId','mainId');return true;"
>
<script
@@ -143,6 +142,7 @@
<input
id="mainId"
name="groupTest"
+ onclick="_radioSet_adfspu('formId',1,'mainId','mainId');return true;"
type="radio"
value="mainId"
>
@@ -192,12 +192,12 @@
<span
class="af_selectBooleanRadio_content"
id="mainId__xc_r"
- onclick="_radioSet_adfspu('formId',0,'mainId','mainId');return true;"
>
<input
id="mainId"
name="groupTest"
+ onclick="_radioSet_adfspu('formId',0,'mainId','mainId');return true;"
type="radio"
value="mainId"
>
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-simple-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-simple-minimalPPC-golden.xml?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-simple-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectBooleanRadio-simple-minimalPPC-golden.xml Fri Sep 22 16:31:54 2006
@@ -48,7 +48,6 @@
<span
class="af_selectBooleanRadio_content"
- onclick="_radioSet_adfspu('formId',1,'mainId','mainId');return true;"
>
<script
@@ -58,6 +57,7 @@
<input
id="mainId"
name="groupTest"
+ onclick="_radioSet_adfspu('formId',1,'mainId','mainId');return true;"
type="radio"
value="mainId"
>
@@ -74,12 +74,12 @@
<span
class="af_selectBooleanRadio_content"
- onclick="_radioSet_adfspu('formId',0,'mainId','mainId');return true;"
>
<input
id="mainId"
name="groupTest"
+ onclick="_radioSet_adfspu('formId',0,'mainId','mainId');return true;"
type="radio"
value="mainId"
>
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-minimalPPC-golden.xml?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-minimalPPC-golden.xml Fri Sep 22 16:31:54 2006
@@ -361,9 +361,7 @@
class="af_selectOneChoice_content"
id="mainId"
name="mainId"
- onblur="if(!_pprChoiceAction(event))return true;_adfspu('formId',1,'mainId','mainId');return true;"
- onchange="return _pprChoiceChangeEvent(event);"
- onclick="if(!_pprChoiceAction(event))return true;_adfspu('formId',1,'mainId','mainId');return true;"
+ onchange="_adfspu('formId',1,'mainId','mainId');return true;"
>
<option
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-simple-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-simple-minimalPPC-golden.xml?view=diff&rev=449124&r1=449123&r2=449124
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-simple-minimalPPC-golden.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/selectOneChoice-simple-minimalPPC-golden.xml Fri Sep 22 16:31:54 2006
@@ -177,9 +177,7 @@
class="af_selectOneChoice_content"
id="mainId"
name="mainId"
- onblur="if(!_pprChoiceAction(event))return true;_adfspu('formId',1,'mainId','mainId');return true;"
- onchange="return _pprChoiceChangeEvent(event);"
- onclick="if(!_pprChoiceAction(event))return true;_adfspu('formId',1,'mainId','mainId');return true;"
+ onchange="_adfspu('formId',1,'mainId','mainId');return true;"
>
<option