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/02 15:54:33 UTC
svn commit: rev 37378 - in cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal: . acting event/aspect/impl impl layout/impl layout/renderer/aspect/impl profile profile/impl
Author: cziegeler
Date: Thu Sep 2 06:54:31 2004
New Revision: 37378
Modified:
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java
Log:
Fix layout handling
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java Thu Sep 2 06:54:31 2004
@@ -18,6 +18,7 @@
import java.util.Iterator;
import org.apache.avalon.framework.component.Component;
+import org.apache.cocoon.portal.layout.Layout;
/**
* This is the central component in the portal. It holds the configuration
@@ -28,7 +29,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: PortalService.java,v 1.3 2004/03/05 13:02:08 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public interface PortalService extends Component {
@@ -92,4 +93,12 @@
* Return the component manager for the current portal
*/
PortalComponentManager getComponentManager();
+
+ /**
+ * FIXME this is for the full-screen function
+ * @param layoutKey TODO
+ */
+ void setEntryLayout(String layoutKey, Layout object);
+ Layout getEntryLayout(String layoutKey);
+
}
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java Thu Sep 2 06:54:31 2004
@@ -31,7 +31,7 @@
* This action saves the profile
*
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Id: SaveAction.java,v 1.3 2004/03/15 18:18:19 cziegeler Exp $
+ * @version CVS $Id$
*/
public final class SaveAction
extends ServiceableAction
@@ -57,7 +57,7 @@
try {
service = (PortalService)this.manager.lookup(PortalService.ROLE);
service.setPortalName(par.getParameter("portal-name"));
- service.getComponentManager().getProfileManager().saveUserProfiles();
+ service.getComponentManager().getProfileManager().saveUserProfiles(null);
} catch (ParameterException pe) {
throw new ProcessingException("Parameter portal-name is required.");
} catch (ServiceException ce) {
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java Thu Sep 2 06:54:31 2004
@@ -36,7 +36,7 @@
* @author <a href="mailto:juergen.seitz@basf-it-services.com">Jürgen Seitz</a>
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
*
- * @version CVS $Id: AbstractContentEventAspect.java,v 1.4 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractContentEventAspect
extends AbstractLogEnabled
@@ -95,6 +95,7 @@
publisher.publish(e);
}
} catch (Exception ignore) {
+ // ignroe it
}
// the event could not be generated, so try different approach
if (e == null) {
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java Thu Sep 2 06:54:31 2004
@@ -35,14 +35,13 @@
import org.apache.cocoon.portal.event.impl.FullScreenCopletEvent;
import org.apache.cocoon.portal.layout.Layout;
import org.apache.cocoon.portal.layout.impl.CopletLayout;
-import org.apache.cocoon.portal.profile.ProfileManager;
/**
*
* @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: FullScreenCopletEventAspect.java,v 1.6 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class FullScreenCopletEventAspect
extends AbstractLogEnabled
@@ -110,12 +109,11 @@
PortalService portalService = null;
try {
portalService = (PortalService) this.manager.lookup(PortalService.ROLE);
- ProfileManager pm = portalService.getComponentManager().getProfileManager();
- final Layout old = pm.getEntryLayout();
+ final Layout old = portalService.getEntryLayout(null);
if ( old != null && old instanceof CopletLayout) {
((CopletLayout)old).getCopletInstanceData().setAspectData("fullScreen", Boolean.FALSE);
}
- pm.setEntryLayout( startingLayout );
+ portalService.setEntryLayout( null, startingLayout );
if ( startingLayout != null && startingLayout instanceof CopletLayout) {
((CopletLayout)startingLayout).getCopletInstanceData().setAspectData("fullScreen", Boolean.TRUE);
}
@@ -147,6 +145,7 @@
eventManager = (EventManager) this.manager.lookup( EventManager.ROLE );
eventManager.getRegister().unsubscribe( this );
} catch (Exception ignore) {
+ // ignore this here
} finally {
this.manager.release( eventManager );
}
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java Thu Sep 2 06:54:31 2004
@@ -35,7 +35,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: PortalManagerImpl.java,v 1.7 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class PortalManagerImpl
extends AbstractLogEnabled
@@ -61,13 +61,14 @@
*/
public void showPortal(ContentHandler contentHandler, Parameters parameters)
throws SAXException {
-// final boolean useContentDeliverer = (parameters == null ? true :
-// parameters.getParameterAsBoolean("use-content-deliverer", true));
-
PortalService service = null;
try {
service = (PortalService)this.manager.lookup(PortalService.ROLE);
- Layout portalLayout = service.getComponentManager().getProfileManager().getPortalLayout(null, null);
+ // first check for a full screen layout
+ Layout portalLayout = service.getEntryLayout(null);
+ if ( portalLayout == null ) {
+ portalLayout = service.getComponentManager().getProfileManager().getPortalLayout(null, null);
+ }
Renderer portalLayoutRenderer = service.getComponentManager().getRenderer( portalLayout.getRendererName());
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java Thu Sep 2 06:54:31 2004
@@ -36,6 +36,7 @@
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.portal.PortalComponentManager;
import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.layout.Layout;
/**
* Default implementation of a portal service using a session to store
@@ -44,7 +45,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: PortalServiceImpl.java,v 1.12 2004/07/11 14:04:34 cziegeler Exp $
+ * @version CVS $Id$
*/
public class PortalServiceImpl
extends AbstractLogEnabled
@@ -169,4 +170,29 @@
}
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.PortalService#setEntryLayout(org.apache.cocoon.portal.layout.Layout)
+ */
+ public void setEntryLayout(String layoutKey, Layout object) {
+ if ( layoutKey == null ) {
+ layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+ }
+ if ( object == null ) {
+ this.removeTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
+ } else {
+ this.setTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey, object);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.portal.PortalService#getEntryLayout()
+ */
+ public Layout getEntryLayout(String layoutKey) {
+ if ( layoutKey == null ) {
+ layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+ }
+ return (Layout)this.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
+ }
+
+
}
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java Thu Sep 2 06:54:31 2004
@@ -426,7 +426,7 @@
ProfileManager profileManager = service.getComponentManager().getProfileManager();
if ( layout instanceof CopletLayout ) {
// full screen?
- if ( layout.equals(profileManager.getEntryLayout()) ) {
+ if ( layout.equals(service.getEntryLayout(null)) ) {
Event event = new FullScreenCopletEvent(((CopletLayout)layout).getCopletInstanceData(), null);
eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
eventManager.getPublisher().publish(event);
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java Thu Sep 2 06:54:31 2004
@@ -47,7 +47,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: FullScreenCopletAspect.java,v 1.8 2004/04/25 20:09:34 haul Exp $
+ * @version CVS $Id$
*/
public class FullScreenCopletAspect extends AbstractAspect {
@@ -64,7 +64,7 @@
Boolean supportsFullScreen = (Boolean)cid.getCopletData().getAspectData("full-screen");
if ( supportsFullScreen == null || supportsFullScreen.equals(Boolean.TRUE) ) {
- final Layout fullScreenLayout = service.getComponentManager().getProfileManager().getEntryLayout();
+ final Layout fullScreenLayout = service.getEntryLayout(null);
if ( fullScreenLayout != null && fullScreenLayout.equals( layout )) {
FullScreenCopletEvent event = new FullScreenCopletEvent( cid, null );
XMLUtils.createElement(handler, "fullscreen-uri", service.getComponentManager().getLinkService().getLinkURI(event));
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java Thu Sep 2 06:54:31 2004
@@ -50,12 +50,6 @@
Layout getPortalLayout(String layoutKey, String layoutID);
/**
- * FIXME this is for the full-screen function
- */
- void setEntryLayout(Layout object);
- Layout getEntryLayout();
-
- /**
* Change the default layout key for most functions
*/
void setDefaultLayoutKey(String layoutKey);
@@ -74,22 +68,41 @@
*/
CopletData getCopletData(String copletDataId);
+ /**
+ * This method is invoked when the user logs into the portal.
+ */
void login();
+ /**
+ * This method is invoked when the user logs out of the portal
+ *
+ */
void logout();
+ /**
+ * New coplet instance datas have to be registered using this method.
+ */
void register(CopletInstanceData coplet);
+ /**
+ * Removed coplet instance datas have to be unregistered using this method.
+ */
void unregister(CopletInstanceData coplet);
+ /**
+ * New layouts have to be registered using this method.
+ */
void register(Layout layout);
+ /**
+ * New layouts have to be unregistered using this method.
+ */
void unregister(Layout layout);
/**
* Save the profile
*/
- void saveUserProfiles();
+ void saveUserProfiles(String layoutKey);
/**
* Get all instances
@@ -101,4 +114,18 @@
*/
Collection getCopletDatas();
+ /**
+ * Copy the current (default) layout and store it under
+ * the provided key.
+ * The copy includes copying of layout objects (with attached
+ * items) and coplet instance datas.
+ */
+ Layout copyProfile(String layoutKey);
+
+ /**
+ * Store the provided profile under the layoutKey.
+ * This method can be used to overwrite a profile with another
+ * one.
+ */
+ void storeProfile(Layout rootLayout, String layoutKey);
}
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java Thu Sep 2 06:54:31 2004
@@ -66,9 +66,9 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles()
+ * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles(String)
*/
- public void saveUserProfiles() {
+ public void saveUserProfiles(String layoutKey) {
// overwrite in subclass
}
@@ -142,47 +142,25 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.portal.profile.ProfileManager#setEntryLayout(org.apache.cocoon.portal.layout.Layout)
+ * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
- public void setEntryLayout(Layout object) {
- String layoutKey = this.getDefaultLayoutKey();
- PortalService service = null;
- try {
- service = (PortalService) this.manager.lookup(PortalService.ROLE);
- if ( object == null ) {
- service.removeTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
- } else {
- service.setTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey, object);
- }
- } catch (ServiceException e) {
- throw new CascadingRuntimeException("Unable to lookup service manager.", e);
- } finally {
- this.manager.release(service);
- }
+ public void configure(Configuration configuration) throws ConfigurationException {
+ Configuration child = configuration.getChild("default-layout-key");
+ // get configured default LayoutKey
+ this.defaultLayoutKey = child.getValue("portal");
}
/* (non-Javadoc)
- * @see org.apache.cocoon.portal.profile.ProfileManager#getEntryLayout()
+ * @see org.apache.cocoon.portal.profile.ProfileManager#copyProfile(java.lang.String)
*/
- public Layout getEntryLayout() {
- String layoutKey = this.getDefaultLayoutKey();
- PortalService service = null;
- try {
- service = (PortalService) this.manager.lookup(PortalService.ROLE);
- return (Layout)service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
- } catch (ServiceException e) {
- throw new CascadingRuntimeException("Unable to lookup service manager.", e);
- } finally {
- this.manager.release(service);
- }
+ public Layout copyProfile(String layoutKey) {
+ throw new RuntimeException("Copy profile is not implemented.");
}
/* (non-Javadoc)
- * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ * @see org.apache.cocoon.portal.profile.ProfileManager#storeProfile(org.apache.cocoon.portal.layout.Layout, java.lang.String)
*/
- public void configure(Configuration configuration) throws ConfigurationException {
- Configuration child = configuration.getChild("default-layout-key");
- // get configured default LayoutKey
- this.defaultLayoutKey = child.getValue("portal");
+ public void storeProfile(Layout rootLayout, String layoutKey) {
+ throw new RuntimeException("Store profile is not implemented.");
}
}
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java Thu Sep 2 06:54:31 2004
@@ -330,11 +330,6 @@
if ( null == layoutKey ) {
layoutKey = this.getDefaultLayoutKey();
}
- // FIXME actually this is a hack for full screen
- Layout l = (Layout) service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
- if ( null != l) {
- return l;
- }
final String layoutAttributeKey = "Layout:" + layoutKey;
final String layoutObjectsAttributeKey = "Layout-Map:" + layoutKey;
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java Thu Sep 2 06:54:31 2004
@@ -147,8 +147,10 @@
return layout;
}
- public void saveUserProfiles() {
- final String layoutKey = this.getDefaultLayoutKey();
+ public void saveUserProfiles(String layoutKey) {
+ if ( layoutKey == null ) {
+ layoutKey = this.getDefaultLayoutKey();
+ }
ProfileLS adapter = null;
PortalService service = null;
try {
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java Thu Sep 2 06:54:31 2004
@@ -291,11 +291,6 @@
if ( null == layoutKey ) {
layoutKey = this.getDefaultLayoutKey();
}
- // FIXME actually this is a hack for full screen
- Layout l = (Layout) service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
- if ( null != l) {
- return l;
- }
UserProfile profile = this.getUserProfile(layoutKey);
if ( profile == null ) {
Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java (original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java Thu Sep 2 06:54:31 2004
@@ -66,10 +66,6 @@
service = (PortalService) this.manager.lookup(PortalService.ROLE);
if (layoutKey == null) {
- Layout l = getEntryLayout();
- if (null != l) {
- return l;
- }
layoutKey = getDefaultLayoutKey();
}
@@ -325,13 +321,6 @@
* @see org.apache.cocoon.portal.profile.ProfileManager#unregister(org.apache.cocoon.portal.layout.Layout)
*/
public void unregister(Layout layout) {
- // nothing to do
- }
-
- /* (non-Javadoc)
- * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles()
- */
- public void saveUserProfiles() {
// nothing to do
}