You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by rg...@apache.org on 2005/10/14 22:43:05 UTC

svn commit: r321216 - in /cocoon/blocks: portal-sample/trunk/samples/conf/ portal-sample/trunk/samples/profiles/layout/ portal/trunk/java/org/apache/cocoon/portal/impl/ portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/

Author: rgoers
Date: Fri Oct 14 13:43:02 2005
New Revision: 321216

URL: http://svn.apache.org/viewcvs?rev=321216&view=rev
Log:
<action dev="RG" type="fix" fixes-bug="32784">Portal Block: Allow Full screen mode to show navigation.</action>

Modified:
    cocoon/blocks/portal-sample/trunk/samples/conf/cocoon-portal-sample.xconf
    cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal.xml
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java

Modified: cocoon/blocks/portal-sample/trunk/samples/conf/cocoon-portal-sample.xconf
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/samples/conf/cocoon-portal-sample.xconf?rev=321216&r1=321215&r2=321216&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/samples/conf/cocoon-portal-sample.xconf (original)
+++ cocoon/blocks/portal-sample/trunk/samples/conf/cocoon-portal-sample.xconf Fri Oct 14 13:43:02 2005
@@ -90,6 +90,8 @@
       <!-- wsrp support: -->
       <aspect adapter="wsrp"/>
     </aspects>
+    <!-- Set to false or remove to have no navigation when portlets are displayed full screen -->
+    <fullScreenNav>true</fullScreenNav>
   </portal-manager>
 
   <portal-event-manager>

Modified: cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal.xml?rev=321216&r1=321215&r2=321216&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal.xml (original)
+++ cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal.xml Fri Oct 14 13:43:02 2005
@@ -173,6 +173,44 @@
     </composite-layout>
   </named-item>
 
+  <named-item name="TabDemo3">
+    <composite-layout name="linktab">
+      <named-item name="One">
+        <coplet-layout name="coplet">
+          <coplet-instance-data>CZ Weblog-1</coplet-instance-data>
+        </coplet-layout>
+      </named-item>
+      <named-item name="Two">
+        <coplet-layout name="coplet">
+          <coplet-instance-data>ML Weblog-1</coplet-instance-data>
+        </coplet-layout>
+      </named-item>
+      <named-item name="Three">
+        <composite-layout name="tab">
+          <named-item name="Weblog">
+             <coplet-layout name="coplet">
+          <coplet-instance-data>Weblog-1</coplet-instance-data>
+        </coplet-layout>
+          </named-item>
+          <named-item name="Gallery">
+            <composite-layout name="column">
+              <item>
+                <coplet-layout name="coplet">
+                  <coplet-instance-data>Gallery-Petstore</coplet-instance-data>
+               </coplet-layout>
+              </item>
+              <item>
+                <coplet-layout name="coplet">
+                  <coplet-instance-data>GalleryViewer-1</coplet-instance-data>
+                </coplet-layout>
+              </item>
+            </composite-layout>
+          </named-item>
+        </composite-layout>
+      </named-item>
+    </composite-layout>
+  </named-item>
+    
   <named-item name="Gallery">
     <composite-layout name="column">
       <item>

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java?rev=321216&r1=321215&r2=321216&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java Fri Oct 14 13:43:02 2005
@@ -30,6 +30,7 @@
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
 import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.util.HashMap;
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.portal.PortalManager;
 import org.apache.cocoon.portal.PortalManagerAspect;
@@ -68,6 +69,9 @@
     /** The component context. */
     protected Context context;
 
+    private boolean fullScreenNav;
+    public static final String FULLSCREEN = "fullScreenNav";
+
     /**
      * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
      */
@@ -134,6 +138,7 @@
                              conf.getChild("aspects"), 
                              this, 
                              new Parameters());
+        this.fullScreenNav = conf.getChild(FULLSCREEN, true).getValueAsBoolean(false);
     }
 
     /**
@@ -156,7 +161,12 @@
      */
     public void render(PortalManagerAspectRenderContext context, PortalService service, ContentHandler ch, Parameters parameters) throws SAXException {
         // first check for a full screen layout
-        Layout portalLayout = this.portalService.getEntryLayout(null);
+
+        Layout portalLayout = null;
+        if (!this.fullScreenNav) {
+            // If fullscreen mode - otherwise TabContentAspect will deal with the layout
+            portalLayout = this.portalService.getEntryLayout(null);
+        }
         if ( portalLayout == null ) {
             portalLayout = this.portalService.getComponentManager().getProfileManager().getPortalLayout(null, null);
         }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java?rev=321216&r1=321215&r2=321216&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/TabContentAspect.java Fri Oct 14 13:43:02 2005
@@ -159,7 +159,8 @@
 
                 XMLUtils.startElement(handler, "named-item", attributes);
                 if (j == selected) {
-                    this.processLayout(tab.getLayout(), service, handler);
+
+                    this.processLayout(getNextLayout(service, tab), service, handler);
                     if (config.includeSelected) {
                         List events = new ArrayList();
                         events.add(event);
@@ -197,6 +198,25 @@
         desc.setAutoCreate(true);
 
         return Collections.singletonList(desc).iterator();
+    }
+
+    private Layout getNextLayout(PortalService service, Item tab) {
+        Layout tabLayout = tab.getLayout();
+        if (tabLayout instanceof CompositeLayout) {
+            CompositeLayout layout = (CompositeLayout)tabLayout;
+            List list = layout.getItems();
+            int size = list.size();
+            for (int i = 0; i < size; i++) {
+                if (list.get(i) instanceof NamedItem) {
+                    return tabLayout;
+                }
+            }
+        }
+        Layout nextLayout = service.getEntryLayout(null);
+        if (nextLayout == null) {
+            nextLayout = tab.getLayout();
+        }
+        return nextLayout;
     }
 
     /*