public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { LazyValidatorForm frm = (LazyValidatorForm) actionForm; if (formCanceled(frm)) { return actionMapping.findForward(SUCCESS); } resetFocusControl(frm, CANCEL); ActionMessages msgs = new ActionMessages(); if (!formSaved(frm)) { setFormMode(frm, ((String) httpServletRequest.getParameter(BROWSE_ACTION))); setFormId(frm, (String) httpServletRequest.getParameter(BROWSE_ID)); try { LoginInfo loginInfo = getLoginInfo(httpServletRequest); if (!loginInfo.userHasAccess(getFormId(frm), getFormMode(frm))) { if (isFormInModifyMode(frm) && loginInfo.userHasAccess(getFormId(frm), Constants.ActionType.ENQUERY)) { setFormMode(frm, Constants.ActionType.ENQUERY); } else { throw new Exception(INVALID_ACCESS); } } if (!isFormInAddMode(frm)) { String formKey = (String) httpServletRequest.getParameter(BROWSE_KEY); DeathReasonGroupInfo inf = Misc.getDeathReasonGroupDetails(Short.parseShort(formKey)); frm.set(DEATH_REASON_GROUP_CODE, Long.toString(inf.getReasonCode())); frm.set(DEATH_REASON_GROUP_DESC, inf.getReasonDesc()); if (inf.isInactive()) { frm.set(CODE_ACTIVE_FLAG, "on"); } } if (isFormInAddMode(frm)) { resetFocusControl(frm, DEATH_REASON_GROUP_CODE); } else if (isFormInModifyMode(frm)) { resetFocusControl(frm, DEATH_REASON_GROUP_DESC); } } catch (Exception ex) { addError(msgs, ex.getMessage()); saveErrors(httpServletRequest, msgs); } return actionMapping.findForward(EDIT); } else { DeathReasonGroupInfo inf = new DeathReasonGroupInfo(); String deathReasonGroupCode = ((String) frm.get(DEATH_REASON_GROUP_CODE)).trim(); resetFocusControl(frm, ""); if (Utils.isEmpty(deathReasonGroupCode)) { addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "كد"); setFocusControl(frm, DEATH_REASON_GROUP_CODE); } else if (!Utils.isValidNotZeroNumber(deathReasonGroupCode, 2)) { addError(msgs, FIELD_INVALID, "كد"); setFocusControl(frm, DEATH_REASON_GROUP_CODE); } else { inf.setReasonCode(Short.parseShort(deathReasonGroupCode)); } if (!isFormInDeleteMode(frm)) { String deathReasonGroupDesc = Utils.charVal((String) frm.get(DEATH_REASON_GROUP_DESC)); frm.set(DEATH_REASON_GROUP_DESC, deathReasonGroupDesc); if (Utils.isEmpty(deathReasonGroupDesc)) { addError(msgs, FIELD_CAN_NOT_BE_EMPTY, "شرح"); setFocusControl(frm, DEATH_REASON_GROUP_DESC); } else if (deathReasonGroupDesc.length() > 50) { addError(msgs, FIELD_INVALID, "شرح"); setFocusControl(frm, DEATH_REASON_GROUP_DESC); } else { inf.setReasonDesc(deathReasonGroupDesc); } if (frm.get(CODE_ACTIVE_FLAG) == null) { inf.setCodeActiveFlag(Constants.CodeActiveFlag.ACTIVE); } else { inf.setCodeActiveFlag(Constants.CodeActiveFlag.INACTIVE); } } if (!msgs.isEmpty()) { saveErrors(httpServletRequest, msgs); return actionMapping.findForward(EDIT); } resetFocusControl(frm, CANCEL); try { Misc.saveDeathReasonGroup(getFormMode(frm), inf); httpServletRequest.setAttribute(BROWSE_KEY, inf.getKey()); return actionMapping.findForward(SUCCESS); } catch (Exception ex) { resetFocusControl(frm, CANCEL); addError(msgs, ex.getMessage()); saveErrors(httpServletRequest, msgs); return actionMapping.findForward(EDIT); } } }