@Override public Form getForm(String ctxUID) { FormRenderContext renderContext = formRenderContextManager.getRootContext(ctxUID); if (renderContext != null) { return renderContext.getForm(); } return null; }
@Override public Form getForm( String ctxUID ) { FormRenderContext renderContext = formRenderContextManager.getRootContext( ctxUID ); if ( renderContext != null ) return renderContext.getForm(); return null; }
@Override public Form getFormByPath(String ctxUID, String formPath) { FormRenderContext renderContext = formRenderContextManager.getRootContext(ctxUID); if (renderContext != null) { try { Object form = renderContext.getContextForms().get(formPath); if (form != null) { if (form instanceof Form) { return (Form) form; } else if (form instanceof String) { Form result = formSerializationManager.loadFormFromXML((String) form); renderContext.getContextForms().put(formPath, result); return result; } } } catch (Exception e) { log.warn("Error getting form {} from context {}: {}", formPath, ctxUID, e); } } return null; }
@Override public Form getFormById(String ctxUID, long formId) { FormRenderContext renderContext = formRenderContextManager.getRootContext(ctxUID); if (renderContext != null) { try {
protected void initContext() { context = new FormRenderContext(CTX_UID, form, inputs, outputs); when(formRenderContextManager.getFormRenderContext(anyString())).thenReturn(context); when(formRenderContextManager.getRootContext(anyString())).thenReturn(context); } }
@Override public Object persistFormHolder(Form form, String namespace, Map<String, Object> mapToPersist, DataHolder holder, Object loadedObject) throws Exception { if (holder == null) return null; if (loadedObject == null) { FormRenderContext context = formRenderContextManager.getRootContext(namespace); loadedObject = holder.createInstance(context); } for (Iterator it = mapToPersist.keySet().iterator(); it.hasNext();) { String fieldName = (String) it.next(); Field field = form.getField(fieldName); if (field != null && holder.isAssignableForField(field)) { String bindingString = field.getOutputBinding(); if (StringUtils.isEmpty(bindingString)) continue; bindingString = bindingExpressionUtil.extractBindingExpression(bindingString); String holderFieldId = bindingString.substring(holder.getOuputId().length() + 1); Object value = persistField(field, mapToPersist, holder, namespace); holder.writeValue(loadedObject, holderFieldId, value); } } return loadedObject; }
@Override public Form getFormById( String ctxUID, long formId ) { FormRenderContext renderContext = formRenderContextManager.getRootContext( ctxUID ); if ( renderContext != null ) { try { if ( renderContext.getForm().getId().equals( new Long( formId ) ) ) { return renderContext.getForm(); } Map forms = formManagerService.getAllFormsByDeployment( renderContext.getDeploymentId() ); if ( forms == null ) forms = renderContext.getContextForms(); String header = formSerializationManager.generateHeaderFormFormId( formId ); for ( Iterator it = forms.keySet().iterator(); it.hasNext(); ) { String key = ( String ) it.next(); Object form = forms.get( key ); if ( form instanceof Form ) { if ( ( ( Form ) form ).getId().equals( formId ) ) { return ( Form ) form; } } else if ( form instanceof String && form.toString().trim().startsWith( header ) ) { Form result = formSerializationManager.loadFormFromXML( ( String ) form ); renderContext.getContextForms().put( key, result ); return result; } } } catch ( Exception e ) { log.warn( "Error getting form {} from context {}: {}", formId, ctxUID, e ); } } return null; }
@Override public Form getFormByPath( String ctxUID, String formPath ) { FormRenderContext renderContext = formRenderContextManager.getRootContext( ctxUID ); if ( renderContext != null ) { try { Object form = formManagerService.getFormByKey( renderContext.getDeploymentId(), formPath ); if (form == null) form = renderContext.getContextForms().get( formPath ); if ( form != null ) { if ( form instanceof Form ) { return (Form) form; } else if ( form instanceof String ) { Form result = formSerializationManager.loadFormFromXML( (String) form ); renderContext.getContextForms().put( formPath, result ); return result; } } } catch ( Exception e ) { log.warn( "Error getting form {} from context {}: {}", formPath, ctxUID, e ); } } return null; }
public boolean canProcess(FormProcessingContext context) { //WM workaround to avoid formulas calculation null pointer when the task has been closed if (formRenderContextManager.getRootContext(context.getNamespace()) == null) return false; if (!context.isFull() && context.getType() != getSupportedContextType()) return false; if (StringUtils.isEmpty(context.getFormMode()) || getSupportedFormModes() == null || getSupportedFormModes().length == 0) return true; return Arrays.asList(getSupportedFormModes()).contains(context.getFormMode()); }
public void renderShow(HttpServletRequest request) throws FormatterException { FieldHandlerParametersReader paramsReader = new FieldHandlerParametersReader(request); Field field = paramsReader.getCurrentField(); if (StringUtils.isEmpty(field.getCustomFieldType())) return; Object value = paramsReader.getCurrentFieldValue(); String fieldName = paramsReader.getCurrentFieldName(); SelectValuesProvider provider = (SelectValuesProvider) CDIBeanLocator.getBeanByNameOrType(field.getCustomFieldType()); Map<String, String> fieldRange = provider.getSelectOptions(field, (String)value, formRenderContextManager.getRootContext(fieldName), getLocale()); if (fieldRange == null || fieldRange.isEmpty()) return; String text = fieldRange.get(value); if (StringUtils.isEmpty(text)) return; setAttribute("value", text); renderFragment("output"); }
public void renderShow(HttpServletRequest request) throws FormatterException { FieldHandlerParametersReader paramsReader = new FieldHandlerParametersReader(request); Field field = paramsReader.getCurrentField(); if (StringUtils.isEmpty(field.getCustomFieldType())) return; Object value = paramsReader.getCurrentFieldValue(); String fieldName = paramsReader.getCurrentFieldName(); SelectValuesProvider provider = (SelectValuesProvider) CDIBeanLocator.getBeanByNameOrType(field.getCustomFieldType()); Map<String, String> fieldRange = provider.getSelectOptions(field, (String)value, formRenderContextManager.getRootContext(fieldName), getLocale()); if (fieldRange == null || fieldRange.isEmpty()) return; String text = fieldRange.get(value); if (StringUtils.isEmpty(text)) return; setAttribute("value", text); renderFragment("output"); }
Map<String, String> fieldRange = provider.getSelectOptions(field, (String)value, formRenderContextManager.getRootContext(fieldName), getLocale());
public void renderInput(HttpServletRequest request) throws FormatterException { FieldHandlerParametersReader paramsReader = new FieldHandlerParametersReader(request); Field field = paramsReader.getCurrentField(); if (StringUtils.isEmpty(field.getCustomFieldType())) return; Object value = paramsReader.getCurrentFieldValue(); String fieldName = paramsReader.getCurrentFieldName(); SelectValuesProvider provider = (SelectValuesProvider) CDIBeanLocator.getBeanByNameOrType(field.getCustomFieldType()); Map<String, String> fieldRange = provider.getSelectOptions(field, (String)value, formRenderContextManager.getRootContext(fieldName), getLocale()); if (fieldRange == null || fieldRange.isEmpty()) return; String uid = namespaceManager.squashInputName(fieldName); Boolean isReadonly = paramsReader.isFieldReadonly() || field.getReadonly(); String keyValueStr = String.valueOf(value); setAttribute("name", fieldName); setAttribute("uid", uid); setAttribute("value", keyValueStr); if (isReadonly) setAttribute("readonly", isReadonly); renderFragment("outputStart"); if (field.getVerticalAlignment()) renderVertical(field, fieldName, paramsReader.isFieldReadonly(), uid, fieldRange, StringUtils.defaultString((String) value)); else renderHorizontal(field, fieldName, paramsReader.isFieldReadonly(), uid, fieldRange, StringUtils.defaultString((String) value)); renderFragment("outputEnd"); }