View Javadoc

1   package org.appfuse.webapp.pages.admin;
2   
3   import org.apache.tapestry5.annotations.InjectPage;
4   import org.apache.tapestry5.annotations.Persist;
5   import org.apache.tapestry5.annotations.Property;
6   import org.apache.tapestry5.beaneditor.BeanModel;
7   import org.apache.tapestry5.ioc.Messages;
8   import org.apache.tapestry5.ioc.annotations.Inject;
9   import org.apache.tapestry5.services.BeanModelSource;
10  import org.apache.tapestry5.services.javascript.JavaScriptSupport;
11  import org.appfuse.model.User;
12  import org.appfuse.service.UserManager;
13  import org.appfuse.webapp.pages.Home;
14  import org.appfuse.webapp.pages.UserEdit;
15  import org.slf4j.Logger;
16  
17  import java.util.List;
18  
19  /**
20   * @author Serge Eby
21   * @version $Id: UserList.java 5 2008-08-30 09:59:21Z serge.eby $
22   */
23  public class UserList {
24      @Inject
25      private Logger logger;
26  
27      @Inject
28      private Messages messages;
29  
30      @Inject
31      private UserManager userManager;
32  
33      @Inject
34      private BeanModelSource beanModelSource;
35  
36      @Inject
37      private JavaScriptSupport jsSupport;
38  
39      @InjectPage
40      private UserEdit userEdit;
41  
42      @Property
43      private User currentUser;
44  
45      @Property
46      @Persist
47      private String q;
48  
49      private String infoMessage;
50  
51      @Property
52      private List<User> users;
53  
54      public BeanModel<User> getModel() {
55          final BeanModel<User> model = beanModelSource.createDisplayModel(User.class, messages);
56  
57          model.include("username", "email", "enabled");
58          model.add("fullname");
59          // Set labels
60          model.get("username").label(messages.get("user.username"));
61          model.get("email").label(messages.get("user.email"));
62          model.get("enabled").label(messages.get("user.enabled"));
63          model.get("fullname").label(messages.get("activeUsers.fullName"));
64  
65          return model;
66      }
67  
68  
69      void onActivate() {
70          users = userManager.search(q);
71      }
72  
73  
74      Object onAdd() {
75          return  userEdit.initialize(null, "list", messages.get("userProfile.admin.message"));
76  
77      }
78  
79      Object onDone() {
80          return Home.class;
81      }
82  
83  
84      Object onActionFromEdit(User user) {
85          logger.debug("fetching user with id: " + user.getId());
86          user.setConfirmPassword(user.getPassword());
87          return userEdit.initialize(user, "list", messages.get("userProfile.admin.message"));
88      }
89  
90  
91      Object onSubmit() {
92          return this;
93      }
94  
95      void afterRender() {
96         // jsSupport.addScript("Event.observe(window, 'load', function() {highlightTableRows('userList');})");
97      }
98  }