List of usage examples for org.springframework.web.bind ServletRequestUtils getRequiredStringParameters
public static String[] getRequiredStringParameters(ServletRequest request, String name) throws ServletRequestBindingException
From source file:org.openmrs.module.sync.web.controller.SettingsController.java
@Override protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse reponse, Object obj, BindException errors) throws Exception { log.debug("in processFormSubmission"); ModelAndView result = new ModelAndView(new RedirectView(getSuccessView())); if (!Context.isAuthenticated()) throw new APIAuthenticationException("Not authenticated!"); HttpSession httpSession = request.getSession(); String success = ""; String error = ""; MessageSourceAccessor msa = getMessageSourceAccessor(); String action = ServletRequestUtils.getStringParameter(request, "action", ""); log.debug("action is " + action); if ("saveGeneral".equals(action)) { String serverName = ServletRequestUtils.getStringParameter(request, "serverName", ""); String adminEmail = ServletRequestUtils.getStringParameter(request, "adminEmail", ""); Context.getService(SyncService.class).saveServerName(serverName); Context.getService(SyncService.class).saveAdminEmail(adminEmail); String[] startedParams = request.getParameterValues("started"); boolean started = false; if (startedParams != null) { for (String startedParam : startedParams) { if (startedParam.equals("true")) started = true;//from ww w .jav a 2 s. c o m } } Integer repeatInterval = ServletRequestUtils.getIntParameter(request, "repeatInterval", 0) * 60; if (started) { started = false; repeatInterval = null; error = msa.getMessage("NzeyiSynchronizationConfig.server.error.disabledSyncSchedule"); } if (started && repeatInterval < 1) error = msa.getMessage("SynchronizationConfig.server.error.invalidRepeat"); if (error.length() == 0) { RemoteServer parent = Context.getService(SyncService.class).getParentServer(); if (parent != null) { if (parent.getServerId() != null) { Integer serverId = parent.getServerId(); TaskDefinition serverSchedule = null; Collection<TaskDefinition> tasks = Context.getSchedulerService().getRegisteredTasks(); if (tasks != null) { for (TaskDefinition task : tasks) { if (task.getTaskClass().equals(SyncConstants.SCHEDULED_TASK_CLASS)) { if (serverId.toString().equals( task.getProperty(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID))) { serverSchedule = task; } else { log.warn("not equal comparing " + serverId + " to " + task .getProperty(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID)); } } else { log.warn("not equal comparing " + task.getTaskClass() + " to " + SyncConstants.SCHEDULED_TASK_CLASS); } } } else { log.warn("tasks is null"); } Map<String, String> props = new HashMap<String, String>(); props.put(SyncConstants.SCHEDULED_TASK_PROPERTY_SERVER_ID, serverId.toString()); if (serverSchedule != null) { if (log.isInfoEnabled()) log.info("Sync scheduled task exists, and started is " + started + " and interval is " + repeatInterval); try { Context.getSchedulerService().shutdownTask(serverSchedule); } catch (Exception e) { log.warn( "Sync task had run wild, couldn't stop it because it wasn't really running", e); } serverSchedule.setStarted(started); serverSchedule.setRepeatInterval((long) repeatInterval); serverSchedule.setStartOnStartup(started); serverSchedule.setProperties(props); if (started) { serverSchedule.setStartTime(new Date()); } Context.getSchedulerService().saveTask(serverSchedule); if (started) { Context.getSchedulerService().scheduleTask(serverSchedule); } } else { if (log.isInfoEnabled()) log.info("Sync scheduled task does not exists, and started is " + started + " and interval is " + repeatInterval); if (started) { serverSchedule = new TaskDefinition(); serverSchedule.setName(parent.getNickname() + " " + msa.getMessage("SynchronizationConfig.server.scheduler")); serverSchedule.setDescription( msa.getMessage("SynchronizationConfig.server.scheduler.description")); serverSchedule.setRepeatInterval((long) repeatInterval); serverSchedule.setStartTime(new Date()); serverSchedule.setTaskClass(SyncConstants.SCHEDULED_TASK_CLASS); serverSchedule.setStarted(started); serverSchedule.setStartOnStartup(started); serverSchedule.setProperties(props); Context.getSchedulerService().saveTask(serverSchedule); Context.getSchedulerService().scheduleTask(serverSchedule); } } } } success = msa.getMessage("SynchronizationConfig.server.saved"); } } else if ("deleteServer".equals(action)) { // check to see if the user is trying to delete a server, react // accordingly Integer serverId = ServletRequestUtils.getIntParameter(request, "serverId", 0); String serverName = "Server " + serverId.toString(); SyncService ss = Context.getService(SyncService.class); if (serverId > 0) { RemoteServer deleteServer = ss.getRemoteServer(serverId); serverName = deleteServer.getNickname(); try { ss.deleteRemoteServer(deleteServer); Object[] args = { serverName }; success = msa.getMessage("SynchronizationConfig.server.deleted", args); } catch (Exception e) { Object[] args = { serverName }; error = msa.getMessage("SynchronizationConfig.server.deleteFailed", args); } } else { error = msa.getMessage("SynchronizationConfig.server.notDeleted"); } } else if ("saveClasses".equals(action)) { String[] classIdsTo = ServletRequestUtils.getRequiredStringParameters(request, "toDefault"); String[] classIdsFrom = ServletRequestUtils.getRequiredStringParameters(request, "fromDefault"); Set<String> idsTo = new HashSet<String>(); Set<String> idsFrom = new HashSet<String>(); if (classIdsTo != null) idsTo.addAll(Arrays.asList(classIdsTo)); if (classIdsFrom != null) idsFrom.addAll(Arrays.asList(classIdsFrom)); List<SyncClass> syncClasses = Context.getService(SyncService.class).getSyncClasses(); if (syncClasses != null) { // log.warn("SYNCCLASSES IS SIZE: " + syncClasses.size()); for (SyncClass syncClass : syncClasses) { if (idsTo.contains(syncClass.getSyncClassId().toString())) syncClass.setDefaultSendTo(true); else syncClass.setDefaultSendTo(false); if (idsFrom.contains(syncClass.getSyncClassId().toString())) syncClass.setDefaultReceiveFrom(true); else syncClass.setDefaultReceiveFrom(false); Context.getService(SyncService.class).saveSyncClass(syncClass); } } success = msa.getMessage("SynchronizationConfig.classes.saved"); } if (!success.equals("")) httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR, success); if (!error.equals("")) httpSession.setAttribute(WebConstants.OPENMRS_ERROR_ATTR, error); return result; }