You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Jeff Bischoff <jb...@klkurz.com> on 2006/10/24 16:12:23 UTC
Re: [old thread] Re: Screen refresh
I think that the need for such a wiki is obviated by the new Tomahawk
tag (in sandbox) submitOnEvent.
Also, there were too many differences in autoscrolling behaviour between
different MyFaces/Tomahawk versions (including an outstanding
compatibility bug).
Regards,
Jeff Bischoff
Kenneth L Kurz & Associates, Inc.
Jeff Bischoff wrote:
> I can't provide details on getting this to work on Core 1.1.4, because
> auto scroll isn't working in the first place. The latest Tomahawk breaks
> autoscrolling on Core 1.1.4. I have opened a JIRA for this [1].
>
> Once this bug is fixed, I will make a wiki page covering autoscrolling
> for input components that covers both 1.1.3 and 1.1.4.
>
> [1] http://issues.apache.org/jira/browse/TOMAHAWK-713
>
> Regards,
>
> Jeff Bischoff
> Kenneth L Kurz & Associates
>
> Jeff Bischoff wrote:
>> Okay, thanks guys. Martin, that clears up a lot. Mike, you bring up a
>> very good point about the changes to javascript function names. When I
>> make the Wiki page for this, I would like to make sure I provide the
>> correct function names for each of the recent major versions.
>>
>> Unfortunately, at the moment Tomahawk 1.1.5 nightly kills my
>> application, so it's hard for me to test against that. I would like to
>> help with that bug first, but the wiki page for this is definately on
>> my TODO list.
>>
>> It cannot only be users that take, nor only developers that give. ;)
>>
>> Regards,
>>
>> Jeff Bischoff
>> Kenneth L Kurz & Associates, Inc.
>>
>> Martin Marinschek wrote:
>>> Ok, so what does clear...Form(); do?
>>>
>>> Imagine you click on a link in JSF - what happens is that a hidden
>>> field is set, one for the link itself, and one for every parameter of
>>> the link.
>>>
>>> If you cancel the loading of the next page, these parameters are
>>> still set.
>>>
>>> Now if you click on another link, you still have the old parameters
>>> set, along with the new parameters for the new link, that makes
>>> already two links which will fire action events.
>>>
>>> This is where the clear...Form(); method comes in handy; it cleans out
>>> all these parameters, and the problem is solved.
>>>
>>> regards,
>>>
>>> Martin
>>>
>>>
>>>
>>> On 9/19/06, Mike Kienenberger <mk...@gmail.com> wrote:
>>>> Unfortunatley, I don't know the answer to those questions.
>>>>
>>>> It's also possible that what I had no longer works with later versions
>>>> of MyFaces. I know that some effort was recently put in to make the
>>>> clear functions compatible with JSF RI in the latest MyFaces
>>>> snapshots. It's probable that this should make life easier -- I'm
>>>> guessing both JSF implementations now have matching javascript names.
>>>>
>>>> On 9/19/06, Jeff Bischoff <jb...@klkurz.com> wrote:
>>>> > I wouldn't mind at all, but first I would like to understand the
>>>> code a
>>>> > little better. In particular, this line in my javascript:
>>>> >
>>>> > clear_MainForm();
>>>> >
>>>> > It calls the javascript function generated by MyFaces. I copied it
>>>> from
>>>> > your code, and I think you included it to emulate the behaviour of
>>>> > commandButtons? But what exactly does this function call
>>>> accomplish? I
>>>> > see that it resets the hidden field and the datatable (if present)
>>>> > scroll. Will I want to keep this line as part of my documented
>>>> solution,
>>>> > or make it an additional optional step they can take, that is
>>>> unrelated
>>>> > to the scrolling issue?
>>>> >
>>>> > Regards,
>>>> >
>>>> > Jeff Bischoff
>>>> > Kenneth L Kurz & Associates, Inc.
>>>> >
>>>> > Mike Kienenberger wrote:
>>>> > > On 9/15/06, Jeff Bischoff <jb...@klkurz.com> wrote:
>>>> > >> (A response to the message by Mike Kienenberger 2005-11-07 16:56)
>>>> > >>
>>>> > >> Have you had any luck with your scrolling ideas, in the time
>>>> since this
>>>> > >> thread? I'm sure that by now you must have figured something
>>>> out to
>>>> > >> accomplish what you were trying to do.
>>>> > >
>>>> > > You'd like to think that, but in fact, I never made any progress.
>>>> > > The project I was going to use it on was postponed.
>>>> > >
>>>> > >
>>>> > >> In any case, I made a simple javascript function based off what
>>>> you
>>>> > >> provided in this thread. It's working great for my needs!
>>>> Thanks for
>>>> > >> your ideas, which helped me get started.
>>>> > >
>>>> > > Great! Do you mind documenting it on a MyFaces wiki page
>>>> somewhere?
>>>> > > Perhaps we can figure out a more generic way to do this down the
>>>> road
>>>> > > -- maybe a scrollTo component tag.
>>>> > >
>>>> > >
>>>> > >> The archive for this mailing list really is priceless.
>>>> > >>
>>>> > >> <script language="javascript">
>>>> > >> function setScrollingAndSubmit(){
>>>> > >> clear_MainForm();
>>>> > >>
>>>> > >>
>>>> document.forms['MainForm'].elements['autoScroll'].value=getScrolling();
>>>> > >> document.forms['MainForm'].submit();
>>>> > >> }
>>>> > >> </script>
>>>> > >>
>>>> > >> My form is named "MainForm", and never changes so its
>>>> hardcoding is not
>>>> > >> a problem for me.
>>>> > >>
>>>> > >> Regards,
>>>> > >>
>>>> > >> Jeff Bischoff
>>>> > >> Kenneth L Kurz & Associates, Inc.
>>>> > >>
>>>> > >> On 11/07/05, Mike Kienenberger <mk...@...> wrote:
>>>> > >> >Stefan,
>>>> > >> >
>>>> > >> >Did you make any progress on this?
>>>> > >> >
>>>> > >> >I was looking at it again today, and it seemed to me that I
>>>> could use
>>>> > >> >the following code to accomplish this kind of effect. My
>>>> thinking was
>>>> > >> >that calling getScrolling() from the onchange of the <select>
>>>> would
>>>> > >> >use the coordinates of the <select> element instead of the
>>>> submitting
>>>> > >> >button.
>>>> > >> >
>>>> > >> >Unfortunately, it doesn't seem to work.
>>>> > >> >
>>>> > >> >=================================================
>>>> > >> >
>>>> > >> > <h:selectOneMenu
>>>> > >> > onchange="pulldownChanged()"
>>>> > >> > value="#{dataModel.itemValue}">
>>>> > >> > <f:selectItems value="#{page.items}"/>
>>>> > >> > </h:selectOneMenu>
>>>> > >> >
>>>> > >> > <script language="javascript">
>>>> > >> > // <![CDATA[
>>>> > >> > function pulldownChanged(){
>>>> > >> > clear_form();
>>>> > >> >
>>>> > >>
>>>> >document.forms['form'].elements['autoScroll'].value=getScrolling();
>>>> > >> >
>>>> > >> >document.getElementById("form:nonclearingRefreshButton").click();
>>>> > >> > }
>>>> > >> > // ]]>
>>>> > >> > </script>
>>>> > >> >
>>>> > >> > <!-- non-clearing refresh button; JSF will see it as
>>>> > >> refreshButton -->
>>>> > >> > <f:verbatim>
>>>> > >> > <input type="submit" style="display: none;"
>>>> value="Submit"
>>>> > >> name="form:refreshButton" id="form:nonclearingRefreshButton"/>
>>>> > >> > </f:verbatim>
>>>> > >> >
>>>> > >> > <!-- never used directly; refreshButton exists so
>>>> verbatim html
>>>> > >> above can imitate it -->
>>>> > >> > <h:commandButton id="refreshButton"
>>>> > >> > value="Submit" action="#{page.refresh}"
>>>> > >> > style="display:none">
>>>> > >> > </h:commandButton>
>>>> > >> >
>>>> > >> On 10/27/05, Mike Kienenberger <mk...@...> wrote:
>>>> > >> > Stefan,
>>>> > >> >
>>>> > >> > You are correct in that the current implementation only
>>>> scrolls to a
>>>> > >> > link or a button. I was proposing that you take advantage
>>>> of the
>>>> > >> > infrastructure that was there to expand to to scroll to other
>>>> > >> > components.
>>>> > >> >
>>>> > >> > I'm not sure exactly how it would work, but I'd think in the
>>>> short
>>>> > >> > term, it would be something like this.
>>>> > >> >
>>>> > >> > onclick="setScrollToComponentAndSubmit()"
>>>> > >> >
>>>> > >> > You may have to manually create a button to submit it. This
>>>> is a
>>>> > >> > similar button I use to trigger special javascript submit code.
>>>> > >> >
>>>> > >> > <f:verbatim>
>>>> > >> > <input type="submit" style="display: none;"
>>>> > >> >
>>>> > >>
>>>> onclick="document.forms['form'].elements['autoScroll'].value=getScrolling();"
>>>>
>>>> > >>
>>>> > >> > value="Submit" name="form:refreshButton"
>>>> > >> > id="form:nonclearingRefreshButton"/>
>>>> > >> > </f:verbatim>
>>>> > >> >
>>>> > >> > If you're looking to contribute a myfaces component to
>>>> handle all of
>>>> > >> > this automatically, I can only point you in the right
>>>> direction (the
>>>> > >> > autoScroll field and the getScrolling() function). You'll
>>>> have to
>>>> > >> > figure out the details as I don't have the skillset
>>>> (javascript) to
>>>> > >> > help you. :)
>>>> > >> > But there's already something in place in MyFaces. It's
>>>> just a matter
>>>> > >> > of converting it to your needs.
>>>> > >> >
>>>> > >> > On 10/27/05, stefan.maric@... <st...@...> wrote:
>>>> > >> > >
>>>> > >> > > Mike
>>>> > >> > >
>>>> > >> > > <context-param>
>>>> > >> > >
>>>> <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
>>>> > >> > > <param-value>true</param-value>
>>>> > >> > > <description>
>>>> > >> > > If true, a javascript function will be
>>>> rendered that is
>>>> > >> > > able to restore the
>>>> > >> > > former vertical scroll on every request.
>>>> Convenient
>>>> > >> > > feature if you have pages
>>>> > >> > > with long lists and you do not want the
>>>> browser page to
>>>> > >> > > always jump to the top
>>>> > >> > > if you trigger a link or button action that
>>>> stays on
>>>> > >> the same
>>>> > >> > > page.
>>>> > >> > > Default: "false"
>>>> > >> > > </description>
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > </context-param>
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > Have already got that set in my web.xml
>>>> > >> > >
>>>> > >> > > Guess it's not operating because I'm NOT using a link or
>>>> button
>>>> > >> action – see
>>>> > >> > > jsp snippet below
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > Simon
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > Do you envisage it operating something like this
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > <h:selectBooleanCheckbox id="selectBusinessType"
>>>> > >> > >
>>>> > >> > > value="#{node.selected}" immediate="true"
>>>> > >> > >
>>>> > >> > > valueChangeListener="#{demo.processValueChange}"
>>>> > >> > >
>>>> > >> > > onclick="submit()" >
>>>> > >> > >
>>>> > >> > > <t:focus componentId="id_of_component_to_focus"/>
>>>> > >> > >
>>>> > >> > > <h:selectBooleanCheckbox >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > If NOT, then how – as I can see it being required at
>>>> several places
>>>> > >> on a
>>>> > >> > > form
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > Stefan Maric | IT & Professional Services | BT Global
>>>> Services
>>>> > >> > >
>>>> > >> > > E: stefan.maric@... | www.bt.com/globalservices
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > This electronic message contains information from British
>>>> > >> Telecommunications
>>>> > >> > > plc, which may be privileged
>>>> > >> > >
>>>> > >> > > or confidential. The information is intended for use only
>>>> by the
>>>> > >> > > individual(s) or entity named above. If you
>>>> > >> > >
>>>> > >> > > are not the intended recipient, be aware that any disclosure,
>>>> > >> copying,
>>>> > >> > > distribution or use of the contents of
>>>> > >> > >
>>>> > >> > > this information is strictly prohibited. If you have
>>>> received this
>>>> > >> > > electronic message in error, please notify
>>>> > >> > >
>>>> > >> > > me by telephone or email (to the number or email address
>>>> above)
>>>> > >> immediately.
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > Activity and use of the British Telecommunications plc e-mail
>>>> > >> system is
>>>> > >> > > monitored to secure its effective
>>>> > >> > >
>>>> > >> > > operation and for other lawful business purposes.
>>>> Communications
>>>> > >> using this
>>>> > >> > > system will also be monitored
>>>> > >> > >
>>>> > >> > > and may be recorded to secure effective operation and for
>>>> other
>>>> > >> lawful
>>>> > >> > > business purposes.
>>>> > >> > >
>>>> > >> > >
>>>> > >> > >
>>>> > >> > > British Telecommunications plc. Registered office: 81
>>>> Newgate
>>>> > >> Street London
>>>> > >> > > EC1A 7AJ Registered in
>>>> > >> > >
>>>> > >> > > England no: 1800000
>>>> > >> > >
>>>> > >> > >
>>>> > >> >
>>>> > >>
>>>> > >>
>>>> > >>
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>