From faf1ce622a758b39bf47d2dcb9cf806b2688f2f5 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 9 Mar 2021 20:47:07 +0100 Subject: [PATCH] New authoring kit annotiation for MVC based authoring steps Former-commit-id: 6c76578621c2f384d699f2eb3b7bf476f3db2591 --- .../org/librecms/contenttypes/Article.java | 11 +++++ .../DocumentFolderController.java | 1 + .../documents/MvcArticleCreateStep.java | 14 +++++++ .../documents/MvcArticlePropertiesStep.java | 21 ++++++++++ .../documents/MvcArticleTextBodyStep.java | 21 ++++++++++ .../documents/MvcAuthoringKit.java | 42 +++++++++++++++++++ .../documents/MvcAuthoringStep.java | 14 +++++++ .../documents/MvcDocumentCreateStep.java | 14 +++++++ .../documentfolder/documentfolder.xhtml | 2 +- 9 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleCreateStep.java create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticlePropertiesStep.java create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleTextBodyStep.java create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringKit.java create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringStep.java create mode 100644 ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcDocumentCreateStep.java diff --git a/ccm-cms/src/main/java/org/librecms/contenttypes/Article.java b/ccm-cms/src/main/java/org/librecms/contenttypes/Article.java index c7deaa94d..3a53e4849 100644 --- a/ccm-cms/src/main/java/org/librecms/contenttypes/Article.java +++ b/ccm-cms/src/main/java/org/librecms/contenttypes/Article.java @@ -39,6 +39,10 @@ import org.librecms.CmsConstants; import static org.librecms.CmsConstants.*; import org.librecms.contentsection.ContentItem; +import org.librecms.ui.contentsections.documents.MvcArticleCreateStep; +import org.librecms.ui.contentsections.documents.MvcArticlePropertiesStep; +import org.librecms.ui.contentsections.documents.MvcArticleTextBodyStep; +import org.librecms.ui.contentsections.documents.MvcAuthoringKit; import javax.xml.bind.annotation.XmlRootElement; @@ -71,6 +75,13 @@ import javax.xml.bind.annotation.XmlRootElement; order = 2 ) }) +@MvcAuthoringKit( + createStep = MvcArticleCreateStep.class, + authoringSteps = { + MvcArticlePropertiesStep.class, + MvcArticleTextBodyStep.class + } +) @XmlRootElement(name = "article", namespace = CMS_XML_NS) public class Article extends ContentItem implements Serializable { diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/DocumentFolderController.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/DocumentFolderController.java index ff632d003..55ed594b7 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/DocumentFolderController.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/DocumentFolderController.java @@ -624,6 +624,7 @@ public class DocumentFolderController { ); row.setDeletable(!itemManager.isLive(contentItem)); row.setFolder(false); + row.setFolderPath(itemManager.getItemPath(contentItem)); row.setLanguages( new TreeSet<>( itemL10NManager diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleCreateStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleCreateStep.java new file mode 100644 index 000000000..5fe371c3b --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleCreateStep.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +/** + * + * @author Jens Pelzetter + */ +public class MvcArticleCreateStep implements MvcDocumentCreateStep { + +} diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticlePropertiesStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticlePropertiesStep.java new file mode 100644 index 000000000..0d6a520ad --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticlePropertiesStep.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +import javax.enterprise.context.RequestScoped; +import javax.mvc.Controller; +import javax.ws.rs.Path; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Controller +@Path("/") +public class MvcArticlePropertiesStep implements MvcAuthoringStep { + +} diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleTextBodyStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleTextBodyStep.java new file mode 100644 index 000000000..078fa686b --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcArticleTextBodyStep.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +import javax.enterprise.context.RequestScoped; +import javax.mvc.Controller; +import javax.ws.rs.Path; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Controller +@Path("/") +public class MvcArticleTextBodyStep implements MvcAuthoringStep { + +} diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringKit.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringKit.java new file mode 100644 index 000000000..46b781643 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringKit.java @@ -0,0 +1,42 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +import org.librecms.contentsection.ContentItem; + +import javax.mvc.Controller; + +/** + * Provides the steps for creating and viewing and editing a document (content + * item). The classes provided for {@link #createStep()} and + * {@link #authoringSteps() } must MVC controllers (see {@link Controller}) and + * implement a specific interface. + * + * This annotation can only be used on classes extending the {@link ContentItem} + * class. + * + * @author Jens Pelzetter + */ +public @interface MvcAuthoringKit { + + /** + * Controller of the create step for a document type. + * + * @return The controller of the create step for the annotated document + * type.. + */ + Class createStep(); + + /** + * The authoring steps for editing the properties of the document. They are + * used in the same order as they are provided here. + * + * @return The controllers of the authoring steps for the annotated document + * type. + */ + Class[] authoringSteps(); + +} diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringStep.java new file mode 100644 index 000000000..9a9f5070d --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcAuthoringStep.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +/** + * + * @author Jens Pelzetter + */ +public interface MvcAuthoringStep { + +} diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcDocumentCreateStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcDocumentCreateStep.java new file mode 100644 index 000000000..cb1408e77 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/MvcDocumentCreateStep.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.ui.contentsections.documents; + +/** + * + * @author Jens Pelzetter + */ +public interface MvcDocumentCreateStep { + +} diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documentfolder/documentfolder.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documentfolder/documentfolder.xhtml index 72efe0141..93f530642 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documentfolder/documentfolder.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documentfolder/documentfolder.xhtml @@ -241,7 +241,7 @@ #{row.name} - #{row.name} + #{row.name} #{row.name}