You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> on 2006/07/13 12:08:08 UTC

dataTable - first value change event doesnt update the model values

I am using a dataTable with changable Rows - a selectmenu where you can
choose values.

When the first event gets fired, the phase listener showed:

INFO: BEFORE RESTORE_VIEW(1)
13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
INFO: AFTER RESTORE_VIEW(1)
13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE APPLY_REQUEST_VALUES(2)
13.07.2006 11:47:58 my.examples.sortabletable.TableData rowsChanged
INFO: value changed event: 15
13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
INFO: AFTER APPLY_REQUEST_VALUES(2)
13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE PROCESS_VALIDATIONS(3)
13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
INFO: AFTER PROCESS_VALIDATIONS(3)
13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE RENDER_RESPONSE(6)
13.07.2006 11:47:58 my.examples.renderer.ext.HtmlDataScrollerRenderer
setVariables
INFO: Page Index: 1
13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
INFO: AFTER RENDER_RESPONSE(6)

I am missing:

INFO: BEFORE UPDATE_MODEL_VALUES(4)
13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
INFO: AFTER UPDATE_MODEL_VALUES(4)
13.07.2006 12:05:34 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE INVOKE_APPLICATION(5)
13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
INFO: AFTER INVOKE_APPLICATION(5)

When firing this event a second time:

13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE RESTORE_VIEW(1)
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER RESTORE_VIEW(1)
13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE APPLY_REQUEST_VALUES(2)
13.07.2006 11:50:12 my.examples.sortabletable.TableData rowsChanged
INFO: value changed event: 20
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER APPLY_REQUEST_VALUES(2)
13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE PROCESS_VALIDATIONS(3)
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER PROCESS_VALIDATIONS(3)
13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE UPDATE_MODEL_VALUES(4)
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER UPDATE_MODEL_VALUES(4)
13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE INVOKE_APPLICATION(5)
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER INVOKE_APPLICATION(5)
13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
INFO: BEFORE RENDER_RESPONSE(6)
13.07.2006 11:50:12 my.examples.renderer.ext.HtmlDataScrollerRenderer
setVariables
INFO: Page Index: 1
13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
INFO: AFTER RENDER_RESPONSE(6)

This is what i would exspect for the first event too - can anyone bring
some light to me why this happening, is this correct or not?
And if its correct, how can i manage it that the first event gets
handled like the second one?

kind regards

Torsten


Re: dataTable - first value change event doesnt update the model values, should be selectOneMenu

Posted by Mike Kienenberger <mk...@gmail.com>.
On 7/14/06, Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> wrote:
> Look at jira ( reopened the bug ) - it doesnt matter if immediate is set
> or not.

I'll take a look at the jira again.


> And according to the wiki - where you can read what immidate does, these
> phase are proccessed, only the validation time changes.
> And with immediate set,for all but this first event, phase 4 + 5 are
> there - than this would be a bug if you would be right, that these
> phases are skipped cause of this property set to true.

Yes, I wrote the wiki topic, so I'm familiar with it :)  It's true
that it changes the validation phase for the immediate component, but
it skips those phases for all non-immediate components.

Re: dataTable - first value change event doesnt update the model values, should be selectOneMenu

Posted by Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de>.
Look at jira ( reopened the bug ) - it doesnt matter if immediate is set
or not.

And according to the wiki - where you can read what immidate does, these
phase are proccessed, only the validation time changes.
And with immediate set,for all but this first event, phase 4 + 5 are
there - than this would be a bug if you would be right, that these
phases are skipped cause of this property set to true.

But thats another topic, you can set immediate to false, bug is still
there.

kind regards

Torsten

Am Donnerstag, den 13.07.2006, 19:41 -0400 schrieb Mike Kienenberger:
> I think this is being caused by your immediate setting.
> I'm not really certain how the immediate setting affects
> ValueChangeListener (haven't researched it), but I've seen reports by
> others that it does.
> 
> On 7/13/06, Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> wrote:
> > Its really a mysterium.
> >
> > Doing some more work on it i get some more data for this odd behaviour.
> > Thought it might be t:buffer or something else.
> >
> > But in the end, after removing and adding components in various
> > combinations, building the table and the row changing component from
> > scratch, the result looks like this:
> >
> > It all works fine like exspected, i can use buffer or datascroller if i
> > want, until i put another selectOneMenu on the page.
> > If i put them both on the site ( no matter if its rendered in a subview
> > or another panelGrid oder Group ) - the first event fired from the first
> > selectOneMenu misses the phases mentioned, if the second selectMenu  is
> > missing, it works.
> >
> > The second menu although works always like exspected.
> >
> > Some thoughts about that? Am i doing fatal mistakes here?
> >
> > kind regards
> >
> > Torsten
> >
> > PS: Source ( removed all things which arent needed to make this happen )
> >
> > Works:
> >
> > <html>
> > <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> > <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> > <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> > <%@include file="../inc/head.jsp"%>
> > <body>
> > <f:view>
> >         <h:form>
> >                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
> >                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
> >                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
> >                         immediate="true">
> >                         <f:selectItem itemValue="5" itemLabel="5" />
> >                         <f:selectItem itemValue="10" itemLabel="10" />
> >                         <f:selectItem itemValue="15" itemLabel="15" />
> >                         <f:selectItem itemValue="20" itemLabel="20" />
> >                 </h:selectOneMenu>
> >         </h:form>
> > </f:view>
> > <%@include file="../inc/page_footer.jsp"%>
> > </body>
> > </html>
> >
> > doesnt work:
> >
> > <html>
> > <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> > <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> > <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> > <%@include file="../inc/head.jsp"%>
> > <body>
> > <f:view>
> >         <h:form>
> >                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
> >                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
> >                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
> >                         immediate="true">
> >                         <f:selectItem itemValue="5" itemLabel="5" />
> >                         <f:selectItem itemValue="10" itemLabel="10" />
> >                         <f:selectItem itemValue="15" itemLabel="15" />
> >                         <f:selectItem itemValue="20" itemLabel="20" />
> >                 </h:selectOneMenu>
> >                 <h:selectOneMenu value="#{tableData.country}" onchange="submit()">
> >                         <f:valueChangeListener
> >                                 type="my.examples.sortabletable.CountryListener" />
> >                         <f:selectItems value="#{tableData.countryNames}" />
> >                 </h:selectOneMenu>
> >         </h:form>
> > </f:view>
> > <%@include file="../inc/page_footer.jsp"%>
> > </body>
> > </html>
> >
> >
> > Add a phase Listener and you will see the mentioned "bug" which i would
> > call it for the second example.
> >
> > Am Donnerstag, den 13.07.2006, 12:08 +0200 schrieb Torsten Krah:
> > > I am using a dataTable with changable Rows - a selectmenu where you can
> > > choose values.
> > >
> > > When the first event gets fired, the phase listener showed:
> > >
> > > INFO: BEFORE RESTORE_VIEW(1)
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER RESTORE_VIEW(1)
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE APPLY_REQUEST_VALUES(2)
> > > 13.07.2006 11:47:58 my.examples.sortabletable.TableData rowsChanged
> > > INFO: value changed event: 15
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER APPLY_REQUEST_VALUES(2)
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE PROCESS_VALIDATIONS(3)
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER PROCESS_VALIDATIONS(3)
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE RENDER_RESPONSE(6)
> > > 13.07.2006 11:47:58 my.examples.renderer.ext.HtmlDataScrollerRenderer
> > > setVariables
> > > INFO: Page Index: 1
> > > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER RENDER_RESPONSE(6)
> > >
> > > I am missing:
> > >
> > > INFO: BEFORE UPDATE_MODEL_VALUES(4)
> > > 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER UPDATE_MODEL_VALUES(4)
> > > 13.07.2006 12:05:34 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE INVOKE_APPLICATION(5)
> > > 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER INVOKE_APPLICATION(5)
> > >
> > > When firing this event a second time:
> > >
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE RESTORE_VIEW(1)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER RESTORE_VIEW(1)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE APPLY_REQUEST_VALUES(2)
> > > 13.07.2006 11:50:12 my.examples.sortabletable.TableData rowsChanged
> > > INFO: value changed event: 20
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER APPLY_REQUEST_VALUES(2)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE PROCESS_VALIDATIONS(3)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER PROCESS_VALIDATIONS(3)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE UPDATE_MODEL_VALUES(4)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER UPDATE_MODEL_VALUES(4)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE INVOKE_APPLICATION(5)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER INVOKE_APPLICATION(5)
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > > INFO: BEFORE RENDER_RESPONSE(6)
> > > 13.07.2006 11:50:12 my.examples.renderer.ext.HtmlDataScrollerRenderer
> > > setVariables
> > > INFO: Page Index: 1
> > > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > > INFO: AFTER RENDER_RESPONSE(6)
> > >
> > > This is what i would exspect for the first event too - can anyone bring
> > > some light to me why this happening, is this correct or not?
> > > And if its correct, how can i manage it that the first event gets
> > > handled like the second one?
> > >
> > > kind regards
> > >
> > > Torsten
> > >
> >
> >


Re: dataTable - first value change event doesnt update the model values, should be selectOneMenu

Posted by Mike Kienenberger <mk...@gmail.com>.
I think this is being caused by your immediate setting.
I'm not really certain how the immediate setting affects
ValueChangeListener (haven't researched it), but I've seen reports by
others that it does.

On 7/13/06, Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de> wrote:
> Its really a mysterium.
>
> Doing some more work on it i get some more data for this odd behaviour.
> Thought it might be t:buffer or something else.
>
> But in the end, after removing and adding components in various
> combinations, building the table and the row changing component from
> scratch, the result looks like this:
>
> It all works fine like exspected, i can use buffer or datascroller if i
> want, until i put another selectOneMenu on the page.
> If i put them both on the site ( no matter if its rendered in a subview
> or another panelGrid oder Group ) - the first event fired from the first
> selectOneMenu misses the phases mentioned, if the second selectMenu  is
> missing, it works.
>
> The second menu although works always like exspected.
>
> Some thoughts about that? Am i doing fatal mistakes here?
>
> kind regards
>
> Torsten
>
> PS: Source ( removed all things which arent needed to make this happen )
>
> Works:
>
> <html>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> <%@include file="../inc/head.jsp"%>
> <body>
> <f:view>
>         <h:form>
>                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
>                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
>                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
>                         immediate="true">
>                         <f:selectItem itemValue="5" itemLabel="5" />
>                         <f:selectItem itemValue="10" itemLabel="10" />
>                         <f:selectItem itemValue="15" itemLabel="15" />
>                         <f:selectItem itemValue="20" itemLabel="20" />
>                 </h:selectOneMenu>
>         </h:form>
> </f:view>
> <%@include file="../inc/page_footer.jsp"%>
> </body>
> </html>
>
> doesnt work:
>
> <html>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
> <%@include file="../inc/head.jsp"%>
> <body>
> <f:view>
>         <h:form>
>                 <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
>                 <h:selectOneMenu id="oneoption" value="#{tableData.rows}"
>                         onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
>                         immediate="true">
>                         <f:selectItem itemValue="5" itemLabel="5" />
>                         <f:selectItem itemValue="10" itemLabel="10" />
>                         <f:selectItem itemValue="15" itemLabel="15" />
>                         <f:selectItem itemValue="20" itemLabel="20" />
>                 </h:selectOneMenu>
>                 <h:selectOneMenu value="#{tableData.country}" onchange="submit()">
>                         <f:valueChangeListener
>                                 type="my.examples.sortabletable.CountryListener" />
>                         <f:selectItems value="#{tableData.countryNames}" />
>                 </h:selectOneMenu>
>         </h:form>
> </f:view>
> <%@include file="../inc/page_footer.jsp"%>
> </body>
> </html>
>
>
> Add a phase Listener and you will see the mentioned "bug" which i would
> call it for the second example.
>
> Am Donnerstag, den 13.07.2006, 12:08 +0200 schrieb Torsten Krah:
> > I am using a dataTable with changable Rows - a selectmenu where you can
> > choose values.
> >
> > When the first event gets fired, the phase listener showed:
> >
> > INFO: BEFORE RESTORE_VIEW(1)
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER RESTORE_VIEW(1)
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE APPLY_REQUEST_VALUES(2)
> > 13.07.2006 11:47:58 my.examples.sortabletable.TableData rowsChanged
> > INFO: value changed event: 15
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER APPLY_REQUEST_VALUES(2)
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE PROCESS_VALIDATIONS(3)
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER PROCESS_VALIDATIONS(3)
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE RENDER_RESPONSE(6)
> > 13.07.2006 11:47:58 my.examples.renderer.ext.HtmlDataScrollerRenderer
> > setVariables
> > INFO: Page Index: 1
> > 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER RENDER_RESPONSE(6)
> >
> > I am missing:
> >
> > INFO: BEFORE UPDATE_MODEL_VALUES(4)
> > 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER UPDATE_MODEL_VALUES(4)
> > 13.07.2006 12:05:34 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE INVOKE_APPLICATION(5)
> > 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER INVOKE_APPLICATION(5)
> >
> > When firing this event a second time:
> >
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE RESTORE_VIEW(1)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER RESTORE_VIEW(1)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE APPLY_REQUEST_VALUES(2)
> > 13.07.2006 11:50:12 my.examples.sortabletable.TableData rowsChanged
> > INFO: value changed event: 20
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER APPLY_REQUEST_VALUES(2)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE PROCESS_VALIDATIONS(3)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER PROCESS_VALIDATIONS(3)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE UPDATE_MODEL_VALUES(4)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER UPDATE_MODEL_VALUES(4)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE INVOKE_APPLICATION(5)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER INVOKE_APPLICATION(5)
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> > INFO: BEFORE RENDER_RESPONSE(6)
> > 13.07.2006 11:50:12 my.examples.renderer.ext.HtmlDataScrollerRenderer
> > setVariables
> > INFO: Page Index: 1
> > 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> > INFO: AFTER RENDER_RESPONSE(6)
> >
> > This is what i would exspect for the first event too - can anyone bring
> > some light to me why this happening, is this correct or not?
> > And if its correct, how can i manage it that the first event gets
> > handled like the second one?
> >
> > kind regards
> >
> > Torsten
> >
>
>

Re: dataTable - first value change event doesnt update the model values, should be selectOneMenu

Posted by Torsten Krah <tk...@fachschaft.imn.htwk-leipzig.de>.
Its really a mysterium.

Doing some more work on it i get some more data for this odd behaviour.
Thought it might be t:buffer or something else.

But in the end, after removing and adding components in various
combinations, building the table and the row changing component from
scratch, the result looks like this:

It all works fine like exspected, i can use buffer or datascroller if i
want, until i put another selectOneMenu on the page.
If i put them both on the site ( no matter if its rendered in a subview
or another panelGrid oder Group ) - the first event fired from the first
selectOneMenu misses the phases mentioned, if the second selectMenu  is
missing, it works.

The second menu although works always like exspected.

Some thoughts about that? Am i doing fatal mistakes here?

kind regards

Torsten

PS: Source ( removed all things which arent needed to make this happen )

Works:

<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@include file="../inc/head.jsp"%>
<body>
<f:view>
	<h:form>
		<f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
		<h:selectOneMenu id="oneoption" value="#{tableData.rows}"
			onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
			immediate="true">
			<f:selectItem itemValue="5" itemLabel="5" />
			<f:selectItem itemValue="10" itemLabel="10" />
			<f:selectItem itemValue="15" itemLabel="15" />
			<f:selectItem itemValue="20" itemLabel="20" />
		</h:selectOneMenu>
	</h:form>
</f:view>
<%@include file="../inc/page_footer.jsp"%>
</body>
</html>

doesnt work:

<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@include file="../inc/head.jsp"%>
<body>
<f:view>
	<h:form>
		<f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
		<h:selectOneMenu id="oneoption" value="#{tableData.rows}"
			onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
			immediate="true">
			<f:selectItem itemValue="5" itemLabel="5" />
			<f:selectItem itemValue="10" itemLabel="10" />
			<f:selectItem itemValue="15" itemLabel="15" />
			<f:selectItem itemValue="20" itemLabel="20" />
		</h:selectOneMenu>
		<h:selectOneMenu value="#{tableData.country}" onchange="submit()">
			<f:valueChangeListener
				type="my.examples.sortabletable.CountryListener" />
			<f:selectItems value="#{tableData.countryNames}" />
		</h:selectOneMenu>
	</h:form>
</f:view>
<%@include file="../inc/page_footer.jsp"%>
</body>
</html>


Add a phase Listener and you will see the mentioned "bug" which i would
call it for the second example.

Am Donnerstag, den 13.07.2006, 12:08 +0200 schrieb Torsten Krah:
> I am using a dataTable with changable Rows - a selectmenu where you can
> choose values.
> 
> When the first event gets fired, the phase listener showed:
> 
> INFO: BEFORE RESTORE_VIEW(1)
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER RESTORE_VIEW(1)
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE APPLY_REQUEST_VALUES(2)
> 13.07.2006 11:47:58 my.examples.sortabletable.TableData rowsChanged
> INFO: value changed event: 15
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER APPLY_REQUEST_VALUES(2)
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE PROCESS_VALIDATIONS(3)
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER PROCESS_VALIDATIONS(3)
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE RENDER_RESPONSE(6)
> 13.07.2006 11:47:58 my.examples.renderer.ext.HtmlDataScrollerRenderer
> setVariables
> INFO: Page Index: 1
> 13.07.2006 11:47:58 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER RENDER_RESPONSE(6)
> 
> I am missing:
> 
> INFO: BEFORE UPDATE_MODEL_VALUES(4)
> 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER UPDATE_MODEL_VALUES(4)
> 13.07.2006 12:05:34 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE INVOKE_APPLICATION(5)
> 13.07.2006 12:05:34 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER INVOKE_APPLICATION(5)
> 
> When firing this event a second time:
> 
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE RESTORE_VIEW(1)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER RESTORE_VIEW(1)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE APPLY_REQUEST_VALUES(2)
> 13.07.2006 11:50:12 my.examples.sortabletable.TableData rowsChanged
> INFO: value changed event: 20
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER APPLY_REQUEST_VALUES(2)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE PROCESS_VALIDATIONS(3)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER PROCESS_VALIDATIONS(3)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE UPDATE_MODEL_VALUES(4)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER UPDATE_MODEL_VALUES(4)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE INVOKE_APPLICATION(5)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER INVOKE_APPLICATION(5)
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker beforePhase
> INFO: BEFORE RENDER_RESPONSE(6)
> 13.07.2006 11:50:12 my.examples.renderer.ext.HtmlDataScrollerRenderer
> setVariables
> INFO: Page Index: 1
> 13.07.2006 11:50:12 my.examples.util.PhaseTracker afterPhase
> INFO: AFTER RENDER_RESPONSE(6)
> 
> This is what i would exspect for the first event too - can anyone bring
> some light to me why this happening, is this correct or not?
> And if its correct, how can i manage it that the first event gets
> handled like the second one?
> 
> kind regards
> 
> Torsten
>