UsersByDepartmentSelectionModel.java  (and
DepartmentSelectionModel.jav)
looks suspcious.


The  UsersByDepartmentSelectionModel.getOption method
returns a value 
from userLists, but 
UsersByDepartmentSelectionModel.translateValue returns
a value using a dao.


You might like to test 
UsersByDepartmentSelectionModel in a standalone
PropertySelection 
component : select an entry from the drop list. Print
the selected value in a form 
listener method.

Shing



--- Waimun Yeow <[EMAIL PROTECTED]> wrote:

> The second version of the demo helped me to correct
> the way custom  
> objects are passed in the selection property model
> classes. I have  
> made the changes in my selection model classes and
> also the  
> pageBeginningRender() method.  However, I am still
> having the same  
> problem. I have posted the .page and codes below.
> 
> -waimun
> 
> <!-- .page -->
> <property-specification name="toDepartment"  
> type="project6.model.UserDepartment"
>               persistent="no" />
> 
>       <property-specification name="user"
> type="project6.model.UserAccount"
>               persistent="no" />
> 
> <property-specification
> name="departmentSelectionModel"
>       
>
type="org.apache.tapestry.form.IPropertySelectionModel"
>  
> persistent="no" />
>               
>       <property-specification
> name="usersByDepartmentList"
>               type="java.util.List" initial-value="new
> java.util.ArrayList()"
>               persistent="no" />
> 
>       
> 
>       <property-specification name="userDepartmentDao"
>               type="project6.dao.UserDepartmentDao">
>       
>
global.getApplicationContext().getBean("userDepartmentDao")
>       </property-specification>
> 
>       <property-specification name="userAccountDao"
>               type="project6.dao.UserAccountDao">
>       
>
global.getApplicationContext().getBean("userAccountDao")
>       </property-specification>
> <component id="referralForm" type="Form">
> <binding name="listener"
> expression="listeners.formSubmit"/>
> </component>
>       <component id="deptSelection"
> type="PropertySelection">
>               <binding name="value" expression="toDepartment" />
>               <binding name="model"
> expression="departmentSelectionModel" />
>               <binding name="disabled" expression="false" />
>               <static-binding name="submitOnChange"
> value="false" />
>       </component>
> 
>       <component id="userSelection"
> type="man:DynamicSelectionList">
>               <binding name="parent"
> expression="components.deptSelection" />
>               <binding name="value" expression="user" />
>               <binding name="childList"
> expression="usersByDepartmentList" />
>       </component>
> 
> <!-- .page -->
> 
> /* method's code for page */
> 
> public void pageBeginRender(PageEvent event) {
> 
> List allDepartments =
> getUserDepartmentDao().findAll();
>                       
>                       if (getDepartmentSelectionModel() == null) {
>                               setDepartmentSelectionModel(new
> DepartmentSelectionModel(
>                                               allDepartments));
>                       }
> 
>                       if (getUsersByDepartmentList().size() == 0) {
>                               
>                               DepartmentSelectionModel deptModel =
> (DepartmentSelectionModel)  
> getDepartmentSelectionModel();
> 
> 
>               for (Iterator it =
> deptModel.getDepartmentList().iterator(); it
>                               .hasNext();) {
> 
>                       
>                       UserDepartment d = (UserDepartment) it.next();
> 
>                       List usersByDepartment =
> getUserAccountDao().findByDepartment(d);
>                       
>                       if (usersByDepartment.size() == 0) {
>                               List a = new ArrayList();
>                               a.add(getUserAccountDao().findByUsername("Waimun
> Yeow"));
>                               usersByDepartment = a;
>                       }
>                       
>                       getUsersByDepartmentList().add(
>                                       new
> UsersByDepartmentSelectionModel(usersByDepartment));
> 
>               }
> 
>                       }
>                       
> 
>                       if (getToDepartment() == null) {
>                               setToDepartment((UserDepartment)
> getDepartmentSelectionModel 
> ().getOption(4));
>                       }
> 
> }
> /* method's code for page */
> 
> /* models' class */
> public class UsersByDepartmentSelectionModel
> implements  
> IPropertySelectionModel, Serializable {
> 
>       private List usersList = new ArrayList();
>       
>       private static UserAccountDao dao;
> 
>       public UsersByDepartmentSelectionModel() {
>               
>               XmlBeanFactory factory = new XmlBeanFactory(new
> ClassPathResource(
>               "DaoContext.xml"));
> 
> dao = (UserAccountDao)
> factory.getBean("userAccountDao");
>       }
> 
>       public UsersByDepartmentSelectionModel(List users)
> {
> 
>               this();
>               
>               if (users == null)
>                       return;
> 
>               usersList = users;
>       }
> 
>       public int getOptionCount() {
>               return usersList.size();
>       }
> 
>       public Object getOption(int index) {
>               return usersList.get(index);
>       }
> 
>       public String getLabel(int index) {
>               return ((UserAccount)
> usersList.get(index)).getUserName();
>       }
> 
>       public String getValue(int index) {
>               return ((UserAccount)
> usersList.get(index)).getUserId().toString();
>       }
> 
>       public Object translateValue(String index) {
>               return dao.findByUserId(Integer.parseInt(index));
>       }
> 
>       public List getUsersList() {
>               return usersList;
>       }
> 
> }
> 
> public class DepartmentSelectionModel implements  
> IPropertySelectionModel, Serializable {
> 
>       private List departmentList = new ArrayList();
>       
>       private static UserDepartmentDao dao;
> 
>       public DepartmentSelectionModel() {
>               
>               XmlBeanFactory factory = new XmlBeanFactory(new
> ClassPathResource(
>               "DaoContext.xml"));
> 
> dao = (UserDepartmentDao)
> factory.getBean("userDepartmentDao");
>       }
> 
=== message truncated ===


Home page :
  http://uk.geocities.com/matmsh/index.html


                
___________________________________________________________ 
Inbox full of spam? Get leading spam protection and 1GB storage with All New 
Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to