public Form getForm() { return renderContext.getForm(); }
public Form getForm() { return ctx == null ? null : ctx.getForm(); }
@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 void clear(FormRenderContext context) { clear(context.getForm(), context.getUID()); }
protected FormStatus getContextFormStatus(FormRenderContext context) { return formStatusManager.getFormStatus(context.getForm(), context.getUID()); }
protected FormStatus createContextFormStatus(FormRenderContext context) throws Exception { Map<String, Object> loadedObjects = new HashMap<String, Object>(); Map values = readValuesToLoad(context.getForm(), context.getInputData(), context.getOutputData(), loadedObjects, context.getUID()); return getFormStatus(context.getForm(), context.getUID(), values, loadedObjects); }
@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; }
public void persist(FormRenderContext context) throws Exception { Form form = context.getForm(); Map mapToPersist = getFilteredMapRepresentationToPersist(form, context.getUID()); Map<String, Object> result = context.getOutputData(); for (Iterator it = mapToPersist.keySet().iterator(); it.hasNext();) { String fieldName = (String) it.next(); Field field = form.getField(fieldName); if (field != null) { DataHolder holder = form.getDataHolderByField(field); String bindingString = field.getOutputBinding(); if (StringUtils.isEmpty(bindingString)) continue; Object value = persistField(field, mapToPersist, holder, context.getUID()); bindingString = bindingExpressionUtil.extractBindingExpression(bindingString); boolean simpleBinding = StringUtils.isEmpty(bindingString) || bindingString.indexOf("/") == -1; if (holder == null || simpleBinding) result.put(bindingString, value); else { String holderFieldId = bindingString.substring((holder.getOuputId() + "/").length()); Object holderOutputValue = result.get(holder.getOuputId()); if (holderOutputValue == null || !holder.isAssignableValue(holderOutputValue)) { holderOutputValue = context.getInputData().get(holder.getInputId()); if (holderOutputValue == null || !holder.isAssignableValue(holderOutputValue)) holderOutputValue = holder.createInstance(context); result.put(holder.getOuputId(), holderOutputValue); } holder.writeValue(holderOutputValue, holderFieldId, value); } } } }
public void actionSubmitForm(CommandRequest request) { String ctxUID = request.getRequestObject().getParameter("ctxUID"); if (ctx == null || ctx.getUID().equals(ctxUID)) ctx = formRenderContextManager.getFormRenderContext(ctxUID); if (ctx == null) return; try { Form form = ctx.getForm(); formProcessor.setValues(form, ctxUID, request.getRequestObject().getParameterMap(), request.getFilesByParamName()); FormStatusData fsd = formProcessor.read(ctxUID); ctx.setErrors(fsd.getWrongFields().size()); String persist = request.getRequestObject().getParameter("persistForm"); if (fsd.isValid()) { ctx.setSubmit(true); if (Boolean.parseBoolean(persist)) formRenderContextManager.persistContext(ctx); } formRenderContextManager.fireContextSubmit(new FormSubmittedEvent(new FormRenderContextTO(ctx))); } catch (Exception e) { log.error("Error submitting form: ", e); formRenderContextManager.fireContextSubmitError(new FormSubmitFailEvent(new FormRenderContextTO(ctx), e.getMessage())); } }
}); when(processor.getFilteredMapRepresentationToPersist(context.getForm(), context.getUID())).thenReturn(modifiedValues);
@Test public void testPersistDataWithoutInputs() throws Exception { initContext(); FormStatusData data = processor.read(CTX_UID); assertNotNull(data); assertEquals(1, data.getCurrentValues().size()); Object actualHobbies = data.getCurrentValue(HOBBIES_FIELD); assertNotNull(actualHobbies); assertTrue(actualHobbies instanceof Map[]); assertEquals(0, ((Map[]) actualHobbies).length); when(processor.getFilteredMapRepresentationToPersist(context.getForm(), context.getUID())).thenReturn(generateExpectedValuesMap()); processor.persist(CTX_UID); assertNotNull(context.getOutputData().get(HOBBIES_FIELD)); assertTrue(context.getOutputData().get(HOBBIES_FIELD) instanceof List); List<Hobby> resultHobbies = (List<Hobby>) context.getOutputData().get(HOBBIES_FIELD); assertFalse(resultHobbies.isEmpty()); assertEquals(expectedHobbies.size(), resultHobbies.size()); assertEquals(expectedHobbies, resultHobbies); }
hobby2Map.get(LEVEL_FIELD)); when(processor.getFilteredMapRepresentationToPersist(context.getForm(), context.getUID())).thenReturn(generateExpectedValuesMap());
@Test public void testPersistComplexDataWithoutInputs() throws Exception { initContext(); FormStatusData data = processor.read(CTX_UID); assertNotNull(data); Object name = data.getCurrentValue(NAME_FIELD); assertNull(name); Object surname = data.getCurrentValue(SURNAME_FIELD); assertNull(surname); Object birthday = data.getCurrentValue(BIRTHDAY_FIELD); assertNull(birthday); Object address = data.getCurrentValue(ADDRESS_FIELD); assertNotNull(address); assertTrue(address instanceof Map); assertTrue(((Map) address).isEmpty()); Object hobbies = data.getCurrentValue(HOBBIES_FIELD); assertNotNull(hobbies); assertTrue(hobbies instanceof Map[]); assertEquals(0, ((Map[]) hobbies).length); when(processor.getFilteredMapRepresentationToPersist(context.getForm(), context.getUID())).thenReturn(generateExpectedValuesMap()); processor.persist(CTX_UID); assertNotNull(context.getOutputData().get(PERSON_DATAHOLDER)); assertTrue(context.getOutputData().get(PERSON_DATAHOLDER) instanceof Person); Person person = (Person) context.getOutputData().get(PERSON_DATAHOLDER); assertEquals(expectedPerson, person); }
hobbyLevel); when(processor.getFilteredMapRepresentationToPersist(context.getForm(), context.getUID())).thenReturn(generateExpectedValuesMap());