diff --git a/config/alfresco/form-services-context.xml b/config/alfresco/form-services-context.xml index c441008672..73ebbdfb6c 100644 --- a/config/alfresco/form-services-context.xml +++ b/config/alfresco/form-services-context.xml @@ -186,5 +186,9 @@ + + diff --git a/config/alfresco/messages/form-service.properties b/config/alfresco/messages/form-service.properties index a28d1eca0c..3e5fac96ae 100644 --- a/config/alfresco/messages/form-service.properties +++ b/config/alfresco/messages/form-service.properties @@ -7,5 +7,13 @@ form_service.encoding.description=Encoding of the content form_service.size.label=Size form_service.size.description=Size of the content in bytes +form_service.message.label=Message +form_service.message.description=Message the user entered when starting the workflow +form_service.message.value.none=(No Message) + +form_service.transitions.label=Transitions +form_service.transitions.description=The transitions available for the task + form_service.package.items.label=Items -form_service.package.items.description=Items that are part of the workflow \ No newline at end of file +form_service.package.items.description=Items that are part of the workflow + diff --git a/source/java/org/alfresco/repo/forms/processor/AbstractFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/AbstractFieldProcessor.java index df74fa8181..d823f8dadf 100644 --- a/source/java/org/alfresco/repo/forms/processor/AbstractFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/AbstractFieldProcessor.java @@ -23,8 +23,6 @@ import org.alfresco.repo.forms.Field; import org.alfresco.repo.forms.FormException; import org.apache.commons.logging.Log; -import com.sun.star.lang.IllegalArgumentException; - /** * * @since 3.4 @@ -53,7 +51,7 @@ public abstract class AbstractFieldProcessor implements FieldProcessor } else { - String msg = "Data object: "+itemData+" is not of expected type: "+expectedType; + String msg = "Data object: " + itemData + " is not of expected type: " + expectedType; throw new FormException(msg, new IllegalArgumentException()); } } diff --git a/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java b/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java index 05de747e8f..31c138e747 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java +++ b/source/java/org/alfresco/repo/forms/processor/node/MockFieldProcessorRegistry.java @@ -29,6 +29,7 @@ import static org.alfresco.repo.forms.processor.node.FormFieldConstants.ASSOC; import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP; import org.alfresco.repo.forms.processor.FieldProcessor; +import org.alfresco.repo.forms.processor.workflow.MessageFieldProcessor; import org.alfresco.repo.forms.processor.workflow.PackageItemsFieldProcessor; import org.alfresco.repo.forms.processor.workflow.TransitionFieldProcessor; import org.alfresco.service.cmr.dictionary.DictionaryService; @@ -51,25 +52,24 @@ public class MockFieldProcessorRegistry extends ContentModelFieldProcessorRegist register(SizeFieldProcessor.KEY, makeSizeFieldProcessor()); register(TransitionFieldProcessor.KEY, makeTransitionFieldProcessor()); register(PackageItemsFieldProcessor.KEY, makePackageItemFieldProcessor()); + register(MessageFieldProcessor.KEY, makeMessageFieldProcessor()); setDefaultProcessor(makeDefaultFieldProcessor(namespaceService, dictionaryService)); } - /** - * @return - */ private FieldProcessor makePackageItemFieldProcessor() { - // TODO Auto-generated method stub return new PackageItemsFieldProcessor(); } - /** - * @return - */ private FieldProcessor makeTransitionFieldProcessor() { return new TransitionFieldProcessor(); } + + private FieldProcessor makeMessageFieldProcessor() + { + return new MessageFieldProcessor(); + } private FieldProcessor makeDefaultFieldProcessor(NamespaceService namespaceService, DictionaryService dictionaryService) diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/MessageFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/MessageFieldProcessor.java new file mode 100644 index 0000000000..39321d2fdf --- /dev/null +++ b/source/java/org/alfresco/repo/forms/processor/workflow/MessageFieldProcessor.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2005-2010 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +package org.alfresco.repo.forms.processor.workflow; + +import static org.alfresco.repo.forms.processor.node.FormFieldConstants.PROP_DATA_PREFIX; + +import org.alfresco.repo.forms.FieldDefinition; +import org.alfresco.repo.forms.PropertyFieldDefinition; +import org.alfresco.repo.forms.processor.node.TransientFieldProcessor; +import org.alfresco.service.cmr.dictionary.DataTypeDefinition; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.extensions.surf.util.I18NUtil; + +/** + * Transient field processor for the "message" property. + * + * @since 3.4 + * @author Gavin Cornwell + */ +public class MessageFieldProcessor extends TransientFieldProcessor +{ + public static final String KEY = "message"; + public static final String DATA_TYPE = DataTypeDefinition.TEXT.getLocalName(); + public static final String MSG_VALUE_NONE = "form_service.message.value.none"; + + private static final String MSG_LABEL = "form_service.message.label"; + private static final String MSG_DESCRIPTION = "form_service.message.description"; + + private static final Log LOGGER = LogFactory.getLog(MessageFieldProcessor.class); + + /* (non-Javadoc) + * @see org.alfresco.repo.forms.processor.node.TransientFieldProcessor#makeTransientPropertyDefinition() + */ + @Override + protected FieldDefinition makeTransientFieldDefinition() + { + PropertyFieldDefinition fieldDef = new PropertyFieldDefinition(KEY, DATA_TYPE); + fieldDef.setRepeating(false); + fieldDef.setProtectedField(true); + + fieldDef.setLabel(I18NUtil.getMessage(MSG_LABEL)); + fieldDef.setDescription(I18NUtil.getMessage(MSG_DESCRIPTION)); + fieldDef.setDataKeyName(PROP_DATA_PREFIX + KEY); + return fieldDef; + } + + /* (non-Javadoc) + * @see org.alfresco.repo.forms.processor.AbstractFieldProcessor#getLogger() + */ + @Override + protected Log getLogger() + { + return LOGGER; + } + + /* (non-Javadoc) + * @see org.alfresco.repo.forms.processor.AbstractFieldProcessor#getRegistryKey() + */ + @Override + protected String getRegistryKey() + { + return KEY; + } + +} diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java index 7e473f777f..15a7adf147 100644 --- a/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/workflow/TaskFormProcessor.java @@ -47,6 +47,7 @@ import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.extensions.surf.util.I18NUtil; /** * FormProcessor implementation for workflow tasks. @@ -154,6 +155,7 @@ public class TaskFormProcessor extends AbstractWorkflowFormProcessor values = new HashMap(2); values.put(TransitionFieldProcessor.KEY, getTransitionValues(item)); values.put(PackageItemsFieldProcessor.KEY, getPackageItemValues(item)); + values.put(MessageFieldProcessor.KEY, getMessageValues(item)); return values; } @@ -183,6 +185,23 @@ public class TaskFormProcessor extends AbstractWorkflowFormProcessor