[jboss-user] [JBoss Seam] - conversations join/nest

rapowder do-not-reply at jboss.com
Thu Jul 12 06:54:11 EDT 2007


Hi, 

In my application (Seam 1.2.1GA) I use 2 level of nested conversations to navigate across categories, subcategories and items of each subcategory. That's my scenario:

Bean 1 (select a category) -> Root Conversation
Bean 2 (select a subcategory) -> Nested inside the root
Bean 3 (edit an item of the subcategory)  -> Nested inside the previous

When I switch between categories the subcategories are updated, when I click on a subcategory I see the respective items, and when I click on an item I can edit its properties. In order not to create a new (or new nested) conversation each time I switch cat, subcat or item I have written this method (called in the @Factory methods of my backing beans) to always join the correct level of conversation.  


  |     public void joinSameOrNest(Class caller) {
  |         Conversation current = Conversation.instance();
  |         boolean started = false;
  |         for (ConversationEntry entry : ConversationEntries.instance().getConversationEntries()) {
  |             if(entry.getDescription().equals(caller.getName())) {
  |                 entry.select();
  |                 log.info("Joining conversation " + caller.getName());
  |                 current.begin(true, false);
  |                 started = true;
  |             }
  |         }
  |         if(!started) {
  |             log.info("Starting nested conversation " + caller.getName());
  |             current.beginNested();
  |         }
  |     }
  |  

I recognize the level of conversation since, in the @Factory methods of my backing beans I first call the method:


  |     public void setDescription(Class caller) {
  |         Conversation.instance().setDescription(caller.getName());
  |     }
  | 

Until the first level of nesting it works fine and in the conversation stack I always see the root and the nested, but when I try to edit an item (starting the 2nd level of nesting) I get an exception:

java.lang.IllegalStateException: beginNested() called with no long-running conversation 

Is it actually possible to have multiple nesting? Is something wrong in my method? I was using the annotations before @Begin(nested/join), but a limited behaviour can be achieved with that. Or am I wrong?

Thanks for any suggestions!
Cheers



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063416#4063416

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4063416



More information about the jboss-user mailing list