@Override protected String getFormName( TaskRenderingSettings settings ) { return settings.getTask().getFormName(); }
@Override protected Map<String, Object> getOutputValues( Map<String, Object> values, FormDefinition form, TaskRenderingSettings settings ) { if ( isValid( form ) ) { TaskDefinition task = settings.getTask(); // Removing task inputs task.getTaskInputDefinitions().keySet().forEach( key -> { if ( !task.getTaskOutputDefinitions().containsKey( key ) ) { values.remove( key ); } } ); return values; } throw new IllegalArgumentException( "Form not valid for task" ); }
@Override public StaticHTMLFormRenderingSettings render( TaskRenderingSettings settings ) { Map<String, Object> renderContext = new HashMap<String, Object>(); renderContext.put( "task", settings.getTask() ); renderContext.put( "marshallerContext", settings.getMarshallerContext() ); Map<String, Object> inputs = settings.getInputs(); if ( inputs != null && !inputs.isEmpty() ) { renderContext.put( "inputs", inputs ); renderContext.putAll( inputs ); } Map<String, Object> outputs = settings.getOutputs(); if ( outputs != null && !outputs.isEmpty() ) { renderContext.put( "outputs", outputs ); renderContext.putAll( outputs ); settings.getTask().setOutputIncluded( true ); } return renderForm( settings.getTask().getName(), getTaskTemplateInputStream( settings ), renderContext ); }
@Override protected Map<String, Object> generateRawFormData( TaskRenderingSettings settings, FormDefinition form ) { final Map<String, Object> formData = new HashMap<>(); if ( isValid( form ) ) { Map<String, Object> inputs = settings.getInputs(); Map<String, Object> outputs = settings.getOutputs(); formData.putAll( inputs ); if ( settings.getTask().isOutputIncluded() ) { formData.putAll( outputs ); } } return formData; }
@Override protected void prepareContext( TaskRenderingSettings settings, BackendFormRenderingContext context ) { context.getRenderingContext().setRenderMode( !"InProgress".equals( settings.getTask().getStatus() ) ? RenderMode.READ_ONLY_MODE : RenderMode.EDIT_MODE ); }
List<JBPMVariable> variables = new ArrayList<>(); TaskDefinition task = settings.getTask();