In a previous post, Hakon wrote, " I looks like it picks up the initial
value for the helloWorldBacking.pollText, but when this value changes it's
it not propagated in the UI."
The tr:statusIndicator is used to display a status when an Trinidad Ajax
call is taking place. It just shows a status when the request is in-flight.
I check one of my applications and this works fine:
<tr:panelHorizontalLayout>
<tr:spacer height="1" width="135"/>
<tr:commandButton id="continueButton"
text="#{bundle.continue_label}"
styleClass="myButton"
action="#{someActionBacking.continueAction}"
partialSubmit="true"/>
<tr:statusIndicator>
<f:facet name="busy">
<tr:image source="///images/pgsIndAnm.gif"
shortDesc="#{bundle.processing_label}"
styleClass="someStatus"/>
</f:facet>
</tr:statusIndicator>
</tr:panelHorizontalLayout>
tr:status doesn't require any partialTrigger attribute to work.
>From what I understand the event is occurring on the server. That is that
some component is changing the contents of the text and Hakon wants to
display the updated text. Depending on how and when the text is updated, a
tr:poll component would poll the server for the change. If the change occurs
as part of another user-initiated event, then a partialTrigger attribute
could be used on the outputText, but the tr:statusIndicator wouldn't be
required either.
-Richard
On Thu, Mar 3, 2011 at 8:25 AM, Scott O'Bryan <[email protected]> wrote:
> That doesn't seem to make any sense to me Richard. The poll component
> does not replace statusIndicator, they simply do two different things.
> The purpose of the poll component is to initiate a request based on a
> clock instead of a user click. You still need some way to display the
> information..
>
> Hakon,
>
> The partial trigger in this case should be on the output text although
> having it on the status indicator should also work (you'll just get a
> larger payload).
>
> Try this. Remove the status indicator and only have the output text.
> Make sure your outputText is located inside the form (possible your
> getting a scoping issue).
>
> Does that work? It should.
>
> On Mar 3, 2011, at 9:06 AM, Richard Yee <[email protected]> wrote:
>
> > You don't want statusIndicator, use tr:poll instead
> >
> > Richard
> >
> > Sent from my iPhone
> >
> > On Mar 3, 2011, at 7:48 AM, Håkon Sagehaug <[email protected]>
> wrote:
> >
> >> Hi
> >>
> >> Yes, that was an old cut and past mistake, I've got loginButton as id
> for
> >> the button. The latest test are with loginButton, not button2. So this
> way
> >> of doing it should normally work?
> >>
> >> cheers, Håkon
> >>
> >> On 3 March 2011 16:35, Scott O'Bryan <[email protected]> wrote:
> >>
> >>> Umm. Considering the id of your button is button2, I'm not sure why
> >>> your partialTrigger is loginButton. Can you explain?
> >>>
> >>> On Mar 3, 2011, at 6:46 AM, "Håkon Sagehaug" <[email protected]>
> >>> wrote:
> >>>
> >>>> Hi all,
> >>>>
> >>>> I might not get the full point here ;). Here is what I tried, put
> trigger
> >>> on
> >>>> the statusIndicator like here
> >>>>
> >>>> <tr:statusIndicator partialTriggers="loginButton">
> >>>> <f:facet name="busy">
> >>>> <tr:outputText
> >>> value="#{helloWorldBacking.pollText}"
> >>>> />
> >>>> </f:facet>
> >>>> </tr:statusIndicator>
> >>>>
> >>>> And on the outputText like here
> >>>>
> >>>> <tr:statusIndicator partialTriggers="loginButton">
> >>>> <f:facet name="busy">
> >>>> <tr:outputText
> >>> value="#{helloWorldBacking.pollText}"
> >>>> partialTriggers="loginButton"/>
> >>>> </f:facet>
> >>>> </tr:statusIndicator>
> >>>>
> >>>> Where loginButton is
> >>>>
> >>>> <tr:commandButton id="button2" text="Login" partialSubmit="true"/>
> >>>>
> >>>> But nothing seems to have the wanted effect. I looks like it picks up
> the
> >>>> initial value for the helloWorldBacking.pollText, but when this value
> >>>> changes it's it not propagated in the UI. Maybe this can't be done
> like
> >>> I've
> >>>> sketched out. The backing code is the same as sent in a earlier email.
> >>>>
> >>>> Other tips?
> >>>>
> >>>> Cheers, Håkon
> >>>>
> >>>>
> >>>> On 3 March 2011 05:23, Richard Yee <[email protected]> wrote:
> >>>>
> >>>>> Try putting it inside the tr:form or inside your panelPage
> >>>>>
> >>>>>
> >>>>> -Richard
> >>>>>
> >>>>> 2011/3/1 Håkon Sagehaug <[email protected]>
> >>>>>
> >>>>>> Hi
> >>>>>>
> >>>>>> Thanks for the reply, here is my xhtml, with a simple login form
> >>>>>>
> >>>>>> <tr:document title="Login Demo">
> >>>>>> <tr:statusIndicator>
> >>>>>> <f:facet name="busy">
> >>>>>> <tr:outputText value="#{helloWorldBacking.pollText}" />
> >>>>>> </f:facet>
> >>>>>> </tr:statusIndicator>
> >>>>>> <tr:form>
> >>>>>>
> >>>>>> <tr:panelPage>
> >>>>>> <f:facet name="infoStatus">
> >>>>>> <tr:legend name="required" />
> >>>>>> </f:facet>
> >>>>>>
> >>>>>> <tr:inputText label="Username" id="username"
> >>>>>> value="#{helloWorldBacking.username}"
> required="true"
> >>>>> />
> >>>>>>
> >>>>>> <tr:inputText label="Password" id="password"
> >>>>>> value="#{helloWorldBacking.password}"
> required="true"
> >>>>>> secret="true" />
> >>>>>> <tr:commandButton id="button2" text="Login"
> >>>>>> partialSubmit="true"
> >>>>>> action="#{helloWorldBacking.send}" />
> >>>>>> </tr:panelPage>
> >>>>>>
> >>>>>> </tr:form>
> >>>>>>
> >>>>>> </tr:document>
> >>>>>>
> >>>>>> And parts of the backing bean
> >>>>>>
> >>>>>> public String send() {
> >>>>>> FacesContext facesContext = FacesContext.getCurrentInstance();
> >>>>>>
> >>>>>> System.out.println("user name " + username + " is logged in "
> >>>>>> + userLoggedIn);
> >>>>>>
> >>>>>> try {
> >>>>>> Thread.sleep(5000);
> >>>>>> Token tok = tokenMgr.getToken(username, password, true);
> >>>>>> Thread.sleep(2000);
> >>>>>> pollText = "Token fetched";
> >>>>>> if (tok != null) {
> >>>>>> userLoggedIn = true;
> >>>>>> return ("success");
> >>>>>> }
> >>>>>> username = "";
> >>>>>> password = "";
> >>>>>> } catch (TrustException e1) {
> >>>>>> e1.printStackTrace();
> >>>>>> } catch (AxisFault e) {
> >>>>>> e.printStackTrace();
> >>>>>> } catch (FileNotFoundException e) {
> >>>>>> e.printStackTrace();
> >>>>>> } catch (XMLStreamException e) {
> >>>>>> e.printStackTrace();
> >>>>>> } catch (InterruptedException e) {
> >>>>>>
> >>>>>> e.printStackTrace();
> >>>>>> }
> >>>>>> FacesMessage message = new FacesMessage("Login failed");
> >>>>>>
> >>>>>> facesContext.addMessage("username", message);
> >>>>>>
> >>>>>> username = "";
> >>>>>> password = "";
> >>>>>>
> >>>>>> return ("error");
> >>>>>>
> >>>>>> }
> >>>>>> As you can see I sleep the thread to simulate the operations needed
> to
> >>>>> log
> >>>>>> in the user, for now I'm only getting the token. After that I'll
> fetch
> >>>>> the
> >>>>>> project, data etc...
> >>>>>>
> >>>>>> So I wanted the pollText to apear dynmically in the status
> indicator,
> >>>>> but
> >>>>>> can get it to update,.
> >>>>>>
> >>>>>> Any tips?
> >>>>>>
> >>>>>> cheers, Håkon
> >>>>>>
> >>>>>> On 1 March 2011 23:23, Scott O'Bryan <[email protected]> wrote:
> >>>>>>
> >>>>>>> I see no reason why this wouldn't work.. What specifically is
> failing
> >>>>>>> for you and perhaps a code snipi might help me visualize your
> issue.
> >>>>>>>
> >>>>>>> On Mar 1, 2011, at 3:04 PM, "Håkon Sagehaug" <
> [email protected]>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Hi all,
> >>>>>>>>
> >>>>>>>> I've just stared using Trinidad and myFaces, and had a question.
> I'm
> >>>>>>>> implementing a login in page for uses, and wanted to use the
> >>>>>>>> statusIndicator, to give back messages for the user like
> >>>>>>>>
> >>>>>>>> 1. Got user information
> >>>>>>>> 2. Loading datasets
> >>>>>>>> 3. Logged in
> >>>>>>>>
> >>>>>>>> And tried to have a tr:outputText within the statusIndicator. The
> >>>>>> value
> >>>>>>> for
> >>>>>>>> the outPuttext would be linked to a backing bean, but I was not
> very
> >>>>>>>> successful, do you have any other tips?
> >>>>>>>>
> >>>>>>>> I guess one can use the progressIndicator, but I would like text
> to
> >>>>> be
> >>>>>>>> returned not a procentage progress.
> >>>>>>>>
> >>>>>>>> cheers, Håkon
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
>