package org.openmrs.module.reporting.web.widget.handler;
import org.openmrs.annotation.Handler;
import org.openmrs.api.context.Context;
import org.openmrs.module.htmlwidgets.web.WidgetConfig;
import org.openmrs.module.htmlwidgets.web.handler.CodedHandler;
import org.openmrs.module.htmlwidgets.web.html.CodedWidget;
import org.openmrs.module.htmlwidgets.web.html.Option;
import org.openmrs.module.reporting.indicator.dimension.Dimension;
import org.openmrs.module.reporting.indicator.dimension.service.DimensionService;
import org.openmrs.module.reporting.indicator.service.IndicatorService;
@Handler(supports={Dimension.class}, order=50)
public class DimensionHandler extends CodedHandler {
/**
* @see CodedHandler#populateOptions(WidgetConfig, CodedWidget)
*/
@Override
public void populateOptions(WidgetConfig config, CodedWidget widget) {
for (Dimension d : Context.getService(DimensionService.class).getAllDefinitions(false)) {
widget.addOption(new Option(d.getUuid(), d.getName(), null, d), config);
}
}
/**
* @see WidgetHandler#parse(String, Class)
*/
@Override
public Object parse(String input, Class<?> type) {
return Context.getService(IndicatorService.class).getDefinitionByUuid(input);
}
}