taskData.putAll( task.getTaskInputDefinitions() ); taskData.putAll( task.getTaskOutputDefinitions() ); TaskFormModel formModel = new TaskFormModel( task.getProcessId(), task.getId().toString(), task.getName(), task.getFormName(), variables ); taskData.keySet().removeAll( task.getTaskOutputDefinitions().keySet() );
@Override protected void prepareContext( TaskRenderingSettings settings, BackendFormRenderingContext context ) { context.getRenderingContext().setRenderMode( !"InProgress".equals( settings.getTask().getStatus() ) ? RenderMode.READ_ONLY_MODE : RenderMode.EDIT_MODE ); }
@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 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 ); }
TaskDefinition taskInstance = new TaskDefinition(); taskInstance.setId( task.getId() ); taskInstance.setName( task.getName() ); taskInstance.setDescription( task.getDescription() ); taskInstance.setFormName( task.getFormName() ); taskInstance.setDeploymentId( registrationKey ); taskInstance.setProcessId( task.getProcessId() ); taskInstance.setStatus( task.getStatus() ); taskInstance.setTaskInputDefinitions( inputDefinitions.getTaskInputs() ); taskInstance.setTaskOutputDefinitions( outputDefinitions.getTaskOutputs() ); taskInstance.setOutputIncluded( true );
@Override protected String getFormName( TaskRenderingSettings settings ) { return settings.getTask().getFormName(); }
private FormRenderingSettings renderDefaultTaskForm( TaskDefinition taskInstance, Map<String, Object> inputs, Map<String, Object> outputs, KieServicesClient kieServicesClient ) { try { return defaultFormProvider.render( new TaskRenderingSettings( taskInstance, inputs, outputs, "", new ContentMarshallerContext( null, kieServicesClient.getClassLoader() ) ) ); } catch ( Exception ex ) { logger.warn( "Unable to generate default form for task '" + taskInstance.getName() + "': {}", ex.getMessage() ); } return null; }
@Override protected TaskRenderingSettings generateSettigns() { when( task.getFormName() ).thenReturn( "modify" ); Invoice invoice = new Invoice(); invoice.setClient( new Client( new Long( 1234 ), "John Snow", "Winterfell" ) ); invoice.setDate( new Date() ); invoice.setComments( "Everything was perfect" ); invoice.setTotal( 150.5 ); List<InvoiceLine> lines = new ArrayList<>(); lines.add( new InvoiceLine( "Really Dangerous Sword", 1, 100.5, 100.5 ) ); lines.add( new InvoiceLine( "A comfortable black jacket", 1, 50.0, 50.0 ) ); invoice.setLines( lines ); Map<String, Object> inputs = new HashMap<>(); inputs.put( "in_invoice", invoice ); return new TaskRenderingSettings( task, inputs, new HashMap<>(), getFormContent(), marshallerContext ); }