1 package org.jahia.clipbuilder.html.struts; 2 3 import org.jahia.clipbuilder.html.struts.Util.AbstractWizardAction; 4 import org.jahia.clipbuilder.html.struts.Util.*; 5 import org.apache.struts.action.*; 6 import javax.servlet.http.*; 7 import org.apache.struts.action.*; 8 import javax.servlet.http.*; 9 import org.jahia.clipbuilder.html.*; 10 import org.jahia.clipbuilder.html.bean.*; 11 import java.util.*; 12 import java.io.*; 13 14 19 public class EditAction extends AbstractWizardAction { 20 private boolean errorHasOccured = false; 21 private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(EditAction.class); 22 23 24 29 public int getFormId() { 30 return Constants.EDITPARAM; 31 } 32 33 34 39 public Map getKeyMethodMap() { 40 Map map = super.getKeyMethodMap(); 41 map.put("wizard", "view"); 42 map.put("edit.backToSelect", "backToSelect"); 43 map.put("edit.reset", "reset"); 44 map.put("edit.resetAll", "resetAll"); 45 map.put("edit.validate", "validate"); 46 map.put("edit.view.change", "changeView"); 47 48 return map; 49 } 50 51 52 61 public ActionForward view(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse httpServletResponse) { 62 logger.debug("[ View ]"); 63 AbstractWizardForm form = (AbstractWizardForm) actionForm; 64 SessionManager.getWebBrowserForm(request).setShow(Constants.WEB_BROWSER_SHOW_LAST_DOCUMENT); 65 checkEditableParamaters(request); 66 67 return actionMapping.getInputForward(); 68 } 69 70 71 72 81 public ActionForward backToSelect(ActionMapping actionMapping, 82 ActionForm actionForm, 83 HttpServletRequest httpServletRequest, 84 HttpServletResponse httpServletResponse) { 85 EditParamForm editParamForm = (EditParamForm) actionForm; 86 logger.debug("[ Back to select page ]"); 88 return actionMapping.findForward("viewSelectPart"); 89 } 90 91 92 93 102 public ActionForward init(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse httpServletResponse) { 103 logger.debug("[ Init ]"); 104 super.init(actionMapping, actionForm, request, httpServletResponse); 105 106 EditParamForm editParamForm = (EditParamForm) actionForm; 107 ActionForward forward = actionMapping.getInputForward(); 108 109 checkEditableParamaters(request); 110 111 activateParamsList(editParamForm, request); 113 114 setWebBrowserContent(request, httpServletResponse, editParamForm); 116 return forward; 117 } 118 119 120 129 public ActionForward changeView(ActionMapping actionMapping, 130 ActionForm actionForm, 131 HttpServletRequest httpServletRequest, 132 HttpServletResponse httpServletResponse) { 133 logger.debug("[ changeView ]"); 134 135 EditParamForm editParamForm = (EditParamForm) actionForm; 136 137 activateParamsList(editParamForm, httpServletRequest); 139 140 setWebBrowserContent(httpServletRequest, httpServletResponse, editParamForm); 142 143 return actionMapping.getInputForward(); 144 } 145 146 147 156 public ActionForward reset(ActionMapping actionMapping, ActionForm actionForm, 157 HttpServletRequest httpServletRequest, 158 HttpServletResponse httpServletResponse) { 159 EditParamForm editParamForm = (EditParamForm) actionForm; 160 161 ClipperBean bean = SessionManager.getClipperBean(httpServletRequest); 163 164 int posUrl = Integer.parseInt(editParamForm.getSelectedUrl()); 166 UrlBean uBean = bean.getUrlBean(posUrl); 167 168 resetFormParamMapping(uBean); 170 171 logger.debug("[Param of url " + uBean.getAbsoluteURL() + " has beean reseted]"); 172 173 return actionMapping.findForward("editParams"); 174 } 175 176 177 186 public ActionForward resetAll(ActionMapping actionMapping, 187 ActionForm actionForm, 188 HttpServletRequest httpServletRequest, 189 HttpServletResponse httpServletResponse) { 190 EditParamForm editParamForm = (EditParamForm) actionForm; 191 192 logger.debug("[ Reset all params ]"); 193 194 ClipperBean bean = SessionManager.getClipperBean(httpServletRequest); 196 197 List uBeanList = bean.getUrlListBean(); 199 200 for (int i = 0; i < uBeanList.size(); i++) { 202 UrlBean uBean = (UrlBean) uBeanList.get(i); 203 resetFormParamMapping(uBean); 204 } 205 206 return actionMapping.findForward("editParams"); 207 } 208 209 210 219 public ActionForward validate(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { 220 EditParamForm editParamForm = (EditParamForm) actionForm; 221 222 ClipperBean bean = SessionManager.getClipperBean(httpServletRequest); 224 225 Map params = getParam(httpServletRequest); 227 228 int posUrl = Integer.parseInt(editParamForm.getSelectedUrl()); 230 UrlBean uBean = bean.getUrlBean(posUrl); 231 232 List fBeanList = uBean.getFormParamBeanList(); 234 for (int i = 0; i < fBeanList.size(); i++) { 235 FormParamBean fBean = (FormParamBean) fBeanList.get(i); 236 String mapping = ((String []) params.get("mapping"))[i]; 237 String visibility = ((String []) params.get("visibility"))[i]; 238 String update = ((String []) params.get("update"))[i]; 239 String useAsDefaultValue = ((String []) params.get("useAsDefaultValue"))[i]; 240 fBean.setMapping(mapping); 242 fBean.setVisibility(visibility); 243 fBean.setUpdate(update); 244 fBean.setUseAsDefaultValue(useAsDefaultValue); 245 } 246 247 logger.debug("[ Validate action performed ]"); 248 249 return actionMapping.findForward("editParams"); 250 } 251 252 253 260 private void setWebBrowserContent(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, 261 EditParamForm editParamForm) { 262 263 String position = editParamForm.getSelectedUrl(); 265 int posUrl = Integer.parseInt(position); 266 267 SessionManager.getWebBrowserForm(httpServletRequest).setPositionUrl(posUrl); 269 SessionManager.getWebBrowserForm(httpServletRequest).setShow(Constants.WEB_BROWSER_SHOW_EDIPARAMS); 270 if (editParamForm.getShowHTML() != null) { 271 if (editParamForm.getShowLabel() != null) { 273 logger.debug("Show HTML Label"); 274 SessionManager.getWebBrowserForm(httpServletRequest).setShow(Constants.WEB_BROWSER_SHOW_EDIPARAMS); 275 276 } 277 else { 279 logger.debug("Show HTML"); 280 SessionManager.getWebBrowserForm(httpServletRequest).setShow(Constants.WEB_BROWSER_SHOW_LAST_DOCUMENT); 281 282 } 283 } 284 } 285 286 287 292 private void checkEditableParamaters(HttpServletRequest request) { 293 ClipperBean cBean = SessionManager.getClipperBean(request); 294 if (cBean.getUrlListBean().size() < 2) { 295 ActionMessages actionErrors = new ActionMessages(); 296 ActionMessage e = new ActionMessage("information.noParameters"); 297 actionErrors.add("information.noParameters", e); 298 saveErrors(request, actionErrors); 299 } 300 } 301 302 303 308 private void resetFormParamMapping(UrlBean uBean) { 309 List fBeanList = uBean.getFormParamBeanList(); 310 for (int i = 0; i < fBeanList.size(); i++) { 311 FormParamBean fBean = (FormParamBean) fBeanList.get(i); 312 String name = fBean.getName(); 313 fBean.setMapping(name); 314 } 315 316 } 317 318 319 325 private void activateParamsList(EditParamForm editParamForm, 326 HttpServletRequest request) { 327 ClipperBean bean = SessionManager.getClipperBean(request); 328 String position = editParamForm.getSelectedUrl(); 329 330 if (position == null) { 332 position = "0"; 334 editParamForm.setSelectedUrl(position); 335 logger.debug("[ First url selected autommatically]"); 336 } 337 338 int posUrl = Integer.parseInt(position); 340 List fList = bean.getAllFormParam(posUrl); 341 if (fList.isEmpty()) { 342 logger.debug("[ Form Param list is empty ]"); 343 } 344 editParamForm.setActifFormParamsList(fList); 345 logger.debug("[ Actif Parameters List is set from first url at position " + 346 posUrl + " ]"); 347 348 List qList = bean.getAllQueryParam(posUrl); 350 if (qList.isEmpty()) { 351 logger.debug("[ Query param list is empty ]"); 352 } 353 354 editParamForm.setActifQueryParamsList(qList); 355 356 } 357 358 } 359 | Popular Tags |