[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jboss-user
Subject:    [jboss-user] [JBoss Seam] - DataModelSelection and Outjection
From:       "segue.guy" <do-not-reply () jboss ! com>
Date:       2006-09-30 17:11:24
Message-ID: 2223299.1159636284564.JavaMail.jboss () colo-br-02 ! atl ! jboss ! com
[Download RAW message or body]

I know I'm making some obvious mistake below, and it's driving me to distraction....

I have a page which displays a list and allows selection to go to a detailed view of \
the selected item:


  | @Stateful
  | @Scope(SESSION)
  | @Name("dataSourceList")
  | @LoggedIn
  | public class DataSourceListAction implements DataSourceList, Serializable
  | {
  |    ...   
  | 
  |    @DataModel
  |    private List<DataSource> dataSources;
  |    @DataModelSelection 
  |    @In(required=false)
  |    @Out(scope=SESSION, required=false)
  |    private DataSource dataSource;
  |    
  |    @Factory
  |    @Observer("createDataSourceConfirmed")
  |    public void getDataSources()
  |    {
  |       dataSources = em.createQuery("from DataSource s where s.user.username = \
:username")  |             .setParameter("username", user.getUsername())
  |             .getResultList();
  |    }
  |    
  |    public String selectDataSource()
  |    {
  |       log.info("get datasource: #0 for #{user.username}", dataSource.getId());
  |       dataSource = em.find(DataSource.class, dataSource.getId());
  |       log.info("got datasource: #0 for #{user.username}", dataSource.getName());
  |       events.raiseEvent("selectDataSource");
  |       return "datasource";
  |    }
  | 
  |    public void delete()
  |    {
  |       dataSources.remove(dataSource);
  |       em.remove(dataSource);
  |       dataSource=null;
  |    }
  | 
  |    @Destroy @Remove
  |    public void destroy() {}
  |    
  | }
  | 

I want the selection outjected to drive a detailed view page, which among other \
things displays an attribute which is a list of objects using a @DataModel and \
dataTable.  The backing code looks like:


  | @Stateful
  | @Scope(SESSION)
  | @Name("dataSourceView")
  | @LoggedIn
  | public class DataSourceViewAction implements DataSourceView, Serializable
  | {
  |    ...   
  | 
  |    @In(scope=SESSION, required=true)
  |    private DataSource dataSource;
  |    
  |    @DataModelSelection(value="dataFields")
  |    @Out(scope=SESSION, required=false)
  |    private DataField dataField;
  |    
  |    @DataModel(value="dataFields")
  |    @Observer("selectDataSource")
  |    public List<DataField> getDataFields()
  |    {
  |       log.info("in new getDataFields for #0", dataSource == null ? "null" : \
dataSource.getName());  |       return dataSource.getDataFields();
  |    }
  |    
  |    public String selectDataField()
  |    {
  |       log.info("get dataField: #0", dataField.getName());
  |       return "dataviewer";
  |    }
  |    
  |    @Destroy @Remove
  |    public void destroy() {}
  |    
  | }
  | 

I'm confused over the behavior.  I create two items in the list in other code.  When \
I select the first item in the list, it shows the simple attributes of the first \
item, but the list attribute contains the values from the second, most recently \
created item.  Similarly if I subsequently select the second item from the list, it \
shows the simple attributes from the second item, but the list attrbute from the \
first.  If I select the second item again, everything looks fine.  The debugging \
statements in the observer do show that the dataSource object I expect to be selected \
is the previously outjected one.

I'm missing something clear and simple in the lifecycle here - anyone have any \
advice?

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3975290
 _______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic