protected void addAssociation( Form form, String formSet, ReferencePropertyDefinition referenceDefinition, M2Type contentType, WorkflowDefinitionConversion conversion) { M2Model model = AlfrescoConversionUtil.getContentModel(conversion); // Check if model contains an aspect for the property String propertyName = getPropertyName(referenceDefinition, conversion); M2ClassAssociation association = new M2ClassAssociation(); association.setName(propertyName); association.setTitle(referenceDefinition.getName()); M2AssociationSource source = new M2AssociationSource(); source.setMany(false); source.setMandatory(true); M2AssociationTarget target = new M2AssociationTarget(); target.setClassName(referenceDefinition.getType()); target.setMandatory(referenceDefinition.isMandatory()); // Determine whether or not it's allowed to select multiple targets boolean isTargetMany = extractBooleanFromParameters( referenceDefinition.getParameters(), AlfrescoConversionConstants.PARAMETER_REFERENCE_MANY, false); target.setMany(isTargetMany); association.setTarget(target); association.setSource(source); M2Aspect aspect = model.getAspect(propertyName); if (aspect != null) { if (aspect.getAssociations().isEmpty()) { aspect.getAssociations().add(association); } contentType.getMandatoryAspects().add(propertyName); } else { contentType.getAssociations().add(association); } // Add field to form form.getFormFieldVisibility().addShowFieldElement(propertyName); FormField field = new FormField(); form.getFormAppearance().addFormAppearanceElement(field); field.setId(propertyName); field.setSet(formSet); }
protected void addPackageReference( Form form, String formSet, M2Type contentType, ReferencePropertyDefinition referenceDefinition) { form.getFormFieldVisibility() .addShowFieldElement(AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS); form.getFormAppearance() .addFormField(AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS, null, formSet); // Only take into account package-actions when we're not dealing with a start-form if (!form.isStartForm()) { boolean allowAddingItems = extractBooleanFromParameters( referenceDefinition.getParameters(), AlfrescoConversionConstants.PARAMETER_PACKAGEITEMS_ALLOW_ADD, true); boolean allowRemovingItems = extractBooleanFromParameters( referenceDefinition.getParameters(), AlfrescoConversionConstants.PARAMETER_PACKAGEITEMS_ALLOW_REMOVE, true); if (allowAddingItems) { M2PropertyOverride addOverride = new M2PropertyOverride(); addOverride.setName(AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ACTION_GROUP); addOverride.setDefaultValue( AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ACTION_GROUP_ADD); contentType.getPropertyOverrides().add(addOverride); } // Override for package item actions M2PropertyOverride addOverride = new M2PropertyOverride(); contentType.getPropertyOverrides().add(addOverride); if (allowRemovingItems) { addOverride.setName(AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ITEM_ACTION_GROUP); addOverride.setDefaultValue( AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ITEM_ACTION_GROUP_REMOVE); } else { addOverride.setName(AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ITEM_ACTION_GROUP); addOverride.setDefaultValue( AlfrescoConversionConstants.PROPERTY_PACKAGEITEMS_ITEM_ACTION_GROUP_EDIT); } } }
protected void addFieldReference( Form form, String formSet, ReferencePropertyDefinition definition, M2Type contentType, WorkflowDefinitionConversion conversion) { if (form.isStartForm()) { throw new AlfrescoSimpleWorkflowException("Field references cannot be used on start-forms"); } M2Model model = AlfrescoConversionUtil.getContentModel(conversion); // Check if model contains an aspect for the property String propertyName = getPropertyName(definition, conversion); if (model.getAspect(propertyName) == null) { throw new AlfrescoSimpleWorkflowException( "The property '" + definition.getName() + "' is not used in a from prior to this form: " + contentType.getName() + " - " + propertyName); } // Add aspect to content-type contentType.getMandatoryAspects().add(propertyName); // Add read-only field to form form.getFormFieldVisibility().addShowFieldElement(propertyName); FormField field = new FormField(); form.getFormAppearance().addFormAppearanceElement(field); field.setId(propertyName); field.setLabelId(definition.getName()); field.setSet(formSet); field.setControl(new FormFieldControl(AlfrescoConversionConstants.FORM_READONLY_TEMPLATE)); }