1 2 Previous Next 18 Replies Latest reply on May 24, 2007 10:42 AM by vimalm

    Tomahawk datascroller loose conversationId

    goeh

      When paging with the Tomahawk datascroller it does not keep the URL, so Seam conversationId is lost.
      Anyone know how to get the datascroller to keep the URL?
      I saw the same type of question here, but with no answer: http://wiki.apache.org/myfaces/FAQ

        • 1. Re: Tomahawk datascroller loose conversationId
          smokingapipe

          I'm having the exact same problem. Does anyone have a solution? Obviously what needs to happen is the conversationId needs to be passed along. I guess Tomahawk isn't aware of conversations (which are a seam thing).

          I made my SFSB SESSION scope and then my sortable DataTable works fine. But that means that the conversation is lost, and I want the sorting behavior to be conversation scope, not session scope.

          Any ideas?

          It seems like the marriage of Tomahawk and Seam is not an easy one.

          • 2. Re: Tomahawk datascroller loose conversationId
            smokingapipe

            And this is especially frustrating because conversations are the "natural" scope of things in Seam. And they are a great idea. One of the major ideas of Seam was that the Session scope does not make sense for the way people want to use a web application. Tomahawk gives us all these great components to do stuff, but if we have to trade between Tomahawk and conversations, that's rough!

            I actually hope that a future release of JBoss will come ready-to-go with Seam and Tomahawk support so we don't have to do so much messing around to get it working.

            • 3. Re: Tomahawk datascroller loose conversationId
              smokingapipe

              One other thing to say about Tomahawk: I have never written AJAX-type JavaScript in my life. I am almost completely ignorant of how JavaScript works. And now I'm using Tomahawk and adding some very cool AJAX-style features to my pages, like popups, sortable tables, etc, without knowing a single thing about JS. This is cool! I don't want to learn JS, I just want to make cool web applications.

              • 4. Re: Tomahawk datascroller loose conversationId
                mzeijen

                Hmmm, why wouldn't you want to learn js. I think it is mandatory for a good webdeveloper that he knows some javascript. I don't think that the several available java to javascript libraries out there cover every piece functionality that you probably need.

                Javascript is very easy to learn, give it a try ;).

                • 5. Re: Tomahawk datascroller loose conversationId
                  smokingapipe

                  Oh I know it looks pretty easy, but I don't want to learn it any more than I want to learn AWT. I use Swing components so I don't have to build my UI at the AWT level. Also it seems like you need to be quite good at JS to make pages that work reliably.

                  Tomahawk has almost everything I need right now. The one thing it lacks is a drag-and-drop system for re-ordering of items on lists. I'm sure it will show up there at some point.

                  The one thing missing is easy and good integration of Tomahawk with JBoss/Seam. I had to take apart the MyFaces jar file to get just the right components in there, and now I find that Tomahawk doesn't support conversations, so I need to figure out how to fix that.

                  I hope that some future release of JBoss will get all this sorted out and have a "ready to wear" environment where I get Seam, JSF and Tomahawk without having to mess around with everything.

                  • 6. Re: Tomahawk datascroller loose conversationId
                    smokingapipe

                    And btw, the Seam + Tomahawk demo, which is the "Issue Tracker", is not a very good demo of using Tomahawk. It only has one file that uses one very small Tomahawk component. It leaves out the important aspects of Tomahawk, namely, configuring the ExtensionsFilter properly so that it can embed the JS that it needs (which it does by parsing HTML pages) and serving the other resources it needs.

                    Anyone who starts with that demo, and tries to use that as a basis for using the fancier Tomahawk components, will get very frustrated.

                    • 7. Re: Tomahawk datascroller loose conversationId
                      texan

                      Did anyone figure out how to preserve the conversation with the Tomahawk data scroller? What about the sorting on the Tomahawk table seems like that also would trash the conversation.

                      • 8. Re: Tomahawk datascroller loose conversationId
                        smokingapipe

                        Yes, the sortable Tomahawk table also destroys the conversation. I was initially having problems with it because I had a conversation-scoped SFSB holding the table state, and I couldn't figure out why that bean was being recreated every time I clicked. Well, it's because the conversation scope was being created every time I clicked. I changed to a session-scoped bean and it works, but it is annoying (to say the least) to lose the conversation by using a Tomahawk component.

                        • 9. Re: Tomahawk datascroller loose conversationId
                          texan

                          At the risk of turning this into a Tomahawk topic, am I the only one who detests the little arrow on the Tomahawk table columns for sorting? It appears to be implemented using a special character rather than an image (which makes sense), but is there any way to override this with an image? I was hoping for an attribute on the table itself to do this, but I'd settle for one on the column def. Sadly, I haven't found anything...

                          • 10. Re: Tomahawk datascroller loose conversationId
                            smokingapipe

                            Yes, I'm pretty sure you can get rid of it like this:

                            <t:commandSortHeader columnName="firstName" arrow="true">
                             <h:outputText value="First Name"/>
                            </t:commandSortHeader>
                            


                            Where it says arrow="true", change that to "false" and I think the arrow will go away.


                            • 11. Re: Tomahawk datascroller loose conversationId
                              texan

                              Yeah, but I want to use it, only substitute an image. I guess it would have to be a pair of images, up and down.

                              • 12. Re: Tomahawk datascroller loose conversationId
                                smokingapipe

                                You could turn off the arrow, and then put in two image elements, and have a rendered="#{..}" attribute on them, which is set by reading values out of the session bean.

                                • 13. Re: Tomahawk datascroller loose conversationId
                                  texan

                                  That's what I'm doing now, and it works find - it's just bulky since I'm not sophisticated enough yet to write custom JSF components.

                                  • 14. Re: Tomahawk datascroller loose conversationId
                                    denis-karpov

                                    It is from Tomahawk samples.

                                    ....
                                     <t:commandSortHeader columnName="#{columnHeader.label}" arrow="false" immediate="false">
                                     <f:facet name="ascending">
                                     <t:graphicImage value="images/ascending-arrow.gif" rendered="true" border="0"/>
                                     </f:facet>
                                     <f:facet name="descending">
                                     <t:graphicImage value="images/descending-arrow.gif" rendered="true" border="0"/>
                                     </f:facet>
                                     <h:outputText value="#{columnHeader.label}" />
                                     </t:commandSortHeader>
                                    ....
                                    


                                    1 2 Previous Next