You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/10/27 22:28:42 UTC

svn commit: r468523 - in /cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main: java/org/apache/cocoon/portal/event/aspect/impl/ java/org/apache/cocoon/portal/layout/renderer/aspect/impl/ java/org/apache/cocoon/portal/om/ resources/org/apache/...

Author: cziegeler
Date: Fri Oct 27 13:28:41 2006
New Revision: 468523

URL: http://svn.apache.org/viewvc?view=rev&rev=468523
Log:
Fix handling of link and frame layouts

Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/FrameLayout.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LinkLayout.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/FrameEventAspect.java Fri Oct 27 13:28:41 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.cocoon.portal.event.aspect.impl;
 
+import org.apache.cocoon.portal.LayoutException;
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.event.aspect.EventAspectContext;
@@ -50,19 +51,11 @@
      */
     protected void publish(PortalService service,
                            Layout        layout,
-                           String[]      values) {
-        if (layout instanceof FrameLayout) {
-            LayoutInstance instance;
-            instance = LayoutFeatures.getLayoutInstance(service, layout, false);
-            if ( instance == null ) {
-                final Event e = new LayoutInstanceChangeAttributeEvent(instance, "frame", values[2], true);
-                service.getEventManager().send(e);                    
-            }
-        } else {
-            this.getLogger().warn(
-                "The configured layout: "
-                    + layout.getType()
-                    + " is not a FrameLayout.");
-        }
+                           String[]      values)
+    throws LayoutException {
+        LayoutFeatures.checkLayoutClass(layout, FrameLayout.class, true);
+        final LayoutInstance instance = LayoutFeatures.getLayoutInstance(service, layout, true);
+        final Event e = new LayoutInstanceChangeAttributeEvent(instance, FrameLayout.ATTRIBUTE_SOURCE_ID, values[2], true);
+        service.getEventManager().send(e);                    
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java Fri Oct 27 13:28:41 2006
@@ -50,14 +50,12 @@
      * @see org.apache.cocoon.portal.event.aspect.impl.AbstractContentEventAspect#publish(PortalService, org.apache.cocoon.portal.om.Layout, java.lang.String[])
      */
     protected void publish(PortalService service,
-                           Layout layout,
-                           String[] values)
+                           Layout        layout,
+                           String[]      values)
     throws LayoutException {
         LayoutFeatures.checkLayoutClass(layout, LinkLayout.class, true);
-        final LayoutInstance instance = LayoutFeatures.getLayoutInstance(service, layout, false);
-        if ( instance == null ) {
-            final Event e = new LayoutInstanceChangeAttributeEvent(instance, LinkLayout.ATTRIBUTE_LAYOUT_ID, values[2], true);
-            service.getEventManager().send(e);                    
-        }
+        final LayoutInstance instance = LayoutFeatures.getLayoutInstance(service, layout, true);
+        final Event e = new LayoutInstanceChangeAttributeEvent(instance, LinkLayout.ATTRIBUTE_LAYOUT_ID, values[2], true);
+        service.getEventManager().send(e);                    
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java Fri Oct 27 13:28:41 2006
@@ -51,7 +51,7 @@
         String source = null;
         final LayoutInstance instance = LayoutFeatures.getLayoutInstance(rendererContext.getPortalService(), layout, false);
         if ( instance != null ) {
-            source = (String)instance.getTemporaryAttribute("frame");
+            source = (String)instance.getTemporaryAttribute(FrameLayout.ATTRIBUTE_SOURCE_ID);
         }
         if (source == null) {
             source = ((FrameLayout) layout).getSource();

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/FrameLayout.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/FrameLayout.java?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/FrameLayout.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/FrameLayout.java Fri Oct 27 13:28:41 2006
@@ -27,6 +27,9 @@
  */
 public class FrameLayout extends Layout {
 
+    /** This is the name of the temporary attribute in the layout instance holding the current link. */
+    public static final String ATTRIBUTE_SOURCE_ID = FrameLayout.class.getName() + "/source";
+
     protected String source;
 
     /**
@@ -47,10 +50,6 @@
         return source;
     }
 
-    /**
-     * Sets the source.
-     * @param source The source to set
-     */
     public void setSource(String source) {
         this.source = source;
     }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LinkLayout.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LinkLayout.java?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LinkLayout.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/LinkLayout.java Fri Oct 27 13:28:41 2006
@@ -27,7 +27,7 @@
 public class LinkLayout extends Layout {
 
     /** This is the name of the temporary attribute in the layout instance holding the current layout id. */
-    public static final String ATTRIBUTE_LAYOUT_ID = "link-layout-id";
+    public static final String ATTRIBUTE_LAYOUT_ID = LinkLayout.class.getName() + "/layout-id";
 
     protected String linkedProfileName;
     protected String linkedLayoutId;
@@ -49,6 +49,14 @@
 
     public String getProfileName() {
         return linkedProfileName;
+    }
+
+    public void setLayoutId(String linkedLayoutId) {
+        this.linkedLayoutId = linkedLayoutId;
+    }
+
+    public void setProfileName(String linkedProfileName) {
+        this.linkedProfileName = linkedProfileName;
     }
 
     /**

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml?view=diff&rev=468523&r1=468522&r2=468523
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/layout.xml Fri Oct 27 13:28:41 2006
@@ -54,8 +54,8 @@
       <bind-xml name="type" node="attribute"/>
     </field>
 
-    <field name="layoutKey" type="java.lang.String">
-      <bind-xml name="layout-key" node="attribute"/>
+    <field name="profileName" type="java.lang.String">
+      <bind-xml name="profile-name" node="attribute"/>
     </field>
     <field name="layoutId" type="java.lang.String">
       <bind-xml name="layout-id" node="attribute"/>