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 2004/09/01 13:29:12 UTC
svn commit: rev 37334 - in cocoon/branches/BRANCH_2_1_X/src/blocks/portal: conf java/org/apache/cocoon/portal/aspect/impl java/org/apache/cocoon/portal/coplet java/org/apache/cocoon/portal/factory/impl java/org/apache/cocoon/portal/layout java/org/apache/cocoon/portal/layout/impl
Author: cziegeler
Date: Wed Sep 1 04:29:10 2004
New Revision: 37334
Added:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/TabbedLayoutImpl.java (contents, props changed)
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/conf/portal.samplesxconf
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/aspect/impl/AbstractAspectalizable.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/factory/impl/AbstractProducible.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractParameters.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Item.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Layout.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/NamedItem.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java
Log:
Add copy of layouts and coplets
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/conf/portal.samplesxconf
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/conf/portal.samplesxconf (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/conf/portal.samplesxconf Wed Sep 1 04:29:10 2004
@@ -182,19 +182,19 @@
</renderers>
</layout>
<layout name="tab"
- class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl">
+ class="org.apache.cocoon.portal.layout.impl.TabbedLayoutImpl">
<renderers default="tab">
<renderer name="tab"/>
</renderers>
</layout>
<layout name="rawtab"
- class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl">
+ class="org.apache.cocoon.portal.layout.impl.TabbedLayoutImpl">
<renderers default="rawtab">
<renderer name="rawtab"/>
</renderers>
</layout>
<layout name="linktab"
- class="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl" >
+ class="org.apache.cocoon.portal.layout.impl.TabbedLayoutImpl" >
<renderers default="linktab">
<renderer name="linktab"/>
</renderers>
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/aspect/impl/AbstractAspectalizable.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/aspect/impl/AbstractAspectalizable.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/aspect/impl/AbstractAspectalizable.java Wed Sep 1 04:29:10 2004
@@ -27,10 +27,10 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: AbstractAspectalizable.java,v 1.6 2004/03/05 13:02:09 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractAspectalizable
- implements Aspectalizable {
+ implements Aspectalizable, Cloneable {
transient protected AspectDataHandler aspectDataHandler;
@@ -58,9 +58,8 @@
public Map getPersistentAspectData(){
if (this.aspectDataHandler == null) {
return this.persistentDatas;
- } else {
- return this.aspectDataHandler.getPersistentAspectDatas(this);
}
+ return this.aspectDataHandler.getPersistentAspectDatas(this);
}
/**
@@ -86,4 +85,21 @@
this.persistentDatas.put(aspectName, data);
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ AbstractAspectalizable clone = (AbstractAspectalizable)super.clone();
+
+ clone.aspectDataHandler = this.aspectDataHandler;
+ final Map datas = this.aspectDataHandler.getAspectDatas(this);
+ final Iterator i = datas.entrySet().iterator();
+ while ( i.hasNext() ) {
+ final Map.Entry e = (Map.Entry)i.next();
+ clone.aspectDataHandler.setAspectData(clone, e.getKey().toString(), e.getValue());
+ }
+ clone.persistentDatas = this.persistentDatas;
+
+ return clone;
+ }
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java Wed Sep 1 04:29:10 2004
@@ -92,4 +92,18 @@
public Map getTemporaryAttributes() {
return this.temporaryAttributes;
}
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ CopletInstanceData clone = (CopletInstanceData)super.clone();
+
+ clone.copletData = this.copletData;
+ clone.attributes = new HashMap(this.attributes);
+ clone.temporaryAttributes = new HashMap(this.temporaryAttributes);
+
+ return clone;
+ }
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/factory/impl/AbstractProducible.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/factory/impl/AbstractProducible.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/factory/impl/AbstractProducible.java Wed Sep 1 04:29:10 2004
@@ -26,7 +26,7 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
*
- * @version CVS $Id: AbstractProducible.java,v 1.5 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractProducible
extends AbstractAspectalizable
@@ -83,4 +83,17 @@
this.id = id;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ AbstractProducible clone = (AbstractProducible)super.clone();
+
+ clone.name = this.name;
+ clone.id = this.id;
+ clone.description = this.description;
+
+ return clone;
+ }
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java Wed Sep 1 04:29:10 2004
@@ -25,7 +25,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: AbstractLayout.java,v 1.14 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractLayout
extends AbstractProducible
@@ -73,4 +73,30 @@
return this.rendererName;
}
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ AbstractLayout clone = (AbstractLayout)super.clone();
+
+ // we don't clone the parent; we just set it to null
+ clone.rendererName = this.rendererName;
+ clone.parameters = new LinkedMap(this.parameters);
+ clone.parent = null;
+
+ return clone;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.layout.Layout#copy(java.util.Map)
+ */
+ public Layout copy(Map copletInstanceDatas) {
+ try {
+ return (Layout)this.clone();
+ } catch (CloneNotSupportedException cnse) {
+ // ignore
+ }
+ return null;
+ }
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractParameters.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractParameters.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractParameters.java Wed Sep 1 04:29:10 2004
@@ -24,10 +24,10 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: AbstractParameters.java,v 1.5 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractParameters
- implements Parameters {
+ implements Parameters, Cloneable {
protected Map parameters = new LinkedMap();
@@ -36,5 +36,16 @@
*/
public final Map getParameters() {
return parameters;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ AbstractParameters clone = (AbstractParameters)super.clone();
+
+ clone.parameters = new LinkedMap(this.parameters);
+
+ return clone;
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/CompositeLayout.java Wed Sep 1 04:29:10 2004
@@ -24,7 +24,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: CompositeLayout.java,v 1.9 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public interface CompositeLayout
extends Layout {
@@ -66,5 +66,11 @@
* @param item
*/
void removeItem(Item item);
+
+ /**
+ * Create a new item.
+ * This item is not added to the composite layout
+ */
+ Item createNewItem();
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Item.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Item.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Item.java Wed Sep 1 04:29:10 2004
@@ -15,13 +15,15 @@
*/
package org.apache.cocoon.portal.layout;
+import java.util.Map;
+
/**
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: Item.java,v 1.4 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class Item extends AbstractParameters {
@@ -53,4 +55,31 @@
public final void setParent(CompositeLayout layout) {
this.parentLayout = layout;
}
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ Item clone = (Item)super.clone();
+
+ clone.layout = null;
+ clone.parentLayout = null;
+
+ return clone;
+ }
+
+ public Item copy(CompositeLayout parent, Map copletInstanceDatas) {
+ try {
+ Item clone = (Item)this.clone();
+ if ( this.layout != null ) {
+ clone.layout = this.layout.copy(copletInstanceDatas);
+ }
+ clone.parentLayout = parent;
+ return clone;
+ } catch (CloneNotSupportedException cnse) {
+ // ignore
+ }
+ return null;
+ }
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Layout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Layout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/Layout.java Wed Sep 1 04:29:10 2004
@@ -15,6 +15,8 @@
*/
package org.apache.cocoon.portal.layout;
+import java.util.Map;
+
import org.apache.cocoon.portal.factory.Producible;
@@ -23,7 +25,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: Layout.java,v 1.9 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public interface Layout
extends Parameters, Producible {
@@ -45,5 +47,13 @@
Item getParent();
void setParent(Item item);
+
+ /**
+ * Make a copy of this layout object and of all it's children.,
+ * Each reference to a coplet instance data is replaced to
+ * an instance from the provided map. (If the map is null,
+ * the reference is copied).
+ */
+ Layout copy(Map copletInstanceDatas);
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/NamedItem.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/NamedItem.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/NamedItem.java Wed Sep 1 04:29:10 2004
@@ -20,7 +20,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: NamedItem.java,v 1.2 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class NamedItem extends Item {
@@ -42,4 +42,15 @@
this.name = name;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ NamedItem clone = (NamedItem)super.clone();
+
+ clone.name = this.name;
+
+ return clone;
+ }
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java Wed Sep 1 04:29:10 2004
@@ -16,11 +16,14 @@
package org.apache.cocoon.portal.layout.impl;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import org.apache.cocoon.portal.layout.AbstractLayout;
import org.apache.cocoon.portal.layout.CompositeLayout;
import org.apache.cocoon.portal.layout.Item;
+import org.apache.cocoon.portal.layout.Layout;
/**
@@ -29,7 +32,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: CompositeLayoutImpl.java,v 1.4 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class CompositeLayoutImpl
extends AbstractLayout
@@ -40,7 +43,9 @@
/**
* Constructor
*/
- public CompositeLayoutImpl() {}
+ public CompositeLayoutImpl() {
+ // nothing to do
+ }
/**
* Add indexed item to the itemList.
@@ -88,6 +93,39 @@
public final void removeItem(Item item) {
this.items.remove(item);
item.setParent(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.layout.CompositeLayout#createNewItem()
+ */
+ public Item createNewItem() {
+ return new Item();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ CompositeLayoutImpl clone = (CompositeLayoutImpl)super.clone();
+
+ // we are not cloning the items
+ clone.items = new ArrayList();
+
+ return clone;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.layout.Layout#copy(java.util.Map)
+ */
+ public Layout copy(Map copletInstanceDatas) {
+ CompositeLayoutImpl clone = (CompositeLayoutImpl)super.copy(copletInstanceDatas);
+ final Iterator i = this.items.iterator();
+ while ( i.hasNext() ) {
+ final Item current = (Item)i.next();
+ final Item clonedItem = current.copy(clone, copletInstanceDatas);
+ clone.addItem(clonedItem);
+ }
+ return clone;
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java Wed Sep 1 04:29:10 2004
@@ -15,8 +15,11 @@
*/
package org.apache.cocoon.portal.layout.impl;
+import java.util.Map;
+
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.apache.cocoon.portal.layout.AbstractLayout;
+import org.apache.cocoon.portal.layout.Layout;
/**
* A coplet layout holds a coplet.
@@ -25,7 +28,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: CopletLayout.java,v 1.4 2004/04/25 20:09:34 haul Exp $
+ * @version CVS $Id$
*/
public final class CopletLayout extends AbstractLayout {
@@ -39,4 +42,30 @@
return this.copletInstanceData;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ CopletLayout clone = (CopletLayout)super.clone();
+
+ this.copletInstanceData = null;
+
+ return clone;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.layout.Layout#copy(java.util.Map)
+ */
+ public Layout copy(Map copletInstanceDatas) {
+ CopletLayout clone = (CopletLayout)super.copy(copletInstanceDatas);
+ if (copletInstanceDatas == null) {
+ clone.copletInstanceData = this.copletInstanceData;
+ } else {
+ if ( this.copletInstanceData != null ) {
+ clone.copletInstanceData = (CopletInstanceData)copletInstanceDatas.get(this.copletInstanceData.getId());
+ }
+
+ }
+ return clone;
+ }
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java Wed Sep 1 04:29:10 2004
@@ -25,7 +25,7 @@
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
- * @version CVS $Id: FrameLayout.java,v 1.3 2004/04/25 20:09:34 haul Exp $
+ * @version CVS $Id$
*/
public class FrameLayout extends AbstractLayout {
@@ -46,4 +46,15 @@
this.source = source;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ FrameLayout clone = (FrameLayout)super.clone();
+
+ clone.source = this.source;
+
+ return clone;
+ }
+
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java Wed Sep 1 04:29:10 2004
@@ -26,7 +26,7 @@
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
* @author <a href="mailto:juergen.seitz@basf-it-services.com">Jürgen Seitz</a>
*
- * @version CVS $Id: LinkLayout.java,v 1.4 2004/04/25 20:09:34 haul Exp $
+ * @version CVS $Id$
*/
public class LinkLayout extends AbstractLayout implements Layout {
@@ -49,4 +49,16 @@
linkedLayoutKey = key;
}
+ /* (non-Javadoc)
+ * @see java.lang.Object#clone()
+ */
+ protected Object clone() throws CloneNotSupportedException {
+ LinkLayout clone = (LinkLayout)super.clone();
+
+ clone.linkedLayoutId = this.linkedLayoutId;
+ clone.linkedLayoutKey = this.linkedLayoutKey;
+
+ return clone;
+ }
+
}
Added: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/TabbedLayoutImpl.java
==============================================================================
--- (empty file)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/TabbedLayoutImpl.java Wed Sep 1 04:29:10 2004
@@ -0,0 +1,38 @@
+/*
+ * Copyright 1999-2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.portal.layout.impl;
+
+import org.apache.cocoon.portal.layout.Item;
+import org.apache.cocoon.portal.layout.NamedItem;
+
+
+/**
+ * This is a tabbed layout implementation
+ *
+ * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
+ *
+ * @version CVS $Id: CompositeLayout.java 30941 2004-07-29 19:56:58Z vgritsenko $
+ */
+public class TabbedLayoutImpl
+ extends CompositeLayoutImpl {
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.layout.CompositeLayout#createNewItem()
+ */
+ public Item createNewItem() {
+ return new NamedItem();
+ }
+}