On 4/25/07, Martin Marinschek <[EMAIL PROTECTED]> wrote:
The problem is that the JSF spec allows wrapping a FacesEvent without
providing access to the original event (by calling getCause() or
something similar).

If we had this ability, we could check for a type ActionEvent, so your
workaround has been checking for the phase of the queued event, which
is a hack at best.

What workaround are you talking about?  Subform doesn't
care about ActionEvent, etc. - all events are equal in its eyes.
It also doesn't care about the phase the queued event will be
delivered -  it cares *what phase it got queued in*.

-- Adam



regards,

Martin

On 4/24/07, Adam Winer <[EMAIL PROTECTED]> wrote:
> It's a known limitation of how subforms are implemented:
> they look for FacesEvents queued during processDecodes()
> to see if that subtree should be further processed.  However,
> autoSubmit components don't queue a FacesEvent until
> ValueChangeEvent, which happens later in the cycle.
>
> It should get fixed, though.
>
> -- Adam
>
>
> On 4/24/07, D. Cardon <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I've done some more testing with the subform functionality in Trinidad and
> > think I've isolated a bug with a very simple test case.  To reproduce this
> > functionality, a few modifications need to be made to the blank project 
that is
> > found in the trinidad repository.  Here's what to do:
> >
> > - Modify the index.jspx entry for the tr:inputText, replacing it with:
> >
> > <tr:inputText label="Your name" id="input1" 
value="#{helloWorldBacking.name}"
> >   autoSubmit="true" valueChangeListener="#{helloWorldBacking.changeMethod}" 
/>
> >
> > Then, implement the changeMethod in the backing bean:
> >
> >   public void changeMethod( ValueChangeEvent event )
> >   {
> >           System.out.println( "Change method called!" );
> >   }
> >
> > Now, test the page by entering a value into the test field and then tabbing
> > away from it.  This will fire the field to be submitted.  In your console, 
you
> > should see the "Change method called!" message appearing--this behaves as
> > expected.
> >
> > To reproduce the invalid behavior with a subform, alter index.jspx 
slightly, by
> > wrapping the inputText (or its containing component) in a tr:subform tag.
> > Reloading the page and performing the test again, you should no longer see 
the
> > "Change method called!" message.  This behavior appears to be the same for 
any
> > component set to autoSubmit.
> >
> > After digging into the code somewhat, it appears that the subform is unaware
> > that the inputText component has changed and so it does not run its children
> > through the necessary phases.
> >
> > The root of this symptom actually relates to a lot of other problems with 
the
> > subform tag.  For example, using the subform to isolate regions for 
validation
> > does not work at all due to this issue, because validations are not 
processed
> > and model values are not updated for the components in the subform.
> >
> > Since I'm a new Trinidad user, I don't really know how this should be 
reported.
> >  I did sign up for JIRA, but I'm not sure what the severity of the issue 
should
> > be.  Also, it would be reassuring if someone else can reproduce this, that
> > would verify that it's not just some problem with my machine / setup.
> >
> > Thanks,
> >
> > --David
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
>


--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to