1 package org.gnomekr.potron.web.view; 2 3 import static org.gnomekr.potron.util.NavigationCases.NAV_PROJECT_CREATE; 4 import static org.gnomekr.potron.util.NavigationCases.NAV_PROJECT_LIST; 5 6 import java.util.Date; 7 import java.util.List; 8 9 import javax.faces.application.FacesMessage; 10 11 import org.apache.myfaces.util.MessageUtils; 12 import org.gnomekr.potron.data.Project; 13 import org.gnomekr.potron.service.IProjectManager; 14 import org.gnomekr.potron.service.ProjectExistsException; 15 16 /*** 17 * ProjectView.java 18 * @author Xavier Cho 19 * @version $Revision 1.1 $ $Date: 2005/07/21 21:36:45 $ 20 * @jsf.bean 21 * name = "project" 22 * scope = "request" 23 * @jsf.navigation 24 * from = "*" 25 * to = "/admin/project/create.jsf" 26 * result = "project.create" 27 * @jsf.navigation 28 * from = "*" 29 * to = "/admin/project/update.jsf" 30 * result = "project.update" 31 * @jsf.navigation 32 * from = "*" 33 * to = "/admin/project/list.jsf" 34 * result = "project.list" 35 * @jsf.navigation 36 * from = "*" 37 * to = "/user/project.jsf" 38 * result = "project.info" 39 */ 40 public class ProjectView extends AbstractFacesView { 41 42 private IProjectManager manager; 43 44 private String id; 45 private String name; 46 private String version; 47 private String description; 48 private Date registeredDate; 49 private String homepage; 50 51 /*** 52 * @return 53 * @jsf.managed-property 54 * value = "#{projectManager}" 55 */ 56 public IProjectManager getManager() { 57 return manager; 58 } 59 60 public String createProject() { 61 Project project = new Project(); 62 project.setId(id); 63 project.setName(name); 64 project.setHomepage(homepage); 65 project.setVersion(version); 66 project.setDescription(description); 67 68 try { 69 manager.createProject(project); 70 } catch (ProjectExistsException e) { 71 MessageUtils.addMessage( 72 FacesMessage.SEVERITY_WARN, 73 "error.project.exists", 74 null); 75 76 return NAV_PROJECT_CREATE; 77 } 78 79 MessageUtils.addMessage( 80 FacesMessage.SEVERITY_INFO, 81 "msg.project.create.successful", 82 null); 83 84 refreshNavigationTree(); 85 86 return NAV_PROJECT_LIST; 87 } 88 89 public String updateProject() { 90 Project project = manager.getProject(id); 91 92 project.setName(name); 93 project.setVersion(version); 94 project.setDescription(description); 95 project.setHomepage(homepage); 96 97 manager.updateProject(project); 98 99 MessageUtils.addMessage( 100 FacesMessage.SEVERITY_INFO, 101 "msg.project.update.successful", 102 null); 103 104 refreshNavigationTree(); 105 106 return NAV_PROJECT_LIST; 107 } 108 109 public String deleteProject() { 110 manager.deleteProject(id); 111 112 MessageUtils.addMessage( 113 FacesMessage.SEVERITY_INFO, 114 "msg.project.delete.successful", 115 null); 116 117 refreshNavigationTree(); 118 119 return NAV_PROJECT_LIST; 120 } 121 122 public List<Project> getProjects() { 123 return manager.getProjects(); 124 } 125 126 /*** 127 * @param manager The manager to set. 128 */ 129 public void setManager(IProjectManager manager) { 130 this.manager = manager; 131 } 132 133 /*** 134 * @return Returns the description. 135 */ 136 public String getDescription() { 137 return description; 138 } 139 140 /*** 141 * @param description The description to set. 142 */ 143 public void setDescription(String description) { 144 this.description = description; 145 } 146 147 /*** 148 * @return Returns the homepage. 149 */ 150 public String getHomepage() { 151 return homepage; 152 } 153 154 /*** 155 * @param homepage The homepage to set. 156 */ 157 public void setHomepage(String homepage) { 158 this.homepage = homepage; 159 } 160 161 /*** 162 * @return Returns the id. 163 */ 164 public String getId() { 165 return id; 166 } 167 168 /*** 169 * @param id The id to set. 170 */ 171 public void setId(String id) { 172 this.id = id; 173 174 Project project = manager.getProject(id); 175 176 if (project != null) { 177 this.name = project.getName(); 178 this.version = project.getVersion(); 179 this.description = project.getDescription(); 180 this.registeredDate = project.getRegisteredDate(); 181 this.homepage = project.getHomepage(); 182 } 183 } 184 185 /*** 186 * @return Returns the name. 187 */ 188 public String getName() { 189 return name; 190 } 191 192 /*** 193 * @param name The name to set. 194 */ 195 public void setName(String name) { 196 this.name = name; 197 } 198 199 /*** 200 * @return Returns the registeredDate. 201 */ 202 public Date getRegisteredDate() { 203 return registeredDate; 204 } 205 206 /*** 207 * @param registeredDate The registeredDate to set. 208 */ 209 public void setRegisteredDate(Date registeredDate) { 210 this.registeredDate = registeredDate; 211 } 212 213 /*** 214 * @return Returns the version. 215 */ 216 public String getVersion() { 217 return version; 218 } 219 220 /*** 221 * @param version The version to set. 222 */ 223 public void setVersion(String version) { 224 this.version = version; 225 } 226 }