Yeah, I agree with Richard now that I know your trying to dynamically
update it.  The poll components will kick off the AJAX request and
your partialTrigger (set to the poll component) will allow the text to
change.

I would also suggest disabling the poll component when you don't
expect any changes (ie. Maybe it doesn't start until the login is
submitted and then it turns off after the login successfully
completed).

Does anyone know of "Streaming Requests" are handled in the next
servlet spec?  If so, it would be cool for JSF to
Do something with them, allow renderkits like Trinidad to stream
updates in a more generic fashion.

On Mar 4, 2011, at 5:53 AM, Richard Yee <[email protected]> wrote:

> Hakon,
> See my email from yesterday.  That is why I suggested using the tr:poll 
> component. How many different status messages will you have? What period of 
> time will the messages be changing? Depending on these answers, the tr:poll 
> component or the statusIndicator will work. Can you list the sequence of 
> events the timing (ie. 2 seconds or 2 minutes later xxx happens on the 
> server.) are you starting a separate thread that eventually updates a status 
> message?
>
> Richard
>
> Sent from my iPhone
>
> On Mar 4, 2011, at 1:34 AM, Håkon Sagehaug <[email protected]> wrote:
>
>> Hi
>>
>> I put the form in various places, but I could not get the wanted effect.
>> Just curious, since this is an update of a value on the server side. The
>> clients somehow needs to know if the value have changed or not.  I guess
>> this is somewhere referred to as server push. My impression of the
>> partialTriggers is that an action is taken on the client side, and then
>> something is triggered on the client side.
>> So in my case the the value form the backing bean id read, but only when the
>> button is clicked, not the hole "login session". Is this correct? I guess
>> what to me sounds correct is to have some sort of value change listener on
>> the value for the output text, but I guess that's more for input text etc
>>
>> Did this make sense?
>>
>> Cheers, Håkon
>>
>>
>> On 3 March 2011 18:18, Scott O'Bryan <[email protected]> wrote:
>>
>>> Hakkon, put the form around everything and see if it changes the PPR
>>>
>>>
>>>
>>> On 03/03/2011 10:00 AM, Richard Yee wrote:
>>>
>>>> what is the initial value of pollText in your backing bean? If it is "",
>>>> you
>>>> should set it to something else, ie. "Processing".
>>>>
>>>> The outputText inside statusIndicator will only show during the time the
>>>> Ajax request is being made. Once the response is returned, it will
>>>> disappear.
>>>>
>>>> -Richard
>>>>
>>>>
>>>>
>>>> 2011/3/3 Håkon Sagehaug<[email protected]>
>>>>
>>>> Hi
>>>>>
>>>>> I now have my login page like this
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
>>>>> <html xmlns="http://www.w3.org/1999/xhtml";
>>>>>  xmlns:f="http://java.sun.com/jsf/core";
>>>>>  xmlns:h="http://java.sun.com/jsf/html";
>>>>>  xmlns:tr="http://myfaces.apache.org/trinidad";>
>>>>>
>>>>> <f:view>
>>>>>  <tr:document title="eSysbio-myFaces-Trinidad">
>>>>>
>>>>>      <tr:panelPage>
>>>>>          <f:facet name="infoStatus">
>>>>>              <tr:legend name="required" />
>>>>>          </f:facet>
>>>>>          <tr:form>
>>>>>              <h:panelGrid colums="2">
>>>>>                  <tr:outputLabel value="Username" />
>>>>>                  <tr:inputText id="username"
>>>>> value="#{helloWorldBacking.username}"
>>>>>                      required="true" />
>>>>>                  <tr:outputLabel value="Password" />
>>>>>                  <tr:inputText id="password"
>>>>> value="#{helloWorldBacking.password}"
>>>>>                      required="true" secret="true" />
>>>>>
>>>>>              </h:panelGrid>
>>>>>              <tr:commandButton id="loginButton" text="Login"
>>>>> partialSubmit="true"
>>>>>                  actionListener="#{helloWorldBacking.send}" />
>>>>>
>>>>>
>>>>>              <!--
>>>>>              <tr:statusIndicator>
>>>>>                  <tr:outputText value="#{helloWorldBacking.pollText}"
>>>>> />
>>>>>              </tr:statusIndicator>
>>>>>               -->
>>>>>              <tr:outputText value="#{helloWorldBacking.pollText}"
>>>>>                  partialTriggers="loginButton" />
>>>>>          </tr:form>
>>>>>      </tr:panelPage>
>>>>>
>>>>>  </tr:document>
>>>>> </f:view>
>>>>> </html>
>>>>>
>>>>> But then I got nothing in the outPutText field. Any other hint/tips or
>>>>> tricks. I really appreciate the help
>>>>>
>>>>> Cheers, Håkon
>>>>>
>>>>> On 3 March 2011 17:25, 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
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>

Reply via email to