From portal-commits at lists.jboss.org Mon Oct 22 09:09:17 2007 Content-Type: multipart/mixed; boundary="===============4735057993804938631==" MIME-Version: 1.0 From: portal-commits at lists.jboss.org To: portal-commits at lists.jboss.org Subject: [portal-commits] JBoss Portal SVN: r8732 - branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata. Date: Mon, 22 Oct 2007 09:09:16 -0400 Message-ID: --===============4735057993804938631== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: thomas.heute(a)jboss.com Date: 2007-10-22 09:09:16 -0400 (Mon, 22 Oct 2007) New Revision: 8732 Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mod= el/portal/metadata/PageMetaData.java branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mod= el/portal/metadata/WindowMetaData.java Log: JBPORTAL-1300: Let the user define an initial window-state and mode on a wi= ndow by specifying something lie: maximized edit Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/c= ore/model/portal/metadata/PageMetaData.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mo= del/portal/metadata/PageMetaData.java 2007-10-22 10:25:33 UTC (rev 8731) +++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mo= del/portal/metadata/PageMetaData.java 2007-10-22 13:09:16 UTC (rev 8732) @@ -22,21 +22,28 @@ *************************************************************************= *****/ package org.jboss.portal.core.model.portal.metadata; = +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.jboss.logging.Logger; +import org.jboss.portal.WindowState; import org.jboss.portal.common.xml.XMLTools; +import org.jboss.portal.core.model.content.spi.ContentProviderRegistry; import org.jboss.portal.core.model.portal.PageContainer; import org.jboss.portal.core.model.portal.PortalObject; -import org.jboss.portal.core.model.content.spi.ContentProviderRegistry; import org.w3c.dom.Element; = -import java.util.List; - /** * @author Julien Viet + * @author Thoams Heute * @version $Revision$ */ public class PageMetaData extends PortalObjectMetaData { - + private static final Logger logger =3D Logger.getLogger(PageMetaData.cl= ass); + = public PageMetaData() { } @@ -75,6 +82,9 @@ e.printStackTrace(); } } + = + // Log errors if any + checkConstraints(pageMD); = // Add the contained pages List pageElts =3D XMLTools.getChildren(pageElt, "page"); @@ -95,6 +105,48 @@ // return pageMD; } + = + private static boolean checkConstraints(PageMetaData pageMD) + { + // Check that no more than 1 window has been defined as maximized + Collection values =3D pageMD.getChildren().values(); + List maximizedWindows =3D new ArrayList(); + if (values !=3D null) + { + Iterator it =3D values.iterator(); + while (it.hasNext()) + { + PortalObjectMetaData poMetaData =3D(PortalObjectMetaData)it.ne= xt(); + if (poMetaData instanceof WindowMetaData) + { + WindowMetaData windowMetaData =3D (WindowMetaData)poMetaDat= a; + if (WindowState.MAXIMIZED.toString().equals(windowMetaData.= getInitialWindowState())) + { + maximizedWindows.add(windowMetaData); + if (maximizedWindows.size() > 1) + { + logger.debug("Set initial window state to NORMAL for = window '" + windowMetaData + "'"); + windowMetaData.setInitialWindowState(WindowState.NORM= AL.toString()); + } + } + } + } + } + if (maximizedWindows.size() > 1) + { + StringBuffer windowsList =3D new StringBuffer(); + Iterator it =3D maximizedWindows.iterator(); + while (it.hasNext()) + { + WindowMetaData windowMD =3D (WindowMetaData)it.next(); + windowsList.append(windowMD.toString() + "\n"); + } + logger.error("More than one window is defined as maximized for pa= ge '" + pageMD.getName() + "'. The following windows" + + " have been defined as maximized:\n" + windowsList); + return false; + } + return true; + } = public String toString() { Modified: branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/c= ore/model/portal/metadata/WindowMetaData.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mo= del/portal/metadata/WindowMetaData.java 2007-10-22 10:25:33 UTC (rev 8731) +++ branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/mo= del/portal/metadata/WindowMetaData.java 2007-10-22 13:09:16 UTC (rev 8732) @@ -22,6 +22,9 @@ *************************************************************************= *****/ package org.jboss.portal.core.model.portal.metadata; = +import org.jboss.logging.Logger; +import org.jboss.portal.WindowState; +import org.jboss.portal.core.impl.model.portal.WindowImpl; import org.jboss.portal.core.model.portal.Page; import org.jboss.portal.core.model.portal.PortalObject; import org.jboss.portal.core.model.portal.Window; @@ -37,13 +40,21 @@ */ public class WindowMetaData extends PortalObjectMetaData { - + = + private static final Logger logger =3D Logger.getLogger(WindowMetaData.= class); + = /** The window region. */ protected String region; = /** The window order. */ protected int order; = + /** The initial window state. */ + protected String initialWindowState; + + /** The initial window state. */ + protected String initialMode; + /** The window content. */ protected ContentMetaData content; = @@ -89,7 +100,27 @@ { this.contentType =3D contentType; } + = + public String getInitialWindowState() + { + return initialWindowState; + } + = + public void setInitialWindowState(String initialWindowState) + { + this.initialWindowState =3D initialWindowState; + } = + public String getInitialMode() + { + return initialMode; + } + = + public void setInitialMode(String initialMode) + { + this.initialMode =3D initialMode; + } + protected PortalObject newInstance(BuildContext buildContext, PortalObj= ect parent) throws Exception { if (!(parent instanceof Page)) @@ -103,7 +134,15 @@ // window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_REGION, region= ); window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER, "" + or= der); - + if (initialWindowState !=3D null) + { + window.setDeclaredProperty(WindowImpl.PORTAL_INITIAL_WINDOW_STATE= , "" + initialWindowState); + } + if (initialMode !=3D null) + { + window.setDeclaredProperty(WindowImpl.PORTAL_INITIAL_MODE, "" + i= nitialMode); + } + = // return window; } @@ -120,6 +159,31 @@ String region =3D XMLTools.asString(XMLTools.getUniqueChild(windowEl= t, "region", true)); windowMD.setRegion(region); = + // Get initial window state + Element element =3D XMLTools.getUniqueChild(windowElt, "initial-wind= ow-state", false); + if (element !=3D null) + { + String initialWindowState =3D XMLTools.asString(element); + if (initialWindowState.toLowerCase().equals(WindowState.MAXIMIZED= .toString()) + || (initialWindowState.toLowerCase().equals(WindowState.MINIMI= ZED.toString())) + || (initialWindowState.toLowerCase().equals(WindowState.NORMAL= .toString()))) + { + windowMD.setInitialWindowState(initialWindowState); + } + else + { + logger.error("initial-window-state for '" + windowName + "' mu= st be one of 'MAXIMIZED', 'MINIMIZED' or 'NORMAL'"); + } + } + + // Get initial mode + element =3D XMLTools.getUniqueChild(windowElt, "initial-mode", false= ); + if (element !=3D null) + { + String initialMode =3D XMLTools.asString(element); + windowMD.setInitialMode(initialMode); + } + // int height =3D Integer.parseInt(XMLTools.asString(XMLTools.getUnique= Child(windowElt, "height", true))); windowMD.setOrder(height); --===============4735057993804938631==--