/** * 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.web.attribute.handler; import java.text.ParseException; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.openmrs.api.context.Context; import org.openmrs.attribute.InvalidAttributeValueException; import org.openmrs.attribute.handler.DateAttributeHandler; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; /** * A fieldgen version of a {@link DateAttributeHandler} that uses the standard Date picker widget. * @since 1.9 */ @Component @Order(0) public class DateFieldGenAttributeHandler extends DateAttributeHandler implements FieldGenAttributeHandler<Date> { /** * @see org.openmrs.web.attribute.handler.FieldGenAttributeHandler#getWidgetName() */ @Override public String getWidgetName() { return "java.util.Date"; } /** * @see org.openmrs.web.attribute.handler.FieldGenAttributeHandler#getWidgetConfiguration() */ @Override public Map<String, Object> getWidgetConfiguration() { return null; } /** * @see org.openmrs.web.attribute.handler.FieldGenAttributeHandler#getValue(javax.servlet.http.HttpServletRequest, java.lang.String) */ @Override public Date getValue(HttpServletRequest request, String formFieldName) { String stringVal = request.getParameter(formFieldName); if (StringUtils.isBlank(stringVal)) { return null; } else { try { Date date = Context.getDateFormat().parse(stringVal); super.validate(date); return date; } catch (ParseException ex) { throw new InvalidAttributeValueException("general.invalid", ex); } } } }