You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2006/01/13 07:28:02 UTC

svn commit: r368613 - in /portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1: components/page-manager/src/java/org/apache/jetspeed/om/page/impl/ components/portal/src/java/org/apache/jetspeed/aggregator/impl/ components/portal/src/java/org/apache/jetspe...

Author: rwatler
Date: Thu Jan 12 22:27:39 2006
New Revision: 368613

URL: http://svn.apache.org/viewcvs?rev=368613&view=rev
Log:
- support nested layouts in decoration portal componentry
- add column sizes support in columns layout template and ColumnLayout
- cleanup MiltiColumnPortlet to support more robust sizes support
- fix broken portal pipeline test case
- cleanup portal-layout styles to avoid css box model layout issues
  and customize portlet content overflow settings for IE and other
  browsers
- remove broken page actions in tcolumns layout: page actions have been
  moved to header.vm decorators
- added some test cases for the use of the sizes layout property to demo
  PSML pages
- added VelocityOneColumnTable layout portlet for completeness and
  backward compatibility


Added:
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-table-layout.psml
      - copied unchanged from r368605, portals/jetspeed-2/trunk/src/webapp/WEB-INF/pages/_user/user/nested-table-layout.psml
Modified:
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/aggregator/impl/AsyncPageAggregatorImpl.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/DecorationFactoryImpl.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/PageTheme.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/decoration/TestDecorations.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/jetspeed-api/src/java/org/apache/jetspeed/decoration/DecorationFactory.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/webapp/WEB-INF/portlet.xml
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/Administrative/user-mgt.psml
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/tcolumns/layout.vm
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/css/standard-columns.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jetspeed/css/styles.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jscookmenu/css/styles.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/simple/css/styles.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/tigris/css/styles.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/jetspeed/css/styles.css
    portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/tigris/css/styles.css

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java Thu Jan 12 22:27:39 2006
@@ -234,6 +234,24 @@
     }
     
     /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object o)
+    {
+        // compare element by id
+        return ((o != null) && getClass().equals(o.getClass()) && (id != 0) && (id == ((BaseElementImpl)o).id));
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    public int hashCode()
+    {
+        // use id to generate hashCode
+        return id;
+    }
+
+    /* (non-Javadoc)
      * @see org.apache.jetspeed.om.common.SecuredResource#getSecurityConstraints()
      */
     public SecurityConstraints getSecurityConstraints()

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/aggregator/impl/AsyncPageAggregatorImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/aggregator/impl/AsyncPageAggregatorImpl.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/aggregator/impl/AsyncPageAggregatorImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/aggregator/impl/AsyncPageAggregatorImpl.java Thu Jan 12 22:27:39 2006
@@ -184,6 +184,7 @@
             }
         }
 
+
         // sync
         // TODO: synchronize on completion of all jobs
         // not sure where that code went, used to be in here, very odd

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/DecorationFactoryImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/DecorationFactoryImpl.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/DecorationFactoryImpl.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/DecorationFactoryImpl.java Thu Jan 12 22:27:39 2006
@@ -96,13 +96,15 @@
         String decorationName = getDefaultDecorationName(fragment, page);
         Decoration decoration;
 
-        if (fragment.getType().equals(Fragment.PORTLET))
+        // use layout decoration for top level layout root
+        // fragments; portlet layouts for all others
+        if (fragment.getType().equals(Fragment.LAYOUT) && fragment.equals(page.getRootFragment()))
         {
-            decoration = getPortletDecoration(decorationName, requestContext);
+            decoration = getLayoutDecoration(decorationName, requestContext);
         }
         else
         {
-            decoration = getLayoutDecoration(decorationName, requestContext);
+            decoration = getPortletDecoration(decorationName, requestContext);
         }
 
         return decoration;
@@ -217,16 +219,27 @@
      */
     protected String getDefaultDecorationName(Fragment fragment, Page page)
     {
+        // get specified decorator
         String decoration = fragment.getDecorator();
         if (decoration == null)
         {
-            if (fragment.getType().equals(Fragment.PORTLET))
+            if (fragment.getType().equals(Fragment.LAYOUT))
             {
-                decoration = page.getEffectiveDefaultDecorator(Fragment.PORTLET);
+                if (fragment.equals(page.getRootFragment()))
+                {
+                    // use page specified layout decorator name
+                    decoration = page.getEffectiveDefaultDecorator(Fragment.LAYOUT);
+                }
+                else
+                {
+                    // use default nested layout portlet decorator name
+                    decoration = DEFAULT_NESTED_LAYOUT_PORTLET_DECORATOR;
+                }
             }
             else
             {
-                decoration = page.getEffectiveDefaultDecorator(Fragment.LAYOUT);
+                // use page specified default portlet decorator name
+                decoration = page.getEffectiveDefaultDecorator(Fragment.PORTLET);
             }
         }
 

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/PageTheme.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/PageTheme.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/PageTheme.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/java/org/apache/jetspeed/decoration/PageTheme.java Thu Jan 12 22:27:39 2006
@@ -18,6 +18,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -48,22 +49,38 @@
         this.requestContext = requestContext;
         this.styleSheets = new LinkedHashSet();
         this.fragmentDecorations = new HashMap();
-        
-        Fragment rootFragment = page.getRootFragment();
-        layoutDecoration = (LayoutDecoration) decorationFactory.getDecoration(page, rootFragment, requestContext);
-        styleSheets.add(layoutDecoration.getStyleSheet());
-        fragmentDecorations.put(rootFragment.getId(), layoutDecoration);
-        
-        Iterator fragments = rootFragment.getFragments().iterator();
-        
-        while(fragments.hasNext())
+        this.layoutDecoration = (LayoutDecoration)setupFragmentDecorations(page.getRootFragment());
+    }
+
+    /**
+     * setupFragmentDecorations
+     *
+     * Setup styleSheets and fragmentDecorations from all fragments
+     * in page, including nested fragments.
+     *
+     * @param fragment page fragment
+     * @return fragment decoration
+     */
+    private Decoration setupFragmentDecorations(Fragment fragment)
+    {
+        // setup fragment decorations
+        Decoration decoration = decorationFactory.getDecoration(page, fragment, requestContext);
+        styleSheets.add(decoration.getStyleSheet());
+        fragmentDecorations.put(fragment.getId(), decoration);
+
+        // setup nested fragment decorations
+        List fragments = fragment.getFragments();
+        if ((fragments != null) && !fragments.isEmpty())
         {
-            Fragment fragment = (Fragment) fragments.next();
-            Decoration decoration = decorationFactory.getDecoration(page, fragment, requestContext);
-            styleSheets.add(decoration.getStyleSheet());
-            fragmentDecorations.put(fragment.getId(), decoration);
+            Iterator fragmentsIter = fragments.iterator();
+            while (fragmentsIter.hasNext())
+            {
+                setupFragmentDecorations((Fragment)fragmentsIter.next());
+            }
         }
-        
+
+        // return decoration; used to save page layout decoration
+        return decoration;
     }
 
     public Set getStyleSheets()

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/decoration/TestDecorations.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/decoration/TestDecorations.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/decoration/TestDecorations.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/decoration/TestDecorations.java Thu Jan 12 22:27:39 2006
@@ -86,6 +86,8 @@
         expectAndReturn(atLeastOnce(), fragmentMock, "getId", "001");
       
         expectAndReturn(atLeastOnce(), childFragmentMock, "getId", "002");   
+
+        expectAndReturn(childFragmentMock, "getFragments", null);
     }
 
     protected void setUp1() throws Exception
@@ -240,6 +242,9 @@
         //expectAndReturn(sessionMock, "getAttribute", PortalReservedParameters.RESOVLER_CACHE_ATTR);
 
         expectAndReturn(childFragmentMock, "getDecorator", "myPortletDecoration");
+
+        expectAndReturn(pageMock, "getRootFragment", fragment);
+
         Theme theme = testFactory.getTheme(page, requestContext);
         
         Decoration result1 = theme.getDecoration(fragment);

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java Thu Jan 12 22:27:39 2006
@@ -53,9 +53,9 @@
         assertEquals("PasswordCredentialValve", valves[4].toString());
         assertEquals("LoginValidationValve", valves[5].toString());
         assertEquals("ProfilerValve", valves[6].toString());
-        assertEquals("DecorationValve", valves[7].toString());
-        assertEquals("ContainerValve", valves[8].toString());
-        assertEquals("ActionValveImpl", valves[9].toString());
+        assertEquals("ContainerValve", valves[7].toString());
+        assertEquals("ActionValveImpl", valves[8].toString());
+        assertEquals("DecorationValve", valves[9].toString());
         assertEquals("AggregatorValve", valves[10].toString());
         assertEquals("CleanupValveImpl", valves[11].toString());
         

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/jetspeed-api/src/java/org/apache/jetspeed/decoration/DecorationFactory.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/jetspeed-api/src/java/org/apache/jetspeed/decoration/DecorationFactory.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/jetspeed-api/src/java/org/apache/jetspeed/decoration/DecorationFactory.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/jetspeed-api/src/java/org/apache/jetspeed/decoration/DecorationFactory.java Thu Jan 12 22:27:39 2006
@@ -36,6 +36,9 @@
  */
 public interface DecorationFactory
 {
+    /** Default nested layout portlet decorator */
+    String DEFAULT_NESTED_LAYOUT_PORTLET_DECORATOR = "clear";
+    
     /**
      * Returns a theme containing all of the Decorations for all of 
      * the layouts on the current page.

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java Thu Jan 12 22:27:39 2006
@@ -16,6 +16,7 @@
 package org.apache.jetspeed.portlets.layout;
 
 import java.io.Serializable;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -65,6 +66,12 @@
  */
 public class ColumnLayout implements Serializable
 {
+    /** Percentage widths gutter width */
+    private final static double PERCENTAGE_WIDTH_GUTTER = 0.01;
+
+    /** Percentage widths format */
+    private final static DecimalFormat PERCENTAGE_WIDTH_FORMAT = new DecimalFormat("0.00'%'");
+
     /** Constrains the columns for this layout */
     private final int numberOfColumns;
     
@@ -72,7 +79,7 @@
     private final SortedMap columns;
     
     /** Width settings for eacah column */
-    private final String[] columnWidthes;
+    private final String[] columnWidths;
     
     /** 
      * The type of layout this is, required for extract row/column properties
@@ -99,13 +106,16 @@
      *            property settings based on the type of layout in use. This
      *            effectively allows for the interchange of multiple layout
      *            formats without one format effecting the settings of another.
+     * @param columnWidths
+     *            widths for each column that accumulate to 100% if percentages
+     *            are used.
      * @see org.apache.jetspeed.om.page.Fragment#getType()
      */
-    public ColumnLayout(int numberOfColumns, String layoutType, String[] columnWidthes)
+    public ColumnLayout(int numberOfColumns, String layoutType, String[] columnWidths)
     {
         this.numberOfColumns = numberOfColumns;
         this.layoutType = layoutType;
-        this.columnWidthes = columnWidthes;
+        this.columnWidths = columnWidths;
         eventListeners = new ArrayList();
 
         columns = new TreeMap();
@@ -140,11 +150,14 @@
      *            effectively allows for the interchange of multiple layout
      *            formats without one format effecting the settings of another.
      * @param fragments Initial set of fragments to add to this layout.
+     * @param columnWidths
+     *            widths for each column that accumulate to 100% if percentages
+     *            are used.
      * @throws LayoutEventException
      */
-    public ColumnLayout(int numberOfColumns, String layoutType, Collection fragments, String[] columnWidthes) throws LayoutEventException
+    public ColumnLayout(int numberOfColumns, String layoutType, Collection fragments, String[] columnWidths) throws LayoutEventException
     {
-        this(numberOfColumns, layoutType, columnWidthes);
+        this(numberOfColumns, layoutType, columnWidths);
         Iterator fragmentsItr = fragments.iterator();
         try
         {
@@ -242,52 +255,61 @@
      * @return the width to be used with the specified column.  Or 0 if no value
      * has been specified.
      */
-    public int getColumnWidth(int columnNumber)
+    public String getColumnWidth(int columnNumber)
     {
-        if (columnNumber < numberOfColumns)
+        if ((columnWidths != null) && (columnNumber < numberOfColumns))
         {
-            String stringValue = columnWidthes[columnNumber];
-            if (stringValue.endsWith("%"))
-            {
-                return Integer.parseInt(stringValue.substring(0, (stringValue.length() - 1)));
-            }
-            else
+            String columnWidth = columnWidths[columnNumber];
+
+            // subtract "gutter" width from last percentage
+            // column to prevent wrapping on rounding errors
+            // of column widths when rendered in the browser
+            if ((numberOfColumns > 1) && (columnNumber == (numberOfColumns - 1)))
             {
-                return Integer.parseInt(stringValue);
+                int percentIndex = columnWidth.lastIndexOf('%');
+                if (percentIndex > 0)
+                {
+                    try
+                    {
+                        double width = Double.parseDouble(columnWidth.substring(0,percentIndex).trim());
+                        synchronized (PERCENTAGE_WIDTH_FORMAT)
+                        {
+                            columnWidth = PERCENTAGE_WIDTH_FORMAT.format(width - PERCENTAGE_WIDTH_GUTTER);
+                        }
+                    }
+                    catch (NumberFormatException nfe)
+                    {
+                    }
+                }
             }
+            return columnWidth;
         }
-        else
-        {
-            return 0;
-        }
+        return "0";
     }
     
     /**
-     * IE has a non-conformant box modle that takes into account both padding
-     * and margin settings.  You can use this method to return the column width
-     * reduced by the <code>reductionAmount</code> to prevent unwanted 
-     * scrolling/wrapping.
-     *
+     * returns the float to be used with the specified column.
      * 
-     * @param columnNumber whose width has been requested.  Will be reduced by
-     * the <code>reductionAmount</code> argument.
-     * @param reductionAmount amount to subtract from the column's width setting
-     * @return column width reduced by the <code>reductionAmount</code>.
+     * @param columnNumber whose width has been requested.
+     * @return "right" for the last column, "left" if more than one
+     *         column, or "none" otherwise.
      */
-    public int getSafeColumnWidth(int columnNumber, int reductionAmount)
+    public String getColumnFloat(int columnNumber)
     {
-        int columnWidth = getColumnWidth(columnNumber);
-        if(columnWidth > 0)
+        if ((numberOfColumns > 1) && (columnNumber < numberOfColumns))
         {
-            return (columnWidth - reductionAmount);
-        }
-        else
-        {
-            return 0;
+            if (columnNumber == (numberOfColumns - 1))
+            {
+                return "right";
+            }
+            else
+            {
+                return "left";
+            }
         }
-    
+        return "none";
     }
-
+    
     /**
      * @return <code>java.util.Collection</code> all of columns (also
      *         Collection objects) in order within this layout. All Collections

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Thu Jan 12 22:27:39 2006
@@ -16,6 +16,7 @@
 package org.apache.jetspeed.portlets.layout;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -52,128 +53,103 @@
     protected final static String PARAM_NUM_COLUMN = "columns";
     protected final static int DEFAULT_NUM_COLUMN = 2;
     protected final static String PARAM_COLUMN_SIZES = "sizes";
-    protected final static String DEFAULT_COLUMN_SIZES = "50%,50%";
+    protected final static String DEFAULT_ONE_COLUMN_SIZES = "100%";
+    protected final static String DEFAULT_TWO_COLUMN_SIZES = "50%,50%";
+    protected final static String DEFAULT_THREE_COLUMN_SIZES = "34%,33%,33%";
 
     private int numColumns = 0;
-    private String colSizes = null;
+    private String columnSizes = null;
     private String portletName = null;
     private String layoutType;
-    private List columnSizes = null;
     protected DecorationFactory decorators;
-    private Map layouts ;
 
     public void init( PortletConfig config ) throws PortletException
     {
         super.init(config);
-        layouts = new HashMap();
+        this.portletName = config.getPortletName();
+        this.layoutType = config.getInitParameter("layoutType");
+        if (this.layoutType == null)
+        {
+            throw new PortletException("Layout type not specified for " + this.portletName);
+        }
         this.numColumns = Integer.parseInt(config.getInitParameter(PARAM_NUM_COLUMN));
-        if (0 == numColumns)
-            numColumns = 1;
-        this.colSizes = config.getInitParameter(PARAM_COLUMN_SIZES);
-        if (colSizes != null || colSizes.trim().length() > 0)
+        if (this.numColumns < 1)
         {
-            columnSizes = getCellSizes(colSizes);            
+            this.numColumns = 1;
         }
-        this.portletName = config.getPortletName();
-        this.layoutType = config.getInitParameter("layoutType");
-        
-        decorators = (DecorationFactory)getPortletContext().getAttribute(CommonPortletServices.CPS_DECORATION_FACTORY);
-        if (null == decorators)
+        this.columnSizes = config.getInitParameter(PARAM_COLUMN_SIZES);
+        if ((this.columnSizes == null) || (this.columnSizes.trim().length() == 0))
+        {
+            switch (this.numColumns)
+            {
+            case 1: this.columnSizes = DEFAULT_ONE_COLUMN_SIZES; break;
+            case 2: this.columnSizes = DEFAULT_TWO_COLUMN_SIZES; break;
+            case 3: this.columnSizes = DEFAULT_THREE_COLUMN_SIZES; break;
+            default: this.columnSizes = null; break;
+            }
+        }
+        if (this.columnSizes == null)
+        {
+            throw new PortletException("Column sizes cannot be defaulted for " + this.numColumns + " columns and are not specified for " + this.portletName);
+        }
+       
+        this.decorators = (DecorationFactory)getPortletContext().getAttribute(CommonPortletServices.CPS_DECORATION_FACTORY);
+        if (null == this.decorators)
         {
             throw new PortletException("Failed to find the Decoration Factory on portlet initialization");
         }        
-        
     }
 
     public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException
     {
+        // get context and test for maximized window rendering
         RequestContext context = getRequestContext(request);
         PortletWindow window = context.getPortalURL().getNavigationalState().getMaximizedWindow();
-        Page page = getRequestContext(request).getPage();
+        if (window != null)
+        {
+            super.doView(request, response);
+            return;
+        }
+
+        // get fragment column sizes
         Fragment f = getFragment(request, false);
+        String fragmentColumnSizes = columnSizes;
+        String fragmentColumnSizesProperty = f.getProperty(Fragment.SIZES_PROPERTY_NAME);
+        if (fragmentColumnSizesProperty != null)
+        {
+            fragmentColumnSizes = fragmentColumnSizesProperty;
+        }
+        String [] fragmentColumnSizesArray = fragmentColumnSizes.split("\\,");
+        List fragmentColumnSizesList = new ArrayList(fragmentColumnSizesArray.length);
+        for (int i = 0; (i < fragmentColumnSizesArray.length); i++)
+        {
+            fragmentColumnSizesList.add(fragmentColumnSizesArray[i]);
+        }
+
+        // construct layout object
         ColumnLayout layout;
         try
         {
-            layout = new ColumnLayout(numColumns, layoutType, f.getFragments(), this.colSizes.split("\\,") );
-            layout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, page, layoutType));
+            layout = new ColumnLayout(numColumns, layoutType, f.getFragments(), fragmentColumnSizesArray);
+            layout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, context.getPage(), layoutType));
         }
         catch (LayoutEventException e1)
         {
             throw new PortletException("Failed to build ColumnLayout "+e1.getMessage(), e1);
         }
 
-       
-
-        // if (targetState != null && targetState.isMaximized())
-        if (window != null)
-        {
-            super.doView(request, response);
-            return;
-        }
-
+        // invoke the JSP associated with this portlet
         request.setAttribute("columnLayout", layout);
         request.setAttribute("numberOfColumns", new Integer(numColumns));
         request.setAttribute("decorationFactory", this.decorators);
-        List columnSizes = this.columnSizes;
-
-        // Determine custom column sizes in the psml
-        String customSizes = f.getProperty(Fragment.SIZES_PROPERTY_NAME);
-        if ( customSizes != null && customSizes.trim().length() > 0 )
-        {
-            columnSizes = getCellSizes(customSizes);
-        }
-                
-        request.setAttribute("columnSizes", columnSizes);        
-
-        // now invoke the JSP associated with this portlet
+        request.setAttribute("columnSizes", fragmentColumnSizesList);        
         super.doView(request, response);
-        
         request.removeAttribute("decorationFactory");
         request.removeAttribute("columnLayout");
         request.removeAttribute("numberOfColumns");
         request.removeAttribute("columnSizes");
     }
 
-    /**
-     * Parses the size config info and returns a list of size values for the
-     * current set
-     * 
-     * @param sizeList
-     *            java.lang.String a comma separated string a values
-     * @return a List of values
-     */
-    protected static List getCellSizes( String sizeList )
-    {
-        List list = new Vector();
-
-        if (sizeList != null)
-        {
-            StringTokenizer st = new StringTokenizer(sizeList, ",");
-            while (st.hasMoreTokens())
-            {
-                list.add(st.nextToken());
-            }
-        }
-
-        return list;
-    }
-
-    protected static List getCellClasses( String classlist )
-    {
-        List list = new Vector();
-
-        if (classlist != null)
-        {
-            StringTokenizer st = new StringTokenizer(classlist, ",");
-            while (st.hasMoreTokens())
-            {
-                list.add(st.nextToken());
-            }
-        }
-
-        return list;
-    }
-
     public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException
     {
         String decoratorChange = request.getParameter("decorator");
@@ -242,7 +218,7 @@
             ColumnLayout layout;
             try
             {
-                layout = new ColumnLayout(numColumns, layoutType, rootFragment.getFragments(), this.colSizes.split("\\,") );
+                layout = new ColumnLayout(numColumns, layoutType, rootFragment.getFragments(), null);
                 layout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, page, layoutType));
             }
             catch (LayoutEventException e1)

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java Thu Jan 12 22:27:39 2006
@@ -24,7 +24,7 @@
 
 public class TestColumnLayout extends MockObjectTestCase
 {
-    private static final String[] widthes=new String[]{"25%", "50%", "25%"};
+    private static final String[] widths=new String[]{"25%", "50%", "25%"};
     
     private ColumnLayout layout;
 
@@ -87,17 +87,16 @@
         assertEquals(2, layout.getLastRowNumber(0));
         assertEquals(2, layout.getLastRowNumber(1));       
         
-        // test widthes
-        assertEquals(25, layout.getColumnWidth(0));
-        assertEquals(50, layout.getColumnWidth(1));
-        assertEquals(25, layout.getColumnWidth(2));
-        
-        assertEquals(23, layout.getSafeColumnWidth(0, 2));
-        assertEquals(48, layout.getSafeColumnWidth(1, 2));
-        assertEquals(23, layout.getSafeColumnWidth(2, 2));
-        
-        assertEquals(0, layout.getColumnWidth(3));        
-        assertEquals(0, layout.getSafeColumnWidth(3, 2));
+        // test widths
+        assertEquals("25%", layout.getColumnWidth(0));
+        assertEquals("50%", layout.getColumnWidth(1));
+        assertEquals("24.99%", layout.getColumnWidth(2));        
+        assertEquals("0", layout.getColumnWidth(3));        
+
+        assertEquals("left", layout.getColumnFloat(0));
+        assertEquals("left", layout.getColumnFloat(1));
+        assertEquals("right", layout.getColumnFloat(2));
+        assertEquals("none", layout.getColumnFloat(3));
     }
 
     public void testSameRowSameColumn() throws Exception
@@ -114,7 +113,7 @@
         f2.setLayoutRow(0);
         f2.setLayoutColumn(0);
 
-        ColumnLayout layout = new ColumnLayout(3, "test", widthes);
+        ColumnLayout layout = new ColumnLayout(3, "test", null);
         layout.addFragment(f1);
         layout.addFragment(f2);
 
@@ -147,7 +146,7 @@
         f2.setName("test");
         f2.setLayoutRow(0);
 
-        ColumnLayout layout = new ColumnLayout(3, "test", widthes);
+        ColumnLayout layout = new ColumnLayout(3, "test", null);
         layout.addFragment(f1);
         layout.addFragment(f2);
 
@@ -176,7 +175,7 @@
         f2.setName("test");
         f2.setLayoutColumn(0);
 
-        ColumnLayout layout = new ColumnLayout(3, "test", widthes);
+        ColumnLayout layout = new ColumnLayout(3, "test", null);
         layout.addFragment(f1);
         layout.addFragment(f2);
 
@@ -196,7 +195,7 @@
         f1.setLayoutRow(0);
         f1.setLayoutColumn(5);
 
-        ColumnLayout layout = new ColumnLayout(3, "test", widthes);
+        ColumnLayout layout = new ColumnLayout(3, "test", null);
         layout.addFragment(f1);
 
         // Exceeded columns just get dumped into the last column
@@ -462,7 +461,7 @@
         f8.setLayoutRow(1);
         f8.setLayoutColumn(2);
 
-        layout = new ColumnLayout(3, "test", widthes );
+        layout = new ColumnLayout(3, "test", widths);
         layout.addFragment(f1);
         layout.addFragment(f2);
         layout.addFragment(f3);

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/webapp/WEB-INF/portlet.xml?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/layout-portlets/src/webapp/WEB-INF/portlet.xml Thu Jan 12 22:27:39 2006
@@ -53,6 +53,43 @@
     </portlet-info>
 </portlet>
 
+<portlet id="VelocityOneColumnTable">
+    <portlet-name>VelocityOneColumnTable</portlet-name>
+    <display-name>One Column Layout Using Velocity And Tables</display-name>
+    <init-param>
+      <name>ViewPage</name>
+      <value>tcolumns</value>
+    </init-param>
+    <init-param>
+      <name>MaxPage</name>
+      <value>maximized</value>
+    </init-param>
+    <init-param>
+      <name>columns</name>
+      <value>1</value>
+    </init-param>
+    <init-param>
+      <name>sizes</name>
+      <value>100%</value>
+    </init-param>
+    <init-param>
+      <name>layoutType</name>
+      <value>OneColumn</value>
+    </init-param>
+    <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class>
+    <expiration-cache>-1</expiration-cache>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>view</portlet-mode>
+      <portlet-mode>edit</portlet-mode>
+      <portlet-mode>help</portlet-mode>      
+    </supports>
+    <portlet-info>
+      <title>VelocityOneColumnTable</title>
+      <short-title>OneColumnTable</short-title>
+    </portlet-info>
+</portlet>
+
 <portlet id="VelocityTwoColumns">
     <portlet-name>VelocityTwoColumns</portlet-name>
     <display-name>Two Columns Layout Using Velocity</display-name>
@@ -167,7 +204,7 @@
 
 <portlet id="VelocityThreeColumnsTable">
     <portlet-name>VelocityThreeColumnsTable</portlet-name>
-    <display-name>Three Columns Layout Using Velocity Tables</display-name>
+    <display-name>Three Columns Layout Using Velocity And Tables</display-name>
     <init-param>
       <name>ViewPage</name>
       <value>tcolumns</value>
@@ -450,7 +487,7 @@
 
 <portlet id="VelocityTwoColumnsTable">
     <portlet-name>VelocityTwoColumnsTable</portlet-name>
-    <display-name>Two Columns Layout Using Velocity Table</display-name>
+    <display-name>Two Columns Layout Using Velocity And Tables</display-name>
     <init-param>
       <name>ViewPage</name>
       <value>tcolumns</value>

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/Administrative/user-mgt.psml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/Administrative/user-mgt.psml?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/Administrative/user-mgt.psml (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/Administrative/user-mgt.psml Thu Jan 12 22:27:39 2006
@@ -23,7 +23,8 @@
   <metadata name="title" xml:lang="hu">Felhasználók beállítása</metadata>
   <metadata name="title" xml:lang="zh">用户管理</metadata>
 
-  <fragment id="um-2" type="layout" name="jetspeed-layouts::VelocityTwoColumns2575">
+  <fragment id="um-2" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
+    <property layout="TwoColumns" name="sizes" value="33%,64%" />
     <fragment id="um-3" type="portlet" name="j2-admin::UserBrowserPortlet">
       <property layout="TwoColumns" name="row" value="0" />
       <property layout="TwoColumns" name="column" value="0" />

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/pages/_user/user/nested-layout.psml Thu Jan 12 22:27:39 2006
@@ -19,6 +19,7 @@
     </fragment>                                
     <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
       <property layout="OneColumn" name="row" value="1"/>
+      <property layout="TwoColumns" name="sizes" value="40%,60%"/>
       <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet">
         <property layout="TwoColumns" name="row" value="0"/>
         <property layout="TwoColumns" name="column" value="0"/>

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm Thu Jan 12 22:27:39 2006
@@ -66,21 +66,17 @@
 <input type="submit" name="jsSubmitPage" value="Add Page" />
 </form>
    #end
-
- <div id="$renderResponse.namespace" class="portal-layout portal-layout-$layoutType">
-	#set ($sizeIndex = 0)
+ #set($layoutClass = "portal-layout")
+ #if($myFragment != $myPage.getRootFragment())
+   #set($layoutClass = "portal-nested-layout")
+ #end
+ <div id="$renderResponse.namespace" class="${layoutClass} ${layoutClass}-${layoutType}">
+	#set ($columnIndex = 0)
 	#foreach($column in $columnLayout.columns)
-	  #set($columnWidth = "auto")
 	  
-	  #*
-	  #if ($columnLayout.getColumnWidth($sizeIndex) > 0)
-	    #set($columnWidth = $columnLayout.getColumnWidth($sizeIndex))
-	  #end
-	  *#
-
-	  #set ($sizeIndex = $sizeIndex + 1)  
-	  <div id="column-$sizeIndex" class="portal-layout-column" >
-		<!--  <div class="portal-layout-column-gutter"> --> 
+      #set($columnFloat = $columnLayout.getColumnFloat($columnIndex))
+	  #set($columnWidth = $columnLayout.getColumnWidth($columnIndex))
+	  <div id="column_${myFragment.getId()}_${columnIndex}" class="portal-layout-column portal-layout-column-${layoutType}-${columnIndex}" style="float:${columnFloat}; width:${columnWidth};">
 	     #foreach($f in $column)
   	     
            ## Set up coordinates for this fragment
@@ -90,7 +86,7 @@
            #set($row = $coords.y)
 			
            ## get the decorated Portlet content
-		   <div class="portal-layout-cell" >
+		   <div class="portal-layout-cell portal-layout-cell-${layoutType}-${row}-${col}"" >
 		   ## editing block
 		   #if($editing)
 		   <div class="portlet-edit-bar">
@@ -160,10 +156,10 @@
 		   #end
 		   </div>
 		 #end
-		<!-- </div> -->
 	  </div>
-	 #end
-   </div>  
+	  #set ($columnIndex = $columnIndex + 1)  
+	#end
+  </div>  
 
   #if ($myFragment == $myPage.getRootFragment())
     #parse($myFragment.decoration.footer)

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/tcolumns/layout.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/tcolumns/layout.vm?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/tcolumns/layout.vm (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/WEB-INF/templates/layout/html/tcolumns/layout.vm Thu Jan 12 22:27:39 2006
@@ -51,39 +51,6 @@
 #set($decorationFactory = $renderRequest.getAttribute("decorationFactory"))
 #set($rc = $renderRequest.getAttribute("org.apache.jetspeed.request.RequestContext"))
 
-#if ($actions.size()>0)
-<table  width="100%" cellspacing="0" cellpadding="0" >
-  <tr>
-    <td class="PContent" style="font-size:1pt;" nowrap="true">&nbsp;</td>
-
-    <td align="left" valign="middle" class="PContent" >
-    </td>
-    <td align="right" valign="middle" class="PContent" >
-      <table border="0" cellpadding="0" cellspacing="0" >
-      <tr>
-      #foreach ($action in $actions)
-      #if ($action.Alt == "edit" || $action.Alt == "view")
-      <td align="right" valign="middle" class="PContent" >
-      #set ($myImage = "images/${action.Alt}.gif")
-      <a href="${action.Action}" title="${action.Name}" ><img src="#GetPageResource($myImage)"  alt="${action.Alt}" border="0"></a>
-      </td>
-      #end
-      #end
-	  #if($editing == true)    		  	  
-	   #set ($chooser = "${jetspeed.basePath}/system/customizer/portlet-selector.psml")
-	      <td align="right" valign="middle" class="PContent" >
-	      	<a href="javascript:openWindow('$response.encodeURL($chooser)')"><img src="#GetPageResource('images/select.gif')" border="0" title="Select"/></a>
-	      </td>	  
-	  #end      
-      </tr>
-      </table>
-    </td>
-
-    <td class="PContent" style="font-size:1pt;" nowrap="true">&nbsp;</td>
-  </tr>
-</table>
-#end
-
 <form name='portletform' action="$renderResponse.createActionURL()" method="post">
 <input type='hidden' name='portlets'/>
 <input type='hidden' name='page' value='$myPage'/>
@@ -110,7 +77,11 @@
    #end
 
 
-<div id="portal-layout-$htmlUtil.getSafeElementId($myPage.path)" class="portal-layout">
+#set($layoutClass = "portal-layout")
+#if($myFragment != $myPage.getRootFragment())
+  #set($layoutClass = "portal-nested-layout")
+#end
+<div id="portal-layout-$htmlUtil.getSafeElementId($myPage.path)" class="${layoutClass} ${layoutClass}-${layoutType}">
 <table  width="100%" cellspacing="0" cellpadding="0" >
   <tr>
      #set ($sizeIndex = 0)
@@ -126,7 +97,7 @@
        <td  valign="top">
        #end
        #set ($sizeIndex = $sizeIndex + 1)     
-       <table width="100%" class="portal-layout-column">
+       <table width="100%" class="portal-layout-column portal-layout-column-${layoutType}-${sizeIndex}">
        #foreach($f in $column)       
         <tr>
          <td width="100%">			

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/css/standard-columns.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/css/standard-columns.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/css/standard-columns.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/css/standard-columns.css Thu Jan 12 22:27:39 2006
@@ -15,35 +15,70 @@
 */
 
 /**
- * This page contains standardized settings for spacing one, two and three
- * column layouts.  You can use this within your custom decorations style by
- * adding this line to the top of your css/styles.css:
+ * This page contains standardized settings for spacing column layouts.
+ * You can use this within your custom decorations style by adding this
+ * line to the top of your css/styles.css:
  *
  * @import url("../../css/standard-columns.css");
  */
 
-/** TwoColumn Sepcific widths */
-.portal-layout-TwoColumns .portal-layout-column
-{  
-  padding-left:1%;
-  width: 48%;
-  float: left;  
-}
-
-/** OneColumn Sepcific widths */
-.portal-layout-OneColumn .portal-layout-column
-{  
-  padding-left:1%;
-  padding-right:1%;
-  width: 97%;
-  float: left;  
+DIV.PContent
+{
+  /*
+    overflow honored on portlet content
+    on all browsers except IE; IE requires
+    width to be specified, see
+    portal-layout-column below
+  */
+  overflow:hidden;
 }
 
+DIV.portlet
+{
+  /*
+    all layout padding done here to prevent
+    box model problems with specified widths
+    on portal-layout-column and to yield
+    even spacing between portlets with nested
+    layouts
+  */
+  margin-top:5px;
+  margin-bottom:5px;
+  margin-left:5px;
+  margin-right:5px;
+}
+
+DIV.portal-layout
+{
+}
+
+DIV.portal-nested-layout
+{
+}
+
+DIV.portal-layout-cell
+{
+}
+
+DIV.portal-layout-column
+{
+  /*
+    float and width stypes computed dynamically
+    in layout templates for these elements
+  */
+  display:inline; 
+}
 
-/** ThreeColumn Sepcific widths */
-.portal-layout-ThreeColumns .portal-layout-column
-{  
-  padding-left:1%;
-  width: 31%;
-  float: left;  
-}
\ No newline at end of file
+* html DIV.portal-layout-column
+{
+  /*
+    overflow required by IE to be defined
+    on elements with width specified; using
+    "starhtml" hack here to restrict to IE
+  */
+  overflow:hidden; 
+}
+
+DIV.portal-layout-maxed
+{
+}

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jetspeed/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jetspeed/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jetspeed/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jetspeed/css/styles.css Thu Jan 12 22:27:39 2006
@@ -259,18 +259,4 @@
    text-align: right;   
 }
 
-.portal-layout-column
-{
-  display:inline; 
-  float: left;
-}
-.portal-layout-cell
-{
-  padding: 2px;
-}
-
-.portal-layout-maxed
-{
-  padding: 15px;
-}
         

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jscookmenu/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jscookmenu/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jscookmenu/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/jscookmenu/css/styles.css Thu Jan 12 22:27:39 2006
@@ -103,13 +103,3 @@
    position: relative;
    top: -12px;
 }
-
-.portal-layout-column
-{
-  display:inline; 
-  float: left;
-}
-.portal-layout-cell
-{
-  padding: 2px;
-}
\ No newline at end of file

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/simple/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/simple/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/simple/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/simple/css/styles.css Thu Jan 12 22:27:39 2006
@@ -33,9 +33,3 @@
 a:hover {
     color: #f30 !important;
 }
-
-.layout-simple .portal-layout
-{
-  padding-top: 25px;
-}
-       
\ No newline at end of file

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/tigris/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/tigris/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/tigris/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/layout/tigris/css/styles.css Thu Jan 12 22:27:39 2006
@@ -296,21 +296,3 @@
    display: inline;
 }
 
-
-.layout-tigris .portal-layout
-{
-	padding-top:6px;
-}
-
-
-.portal-layout-cell
-{
-  padding-bottom: 4px;
-}
-
-.portal-layout-maxed
-{
-  padding-top: 4px;
-  padding-right: 2px;
-}
-        
\ No newline at end of file

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/jetspeed/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/jetspeed/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/jetspeed/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/jetspeed/css/styles.css Thu Jan 12 22:27:39 2006
@@ -65,7 +65,6 @@
 
 .portlet-Jetspeed .PContent
 {
-    overflow : scroll;
 
 }
 

Modified: portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/tigris/css/styles.css
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/tigris/css/styles.css?rev=368613&r1=368612&r2=368613&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/tigris/css/styles.css (original)
+++ portals/jetspeed-2/branches/JETSPEED-BRANCH-2.0.1/src/webapp/decorations/portlet/tigris/css/styles.css Thu Jan 12 22:27:39 2006
@@ -67,7 +67,6 @@
     background-color: #EFEFEF;
     border-right: 1px solid #AAAAAA;
     border-bottom: 1px solid #AAAAAA;
-    overflow: hidden;
     font-size: small;
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org