2 Replies Latest reply on Jul 12, 2009 4:40 AM by kukeltje.ronald.jbpm.org

    Workspaces: Conversation per panelTab rather than page?

    cvolk

      Despite a good bit of research, I am not sure if I can do what I am trying here.  I have a page with a richfaces tabPanel that I add tabs to programmatically via ajax-ed calls.  Each tab holds one of a limited set of forms (inserted into tab programmatically as well).  I create a nested conversation for each tab.  Page (ajax-ed) itself has a long-running conversation as well.  I am using Seam 2.1.1 GA and Richfaces 3.3.0 GA.


      I want to implement workspace management on top of the above.  I am not sure, despite my reading, if I can do so effectively using a bunch of tabs rather than separate windows/browser-tabs.  Navigation is already a pain due to the limitation re: a4j Include component not being usable programmatically.  Similarly, some of the workspace mgmt stuff seems geared towards pages (entries in page.xml, etc.).  Before I go down this road with a short deadline, can anyone advise as to whether I am heading down a dead-end road?


      Essentially I am trying to build a tabbed, multi-document interface with workspace management.  Too ambitious?


      Thanks!
      Chris

        • 1. Re: Workspaces: Conversation per panelTab rather than page?
          kukeltje.ronald.jbpm.org

          No, not to ambitious since I have the same idea, but my research also yielded nothing. I ended up kind of doing it oldschool with a hasmap in a conversationcoped bean that includes the keys of the tabs and keeps all data in there. Deleting it if a tab closes etc... Still I think it would be nice functionality if the a4j components could be passed a conversation Id and all subsequent actions were carried out within the scope of the conversation. Would make my code a lot cleaner.

          • 2. Re: Workspaces: Conversation per panelTab rather than page?
            kukeltje.ronald.jbpm.org

            I have an example working where the content of a tab is in an iframe which has it's own conversation. Closing the tab kills the conversation but killing the conversation also closes the tab (on rerendering ofcourse). I'll blog about this in a couple of weeks, so stay tuned.


            Keep in mind that rendering tabs dynamically requires a c:forEach and will be a performance killer if to many tabs are open and a new one is opened.