From 156aeb36e704ff7aee98113eba927f765733c8e5 Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 26 Feb 2018 10:04:27 +0000 Subject: [PATCH] A navigation component for showing a specific content item git-svn-id: https://svn.libreccm.org/ccm/trunk@5313 8810af33-2d31-482b-a856-94f89814c4df --- .../navigation/ui/ContentItemComponent.java | 50 +++++++++++++++++++ .../arsdigita/navigation/ui/GreetingItem.java | 7 ++- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 ccm-navigation/src/com/arsdigita/navigation/ui/ContentItemComponent.java diff --git a/ccm-navigation/src/com/arsdigita/navigation/ui/ContentItemComponent.java b/ccm-navigation/src/com/arsdigita/navigation/ui/ContentItemComponent.java new file mode 100644 index 000000000..ad912d8ab --- /dev/null +++ b/ccm-navigation/src/com/arsdigita/navigation/ui/ContentItemComponent.java @@ -0,0 +1,50 @@ +/* + * 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 com.arsdigita.navigation.ui; + +import com.arsdigita.cms.ContentItem; +import com.arsdigita.kernel.ACSObject; +import com.arsdigita.persistence.DataObject; +import com.arsdigita.persistence.OID; +import com.arsdigita.persistence.SessionManager; + +/** + * + * @author Jens Pelzetter + */ +public class ContentItemComponent extends GreetingItem { + + private String contentItemOID; + + @Override + public ACSObject getObject() { + + final DataObject dataObject = SessionManager + .getSession() + .retrieve(OID.valueOf(contentItemOID)); + + final ContentItem item = new ContentItem(dataObject); + if (item.isDraftVersion()) { + return (ContentItem) item.getLiveVersion().getParent(); + } else { + return (ContentItem) item.getParent(); + } + } + + @Override + protected String getElementName() { + return "contentItem"; + } + + public String getContentItemOID() { + return contentItemOID; + } + + public void setContentItemOID(final String contentItemOID) { + this.contentItemOID = contentItemOID; + } + +} diff --git a/ccm-navigation/src/com/arsdigita/navigation/ui/GreetingItem.java b/ccm-navigation/src/com/arsdigita/navigation/ui/GreetingItem.java index 4d24e70a8..1552a6daf 100755 --- a/ccm-navigation/src/com/arsdigita/navigation/ui/GreetingItem.java +++ b/ccm-navigation/src/com/arsdigita/navigation/ui/GreetingItem.java @@ -61,8 +61,13 @@ public class GreetingItem extends AbstractComponent { private static final Logger s_log = Logger.getLogger(GreetingItem.class); + protected String getElementName() { + return "greetingItem"; + } + public Element generateXML(HttpServletRequest request, HttpServletResponse response) { + ContentItem item = (ContentItem) getObject(); if (null == item || !item.isLive()) { return null; @@ -72,7 +77,7 @@ public class GreetingItem extends AbstractComponent { item = item.getLiveVersion(); } - Element content = Navigation.newElement("greetingItem"); + Element content = Navigation.newElement(getElementName()); Party currentParty = Kernel.getContext().getParty(); if (currentParty == null) { currentParty = Kernel.getPublicUser();