1 20 package org.openi.web.controller.admin; 21 22 import org.apache.log4j.Logger; 23 import org.openi.analysis.Analysis; 24 import org.openi.menu.AnalysisCollectionMenuVisitor; 25 import org.openi.project.AnalysisFormItem; 26 import org.openi.project.DirectoryLister; 27 import org.openi.project.Overview; 28 import org.openi.project.ProjectContext; 29 import org.openi.security.Permission; 30 import org.openi.util.*; 31 import org.openi.xml.*; 32 import org.springframework.validation.BindException; 33 import org.springframework.validation.Errors; 34 import org.springframework.validation.ObjectError; 35 import org.springframework.web.servlet.ModelAndView; 36 import org.springframework.web.servlet.mvc.SimpleFormController; 37 import java.io.*; 38 import java.util.*; 39 40 import javax.servlet.http.HttpServletRequest ; 41 import javax.servlet.http.HttpServletResponse ; 42 import javax.servlet.http.HttpSession ; 43 44 45 48 public class ConfigureOverviewFormController extends SimpleFormController { 49 private static Logger logger = Logger.getLogger(ConfigureOverviewFormController.class); 50 52 53 private String selectOverviewFormView; 54 private String configureOverviewFormView; 55 56 57 66 protected Object formBackingObject(HttpServletRequest request) 67 throws Exception { 68 logger.debug("handling formBackingObject, request: " + request.getParameterMap()); 69 ProjectContext projectContext = (ProjectContext) request.getSession() 70 .getAttribute("projectContext"); 71 72 logger.debug("test config for select view: " + this.getSelectOverviewFormView()); 73 logger.debug("test config for configure view: " + this.getConfigureOverviewFormView()); 74 75 if(!projectContext.hasPermission(Permission.CONFIGURE_DASHBOARD)){ 76 throw new SecurityException ("User does not have appropriate permission"); 77 } 78 79 Map model = new HashMap(); 82 return model; 87 } 88 89 90 100 protected ModelAndView onSubmit(HttpServletRequest request, 101 HttpServletResponse response, Object command, BindException errors) 102 throws Exception 103 { 104 105 ProjectContext projectContext = (ProjectContext)request.getSession().getAttribute("projectContext"); 107 108 if(!projectContext.hasPermission(Permission.CONFIGURE_DASHBOARD)){ 109 throw new SecurityException ("User does not have appropriate permission"); 110 } 111 112 Map model = (Map)command; 113 logger.debug("command map: " + model); 114 115 String action = request.getParameter("action"); 116 logger.debug("action=" + action); 117 118 if("configure".equalsIgnoreCase(action)){ 119 String overviewKey = (String )request.getParameter("overviewKey"); 121 model.put("overviewKey", overviewKey); 122 logger.debug("selecting overview key: " + overviewKey); 123 Overview overview = projectContext.getProject().getOverview(overviewKey); 124 model.put("targetOverview", overview); 126 127 AnalysisCollectionMenuVisitor visitor = new AnalysisCollectionMenuVisitor(projectContext); 129 projectContext.buildMenu().accept(visitor); 130 model.put("analyses", wrap(visitor.getAnalyses(), overview)); 131 132 return new ModelAndView(this.getConfigureOverviewFormView(), model); 133 }else if("save".equalsIgnoreCase(action)){ 134 logger.debug("save action"); 135 String overviewKey = request.getParameter("overviewKey"); 136 137 if(projectContext.getProject().getOverviews()==null){ 139 projectContext.getProject().setOverviews(new HashMap()); 140 } 141 142 Overview overview = projectContext.getProject().getOverview(overviewKey); 143 if(overview == null){ 145 overview = new Overview(); 146 Map overviews = projectContext.getProject().getOverviews(); 147 overviews.put(overviewKey, overview); 148 } 149 150 String widthParam = request.getParameter("thumbnailWidth"); 152 if(widthParam !=null && widthParam.length() > 0){ 153 overview.setThumbnailWidth(this.parseInt(widthParam, 320)); 154 } 155 156 String heightParam = request.getParameter("thumbnailHeight"); 157 if(heightParam !=null && heightParam.length() > 0){ 158 overview.setThumbnailHeight(this.parseInt(heightParam, 240)); 159 } 160 161 163 164 model.put("targetOverview", overview); 165 166 167 String [] analyses = request.getParameterValues("analyses"); 168 List links = new LinkedList(); 169 for(int i=0; analyses!=null && i < analyses.length; i++){ 170 links.add(analyses[i]); 171 } 172 overview.setLinks(links); 173 174 projectContext.saveProject(); 175 }else if("new".equalsIgnoreCase(action)){ 176 logger.debug("new action"); 179 180 Overview overview = new Overview(); 181 model.put("targetOverview", overview); 182 183 AnalysisCollectionMenuVisitor visitor = new AnalysisCollectionMenuVisitor(projectContext); 184 projectContext.buildMenu().accept(visitor); 185 model.put("analyses", wrap(visitor.getAnalyses(), overview)); 186 187 return new ModelAndView(this.getConfigureOverviewFormView(), model); 188 }else if("delete".equalsIgnoreCase(action)){ 189 logger.debug("delete action"); 192 Map overviews = projectContext.getProject().getOverviews(); 193 String overviewKey = request.getParameter("overviewKey"); 194 if(overviews.get(overviewKey) != null){ 195 overviews.remove(overviewKey); 196 projectContext.saveProject(); 197 } 198 199 return new ModelAndView(this.getSelectOverviewFormView(), "model", model); 200 } 201 202 return super.onSubmit(request, response, command, errors); 203 } 204 205 206 private int parseInt(String parameter, int defaultValue) { 207 int retVal = defaultValue; 208 try{ 209 if(parameter != null && parameter.length() > 0 ){ 210 retVal = Integer.parseInt(parameter); 211 } 212 213 if(retVal == 0){ 214 retVal = defaultValue; 215 } 216 }catch(Exception e){ 217 218 } 219 return retVal; 220 } 221 222 223 private Map wrap(Map analyses, Overview targetOverview) { 224 Map wrapped = new HashMap(); 225 Iterator keys = analyses.keySet().iterator(); 226 while(keys.hasNext()){ 227 String key = (String )keys.next(); 228 Analysis value = (Analysis)analyses.get(key); 229 AnalysisFormItem formItem = new AnalysisFormItem(value); 230 formItem.setSelected(targetOverview.getLinks().contains(key)); 231 wrapped.put(key, formItem); 232 } 233 return wrapped; 234 } 235 236 237 public String getConfigureOverviewFormView() { 238 return configureOverviewFormView; 239 } 240 public void setConfigureOverviewFormView(String configureOverviewFormView) { 241 this.configureOverviewFormView = configureOverviewFormView; 242 } 243 public String getSelectOverviewFormView() { 244 return selectOverviewFormView; 245 } 246 public void setSelectOverviewFormView(String selectOverviewFormView) { 247 this.selectOverviewFormView = selectOverviewFormView; 248 } 249 } 250 | Popular Tags |