/** * Copyright (C) 2012 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.formModeler.core.processing.fieldHandlers; import org.jbpm.formModeler.api.model.FieldType; import org.jbpm.formModeler.core.FieldHandlersManager; import org.jbpm.formModeler.core.processing.FormProcessingServices; import org.jbpm.formModeler.service.LocaleManager; import org.jbpm.formModeler.service.bb.mvc.taglib.formatter.FormatterException; import org.jbpm.formModeler.api.model.Field; import org.jbpm.formModeler.api.model.Form; import org.apache.commons.lang3.StringUtils; import javax.enterprise.context.ApplicationScoped; import javax.inject.Named; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; @ApplicationScoped @Named("DateFieldHandlerFormatter") public class DateFieldHandlerFormatter extends DefaultFieldHandlerFormatter { public void service(HttpServletRequest request, HttpServletResponse response) throws FormatterException { FieldHandlerParametersReader paramsReader = new FieldHandlerParametersReader(request); Field field = paramsReader.getCurrentField(); Form form = paramsReader.getCurrentForm(); String namespace = paramsReader.getCurrentNamespace(); Object value = paramsReader.getCurrentFieldValue(); String fieldName = paramsReader.getCurrentFieldName(); setDefaultAttributes(field, form, namespace); Boolean isReadonly = paramsReader.isFieldReadonly(); if (isReadonly) setAttribute("readonly", isReadonly); FieldHandlersManager fieldHandlersManager = FormProcessingServices.lookup().getFieldHandlersManager(); DateFieldHandler dateFieldHandler; if (StringUtils.isEmpty(field.getBag())) dateFieldHandler = (DateFieldHandler) fieldHandlersManager.getHandler(field.getFieldType()); else { FieldType bagType = getFieldTypeManager().getTypeByClass(field.getBag()); dateFieldHandler = (DateFieldHandler) fieldHandlersManager.getHandler(bagType); } String inputPattern = dateFieldHandler.getDefaultPattern(); if (!StringUtils.isEmpty(dateFieldHandler.getDefaultPatterTimeSuffix())) { inputPattern += " " + dateFieldHandler.getDefaultPatterTimeSuffix(); } SimpleDateFormat sdf = new SimpleDateFormat(inputPattern, LocaleManager.currentLocale()); String dateValue = ""; if (value != null) dateValue = sdf.format(value); setAttribute("uid", namespaceManager.squashInputName(fieldName)); setAttribute("name", fieldName); setAttribute("value", dateValue); setAttribute("inputPattern", dateFieldHandler.getDefaultJQueryPattern()); setAttribute("timePattern", dateFieldHandler.getDefaultPatterTimeSuffix()); setAttribute("onChangeScript", field.getOnChangeScript()); renderFragment("output"); } }