Hakon, According to the docs, if you don't put an interval, it will default to 5000 (5 secs). I would expext setting it to 0 would disable it. You could have your outputText use a partialTrigger on the poll component and have it update whenever the poll gets fired.
How long does this whole process take? -Richard 2011/3/4 Håkon Sagehaug <[email protected]> > Hi, > > So we're trying to implement part of a system, already implemented with > icefaces using myfaces and Trinidad. We decided to compare alittle. > Icefaces > have Ajax Push, so it makes it "easy" to update clients whenever there are > things to update. SO when a user logs in, we're calling tree different > web-services in the backend code. In the other application we update after > each call to one of the web service saying > > 1. Got security token > 2. got user information > 3. got dataset etc > > All these are separate call to our web-services, and it would be nice to > update the user about the events. For the login we don't start a new > thread. > Other actions such as adding a dataset, where the user want to fetch one or > more files from ftp/http we start a new thread on the server.First the > thread sends the requets for adding the dataset to the web service, and > gets > back a id. The web service starts a thread for downloading the files, when > finished sets the dataset status to complete. In the mean time the thread > on > the web server polls the status of the download with the id given to him. > So > when the Web server thread gets complete from the web service, a message is > given to the user. > > Did that give an okay overview? Just a dumb question, how to enable the > poll, setting a positive poll interval? And again thanks for the patience > > cheers, Håkon > > > On 4 March 2011 16:07, Richard Yee <[email protected]> wrote: > > > enable it on the server as a result of pressing the commandButton. can > you > > answer some of the questions I posed earlier? > > If we see the whole picture, then perhaps we can come up with a complete > > solution. > > > > -Richard > > > > 2011/3/4 Håkon Sagehaug <[email protected]> > > > > > Hi > > > > > > Thanks for the tips and holding out this thread. To kick of the poll > do > > I > > > use rendered=true/false, it should have had a enable/disable. Or can I > > set > > > the interval to 0 or -1. > > > > > > Cheers, Håkon > > > > > > On 4 March 2011 14:18, Scott O'Bryan <[email protected]> wrote: > > > > > > > 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 > > > > >>>>>>>>>>>>>> > > > > >>>>>>>>>>>>> > > > > >>> > > > > > > > > > >

