From e8afec51a6bd0058b7e21495fc40e1d775aade27 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Thu, 18 Sep 2014 16:54:02 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud) 83388: ACE-2671 (Move QName Custom Editor from RM into core) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@84551 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/bootstrap-context.xml | 14 +++++ .../util/CustomPropertyEditorRegistrar.java | 54 +++++++++++++++++++ .../org/alfresco/util/QNameTypeEditor.java | 54 +++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 source/java/org/alfresco/util/CustomPropertyEditorRegistrar.java create mode 100644 source/java/org/alfresco/util/QNameTypeEditor.java diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml index baa44825c0..fd33e48efc 100644 --- a/config/alfresco/bootstrap-context.xml +++ b/config/alfresco/bootstrap-context.xml @@ -727,4 +727,18 @@ class="org.alfresco.repo.workflow.activiti.ActivitiEngineInitializer"> + + + + + + + + + + + + + diff --git a/source/java/org/alfresco/util/CustomPropertyEditorRegistrar.java b/source/java/org/alfresco/util/CustomPropertyEditorRegistrar.java new file mode 100644 index 0000000000..e75674483e --- /dev/null +++ b/source/java/org/alfresco/util/CustomPropertyEditorRegistrar.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2005-2014 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.util; + +import org.alfresco.service.namespace.NamespaceService; +import org.alfresco.service.namespace.QName; +import org.springframework.beans.PropertyEditorRegistrar; +import org.springframework.beans.PropertyEditorRegistry; + +/** + * Custom property editor registrar. + * + * @author Roy Wetherall + * @since 5.0 + */ +public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar +{ + /** namespace service */ + private NamespaceService namespaceService; + + /** + * @param namespaceService namespace service + */ + public void setNamespaceService(NamespaceService namespaceService) + { + this.namespaceService = namespaceService; + } + + /** + * @see org.springframework.beans.PropertyEditorRegistrar#registerCustomEditors(org.springframework.beans.PropertyEditorRegistry) + */ + @Override + public void registerCustomEditors(PropertyEditorRegistry registry) + { + // add custom QName editor + registry.registerCustomEditor(QName.class, new QNameTypeEditor(namespaceService)); + } +} diff --git a/source/java/org/alfresco/util/QNameTypeEditor.java b/source/java/org/alfresco/util/QNameTypeEditor.java new file mode 100644 index 0000000000..98de6abbec --- /dev/null +++ b/source/java/org/alfresco/util/QNameTypeEditor.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2005-2014 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.util; + +import java.beans.PropertyEditorSupport; + +import org.alfresco.service.namespace.NamespaceService; +import org.alfresco.service.namespace.QName; + +/** + * QName type editor. + * + * @author Roy Wetherall + * @since 5.0 + */ +public class QNameTypeEditor extends PropertyEditorSupport +{ + /** namespace service */ + private NamespaceService namespaceService; + + /** + * @param namespaceService namespace service + */ + public QNameTypeEditor(NamespaceService namespaceService) + { + this.namespaceService = namespaceService; + } + + /** + * @see java.beans.PropertyEditorSupport#setAsText(java.lang.String) + */ + @Override + public void setAsText(String text) + { + // convert prefix string to QName + setValue(QName.createQName(text, namespaceService)); + } +}