/**
* The contents of this file are subject to the OpenMRS Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://license.openmrs.org
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/
package org.openmrs.module.reporting.web.controller.portlet;
import org.openmrs.module.reporting.dataset.definition.DataSetDefinition;
import org.openmrs.module.reporting.dataset.definition.MultiParameterDataSetDefinition;
import org.openmrs.module.reporting.definition.DefinitionContext;
import org.openmrs.module.reporting.evaluation.parameter.Parameter;
import org.openmrs.module.reporting.evaluation.parameter.ParameterizableUtil;
import org.openmrs.util.OpenmrsClassLoader;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
import java.util.UUID;
public class MultiParameterIterationParameterEditPortletController extends ReportingPortletController {
protected void populateModel(HttpServletRequest request, Map<String, Object> model) {
Thread.currentThread().setContextClassLoader(OpenmrsClassLoader.getInstance());
model.put("portletUUID", UUID.randomUUID().toString().replace("-", ""));
int iteration = Integer.parseInt(request.getParameter("iteration"));
String paramName = request.getParameter("paramName");
String dsdUuid = (String)model.get("dsdUuid");
DataSetDefinition dsd = DefinitionContext.getDataSetDefinitionService().getDefinitionByUuid(dsdUuid);
MultiParameterDataSetDefinition pdsd = (MultiParameterDataSetDefinition)dsd;
model.put("dsdUuid", pdsd.getUuid());
model.put("dsd", pdsd);
model.put("iteration", iteration);
Object paramValue = pdsd.getIterations().get(iteration).get(paramName);
model.put("param", pdsd.getBaseDefinition().getParameter(paramName));
model.put("paramValue", paramValue);
model.put("allowedParams", ParameterizableUtil.getAllowedMappings(pdsd, pdsd.getBaseDefinition()).get(paramName));
Parameter mappedParam = null;
if (pdsd.getIterations().get(iteration).get(pdsd.getBaseDefinition().getParameter(paramName)) instanceof Parameter) {
mappedParam = (Parameter) pdsd.getIterations().get(iteration).get(pdsd.getBaseDefinition().getParameter(paramName));
}
model.put("mappedParam", mappedParam);
model.putAll(ParameterizableUtil.getCategorizedMappings(dsd, pdsd.getBaseDefinition(), pdsd.getIterations().get(iteration)));
}
}