Search in sources :

Example 1 with TextPropertyDefinition

use of org.activiti.workflow.simple.definition.form.TextPropertyDefinition in project Activiti by Activiti.

the class FormPopupWindow method getFormPropertyDefinition.

protected FormPropertyDefinition getFormPropertyDefinition(Item item) {
    String type = (String) ((ComboBox) item.getItemProperty(PropertyTable.ID_PROPERTY_TYPE).getValue()).getValue();
    FormPropertyDefinition result = null;
    if (type.equals("number")) {
        result = new NumberPropertyDefinition();
    } else if (type.equals("date")) {
        result = new DatePropertyDefinition();
    } else {
        result = new TextPropertyDefinition();
    }
    // Set generic properties
    result.setName((String) item.getItemProperty(PropertyTable.ID_PROPERTY_NAME).getValue());
    result.setMandatory((Boolean) ((CheckBox) item.getItemProperty(PropertyTable.ID_PROPERTY_REQUIRED).getValue()).getValue());
    return result;
}
Also used : NumberPropertyDefinition(org.activiti.workflow.simple.definition.form.NumberPropertyDefinition) TextPropertyDefinition(org.activiti.workflow.simple.definition.form.TextPropertyDefinition) CheckBox(com.vaadin.ui.CheckBox) FormPropertyDefinition(org.activiti.workflow.simple.definition.form.FormPropertyDefinition) DatePropertyDefinition(org.activiti.workflow.simple.definition.form.DatePropertyDefinition)

Example 2 with TextPropertyDefinition

use of org.activiti.workflow.simple.definition.form.TextPropertyDefinition in project Activiti by Activiti.

the class AlfrescoTextPropertyConverter method convertProperty.

@Override
public void convertProperty(M2Type contentType, String formSet, Form form, FormPropertyDefinition propertyDefinition, WorkflowDefinitionConversion conversion) {
    TextPropertyDefinition textDefinition = (TextPropertyDefinition) propertyDefinition;
    String propertyName = getPropertyName(textDefinition, conversion);
    // Add to content model
    M2Property property = new M2Property();
    property.setMandatory(new M2Mandatory(textDefinition.isMandatory()));
    property.setName(propertyName);
    property.setPropertyType(AlfrescoConversionConstants.PROPERTY_TYPE_TEXT);
    M2Model model = AlfrescoConversionUtil.getContentModel(conversion);
    M2Aspect aspect = model.getAspect(propertyName);
    if (aspect != null) {
        // do this here
        if (aspect.getProperties().isEmpty()) {
            aspect.getProperties().add(property);
        }
        contentType.getMandatoryAspects().add(propertyName);
    } else {
        contentType.getProperties().add(property);
    }
    // Add form configuration
    form.getFormFieldVisibility().addShowFieldElement(propertyName);
    FormField formField = form.getFormAppearance().addFormField(propertyName, propertyDefinition.getName(), formSet);
    if (!textDefinition.isWritable()) {
        // Read-only properties should always be rendered using an info-template
        FormFieldControl control = new FormFieldControl();
        control.setTemplate(AlfrescoConversionConstants.FORM_READONLY_TEMPLATE);
        formField.setControl(control);
    } else if (textDefinition.isMultiline()) {
        // In case the property is multi-lined, use an alternative control template
        FormFieldControl control = new FormFieldControl();
        control.setTemplate(AlfrescoConversionConstants.FORM_MULTILINE_TEXT_TEMPLATE);
        formField.setControl(control);
    } else {
        FormFieldControl control = new FormFieldControl();
        control.setTemplate(AlfrescoConversionConstants.FORM_TEXT_TEMPLATE);
        formField.setControl(control);
    }
    if (!form.isStartForm()) {
        // Add to output properties, if needed
        addOutputProperty(propertyDefinition, propertyName, contentType.getName(), conversion);
    }
}
Also used : TextPropertyDefinition(org.activiti.workflow.simple.definition.form.TextPropertyDefinition) M2Property(org.activiti.workflow.simple.alfresco.model.M2Property) FormFieldControl(org.activiti.workflow.simple.alfresco.model.config.FormFieldControl) M2Model(org.activiti.workflow.simple.alfresco.model.M2Model) M2Aspect(org.activiti.workflow.simple.alfresco.model.M2Aspect) M2Mandatory(org.activiti.workflow.simple.alfresco.model.M2Mandatory) FormField(org.activiti.workflow.simple.alfresco.model.config.FormField)

Example 3 with TextPropertyDefinition

use of org.activiti.workflow.simple.definition.form.TextPropertyDefinition in project Activiti by Activiti.

the class WorkflowDefinitionConversionTest method testTaskListenerForOutgoingProperties.

@Test
public void testTaskListenerForOutgoingProperties() throws Exception {
    WorkflowDefinition definition = new WorkflowDefinition();
    definition.setId("process");
    HumanStepDefinition humanStep = new HumanStepDefinition();
    humanStep.setId("step1");
    FormDefinition form = new FormDefinition();
    humanStep.setForm(form);
    TextPropertyDefinition text = new TextPropertyDefinition();
    text.setName("my text");
    text.getParameters().put(AlfrescoConversionConstants.PARAMETER_ADD_PROPERTY_TO_OUTPUT, true);
    FormPropertyGroup group = new FormPropertyGroup();
    group.setId("group");
    form.getFormGroups().add(group);
    group.getFormPropertyDefinitions().add(text);
    definition.addStep(humanStep);
    WorkflowDefinitionConversion conversion = conversionFactory.createWorkflowDefinitionConversion(definition);
    conversion.convert();
    Process process = conversion.getProcess();
    assertNotNull(process);
    boolean listenerFound = false;
    for (FlowElement flowElement : process.getFlowElements()) {
        if (flowElement instanceof UserTask) {
            UserTask task = (UserTask) flowElement;
            assertNotNull(task.getTaskListeners());
            assertEquals(2L, task.getTaskListeners().size());
            assertEquals("create", task.getTaskListeners().get(0).getEvent());
            assertEquals("complete", task.getTaskListeners().get(1).getEvent());
            listenerFound = true;
        }
    }
    assertTrue(listenerFound);
}
Also used : WorkflowDefinitionConversion(org.activiti.workflow.simple.converter.WorkflowDefinitionConversion) HumanStepDefinition(org.activiti.workflow.simple.definition.HumanStepDefinition) TextPropertyDefinition(org.activiti.workflow.simple.definition.form.TextPropertyDefinition) FlowElement(org.activiti.bpmn.model.FlowElement) UserTask(org.activiti.bpmn.model.UserTask) WorkflowDefinition(org.activiti.workflow.simple.definition.WorkflowDefinition) FormPropertyGroup(org.activiti.workflow.simple.definition.form.FormPropertyGroup) Process(org.activiti.bpmn.model.Process) FormDefinition(org.activiti.workflow.simple.definition.form.FormDefinition) Test(org.junit.Test)

Example 4 with TextPropertyDefinition

use of org.activiti.workflow.simple.definition.form.TextPropertyDefinition in project Activiti by Activiti.

the class BaseStepDefinitionConverterTest method testCovertFormPropertiesWithListValues.

@Test
public void testCovertFormPropertiesWithListValues() {
    TestStepDefinitionConverter converter = new TestStepDefinitionConverter();
    // Create a form with two properties, one of which is a ListProperty
    FormDefinition formDefinition = new FormDefinition();
    ListPropertyDefinition approveEnum = new ListPropertyDefinition();
    approveEnum.setName("Approval");
    approveEnum.setType("enum");
    approveEnum.addEntry(new ListPropertyEntry("true", "Approve"));
    approveEnum.addEntry(new ListPropertyEntry("false", "Reject"));
    formDefinition.addFormProperty(approveEnum);
    TextPropertyDefinition reason = new TextPropertyDefinition();
    reason.setName("Reason");
    reason.setType("string");
    formDefinition.addFormProperty(reason);
    BooleanPropertyDefinition validate = new BooleanPropertyDefinition();
    validate.setName("Validate");
    validate.setType("boolean");
    formDefinition.addFormProperty(validate);
    List<FormProperty> properties = converter.convertProperties(formDefinition);
    assertTrue(properties.size() == 3);
    FormProperty firstProperty = properties.get(0);
    assertNotNull(firstProperty);
    assertEquals("Approval", firstProperty.getName());
    assertEquals("enum", firstProperty.getType());
    // Assert the values are set
    List<FormValue> values = firstProperty.getFormValues();
    assertTrue(values.size() == 2);
    FormValue firstValue = values.get(0);
    assertEquals("Approve", firstValue.getName());
    assertEquals("true", firstValue.getId());
    FormValue secondValue = values.get(1);
    assertEquals("Reject", secondValue.getName());
    assertEquals("false", secondValue.getId());
    // Now confirm the second property, a non list property, is well formed as well.
    FormProperty secondProperty = properties.get(1);
    assertNotNull(secondProperty);
    assertTrue(secondProperty.getFormValues().isEmpty());
    assertEquals("Reason", secondProperty.getName());
    assertEquals("string", secondProperty.getType());
    FormProperty thirdProperty = properties.get(2);
    assertNotNull(thirdProperty);
    assertTrue(thirdProperty.getFormValues().isEmpty());
    assertEquals("Validate", thirdProperty.getName());
    assertEquals("boolean", thirdProperty.getType());
}
Also used : ListPropertyEntry(org.activiti.workflow.simple.definition.form.ListPropertyEntry) BooleanPropertyDefinition(org.activiti.workflow.simple.definition.form.BooleanPropertyDefinition) FormValue(org.activiti.bpmn.model.FormValue) TextPropertyDefinition(org.activiti.workflow.simple.definition.form.TextPropertyDefinition) FormProperty(org.activiti.bpmn.model.FormProperty) ListPropertyDefinition(org.activiti.workflow.simple.definition.form.ListPropertyDefinition) FormDefinition(org.activiti.workflow.simple.definition.form.FormDefinition) Test(org.junit.Test)

Example 5 with TextPropertyDefinition

use of org.activiti.workflow.simple.definition.form.TextPropertyDefinition in project Activiti by Activiti.

the class JsonConverterTest method testHumanStepConversion.

@Test
public void testHumanStepConversion() {
    WorkflowDefinition workflowDefinition = new WorkflowDefinition().name("testWorkflow").addHumanStep("step1", "fred").addHumanStepForGroup("step2", Collections.singletonList("group")).addHumanStepForWorkflowInitiator("step3");
    // Add form to last step
    HumanStepDefinition stepWithForm = new HumanStepDefinition();
    stepWithForm.setName("step4");
    stepWithForm.setDescription("Step description");
    workflowDefinition.getSteps().add(stepWithForm);
    FormDefinition formDefinition = new FormDefinition();
    stepWithForm.setForm(formDefinition);
    formDefinition.setFormKey("123");
    TextPropertyDefinition textProp = new TextPropertyDefinition();
    textProp.setMandatory(true);
    textProp.setName("textProp");
    textProp.setWritable(false);
    formDefinition.addFormProperty(textProp);
    textProp.getParameters().put("custom-parameter", "This is a test");
    NumberPropertyDefinition numberProp = new NumberPropertyDefinition();
    numberProp.setMandatory(true);
    numberProp.setName("numberProp");
    numberProp.setWritable(false);
    formDefinition.addFormProperty(numberProp);
    ReferencePropertyDefinition reference = new ReferencePropertyDefinition();
    reference.setMandatory(true);
    reference.setName("referenceProp");
    reference.setWritable(false);
    reference.setType("referencedType");
    formDefinition.addFormProperty(reference);
    ListPropertyDefinition itemType = new ListPropertyDefinition();
    itemType.setMandatory(true);
    itemType.setName("referenceProp");
    itemType.setWritable(false);
    itemType.addEntry(new ListPropertyEntry("1", "Item 1"));
    itemType.addEntry(new ListPropertyEntry("2", "Item 2"));
    formDefinition.addFormProperty(itemType);
    // Write result to byte-array
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Writer writer = new OutputStreamWriter(baos);
    converter.writeWorkflowDefinition(workflowDefinition, writer);
    // Parse definition based on written JSON
    WorkflowDefinition parsedDefinition = converter.readWorkflowDefinition(baos.toByteArray());
    assertEquals(workflowDefinition.getSteps().size(), parsedDefinition.getSteps().size());
    int index = 0;
    for (StepDefinition stepDefinition : parsedDefinition.getSteps()) {
        assertTrue(stepDefinition instanceof HumanStepDefinition);
        HumanStepDefinition humanStep = (HumanStepDefinition) stepDefinition;
        HumanStepDefinition originalStep = (HumanStepDefinition) workflowDefinition.getSteps().get(index);
        // Check general human-step fields
        assertEquals(originalStep.getAssignee(), humanStep.getAssignee());
        assertEquals(originalStep.getAssignmentType(), humanStep.getAssignmentType());
        assertEquals(originalStep.getCandidateGroups(), humanStep.getCandidateGroups());
        assertEquals(originalStep.getCandidateUsers(), humanStep.getCandidateUsers());
        assertEquals(originalStep.getName(), humanStep.getName());
        assertEquals(originalStep.getDescription(), humanStep.getDescription());
        if (originalStep.getForm() != null) {
            // Encountered step with form attached to it, should be last step
            assertEquals(3, index);
            assertEquals("123", humanStep.getForm().getFormKey());
            assertEquals(originalStep.getForm().getFormPropertyDefinitions().size(), humanStep.getForm().getFormPropertyDefinitions().size());
            // Check form-fields, generic fields
            for (int i = 0; i < originalStep.getForm().getFormPropertyDefinitions().size(); i++) {
                FormPropertyDefinition origDef = originalStep.getForm().getFormPropertyDefinitions().get(i);
                FormPropertyDefinition parsedDef = humanStep.getForm().getFormPropertyDefinitions().get(i);
                assertEquals(origDef.getName(), parsedDef.getName());
                assertEquals(origDef.isMandatory(), parsedDef.isMandatory());
                assertEquals(origDef.isWritable(), parsedDef.isWritable());
                assertEquals(origDef.getClass(), parsedDef.getClass());
                if (parsedDef instanceof TextPropertyDefinition) {
                    assertTrue(parsedDef.getParameters() != null);
                    assertEquals(1L, parsedDef.getParameters().size());
                    assertEquals("This is a test", parsedDef.getParameters().get("custom-parameter"));
                }
                if (parsedDef instanceof ListPropertyDefinition) {
                    ListPropertyDefinition parsed = (ListPropertyDefinition) parsedDef;
                    assertEquals(2L, parsed.getEntries().size());
                }
            }
        }
        index++;
    }
}
Also used : ListPropertyEntry(org.activiti.workflow.simple.definition.form.ListPropertyEntry) ReferencePropertyDefinition(org.activiti.workflow.simple.definition.form.ReferencePropertyDefinition) TextPropertyDefinition(org.activiti.workflow.simple.definition.form.TextPropertyDefinition) WorkflowDefinition(org.activiti.workflow.simple.definition.WorkflowDefinition) FormPropertyDefinition(org.activiti.workflow.simple.definition.form.FormPropertyDefinition) ByteArrayOutputStream(java.io.ByteArrayOutputStream) NumberPropertyDefinition(org.activiti.workflow.simple.definition.form.NumberPropertyDefinition) HumanStepDefinition(org.activiti.workflow.simple.definition.HumanStepDefinition) ListStepDefinition(org.activiti.workflow.simple.definition.ListStepDefinition) ListConditionStepDefinition(org.activiti.workflow.simple.definition.ListConditionStepDefinition) StepDefinition(org.activiti.workflow.simple.definition.StepDefinition) HumanStepDefinition(org.activiti.workflow.simple.definition.HumanStepDefinition) ListPropertyDefinition(org.activiti.workflow.simple.definition.form.ListPropertyDefinition) OutputStreamWriter(java.io.OutputStreamWriter) FormDefinition(org.activiti.workflow.simple.definition.form.FormDefinition) Writer(java.io.Writer) OutputStreamWriter(java.io.OutputStreamWriter) Test(org.junit.Test)

Aggregations

TextPropertyDefinition (org.activiti.workflow.simple.definition.form.TextPropertyDefinition)6 FormDefinition (org.activiti.workflow.simple.definition.form.FormDefinition)4 Test (org.junit.Test)4 HumanStepDefinition (org.activiti.workflow.simple.definition.HumanStepDefinition)3 WorkflowDefinition (org.activiti.workflow.simple.definition.WorkflowDefinition)3 M2Model (org.activiti.workflow.simple.alfresco.model.M2Model)2 M2Property (org.activiti.workflow.simple.alfresco.model.M2Property)2 WorkflowDefinitionConversion (org.activiti.workflow.simple.converter.WorkflowDefinitionConversion)2 FormPropertyDefinition (org.activiti.workflow.simple.definition.form.FormPropertyDefinition)2 FormPropertyGroup (org.activiti.workflow.simple.definition.form.FormPropertyGroup)2 ListPropertyDefinition (org.activiti.workflow.simple.definition.form.ListPropertyDefinition)2 ListPropertyEntry (org.activiti.workflow.simple.definition.form.ListPropertyEntry)2 NumberPropertyDefinition (org.activiti.workflow.simple.definition.form.NumberPropertyDefinition)2 CheckBox (com.vaadin.ui.CheckBox)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 OutputStreamWriter (java.io.OutputStreamWriter)1 Writer (java.io.Writer)1 FlowElement (org.activiti.bpmn.model.FlowElement)1 FormProperty (org.activiti.bpmn.model.FormProperty)1 FormValue (org.activiti.bpmn.model.FormValue)1