org.apache.jetspeed.layout.impl
Class PortletPlacementContextImpl

java.lang.Object
  extended by org.apache.jetspeed.layout.impl.PortletPlacementContextImpl
All Implemented Interfaces:
org.apache.jetspeed.layout.PortletPlacementContext

public class PortletPlacementContextImpl
extends Object
implements org.apache.jetspeed.layout.PortletPlacementContext

Portal Placement Context The purpose of the object is to provide an API that can be used to move a portlet fragment on the page. This includes moving, adding, removing and getting information about portlets that are on the page and portlets that are available to be added to the page. An important note about this object: This object is really only intended to be used to do a single operation such as "moveabs" or "add". After performing the operation, the hashmap data structures are not correct and should not be used for subsequent operations. The reason they are incorrect is that when a fragment is moved, the coordinate of fragments below it are now different. These could be updated, but it really doesn't serve a purpose since this is a short lived object.

Version:
$Id: $
Author:
David Gurney, David Sean Taylor

Field Summary
protected  Vector[] columnsList
           
protected  org.apache.jetspeed.om.page.Fragment containerFragment
           
protected  Map fragmentCoordinateMap
           
protected  Map fragmentMap
           
private  org.apache.commons.logging.Log log
          Logger
private static int NO_DEPTH_LIMIT
           
protected  int numberOfColumns
           
protected  org.apache.jetspeed.om.page.Page page
           
 
Constructor Summary
PortletPlacementContextImpl(org.apache.jetspeed.request.RequestContext requestContext)
           
PortletPlacementContextImpl(org.apache.jetspeed.request.RequestContext requestContext, org.apache.jetspeed.om.page.Fragment container, int maxdepth)
           
 
Method Summary
 org.apache.jetspeed.layout.Coordinate add(org.apache.jetspeed.om.page.Fragment fragment, org.apache.jetspeed.layout.Coordinate coordinate)
           
 int addColumns(int col)
           
protected  void addFragmentInternal(org.apache.jetspeed.om.page.Fragment fragment, int col, int row)
           
protected  org.apache.jetspeed.layout.Coordinate addInternal(org.apache.jetspeed.om.page.Fragment fragment, org.apache.jetspeed.layout.Coordinate coordinate)
           
 org.apache.jetspeed.om.page.Fragment debugFragments(String debug)
           
 org.apache.jetspeed.om.page.Fragment getFragment(String fragmentId)
           
protected  org.apache.jetspeed.om.page.Fragment getFragmentAtCoordinate(org.apache.jetspeed.layout.Coordinate coordinate, boolean isOld)
           
 org.apache.jetspeed.om.page.Fragment getFragmentAtNewCoordinate(org.apache.jetspeed.layout.Coordinate coordinate)
           
 org.apache.jetspeed.om.page.Fragment getFragmentAtOldCoordinate(org.apache.jetspeed.layout.Coordinate coordinate)
           
 org.apache.jetspeed.om.page.Fragment getFragmentById(String fragmentId)
           
protected  int getFragmentCol(org.apache.jetspeed.om.page.Fragment fragment)
           
protected  int getFragmentRow(org.apache.jetspeed.om.page.Fragment fragment)
           
 int getNumberColumns()
           
 int getNumberRows(int col)
           
protected  void init(org.apache.jetspeed.request.RequestContext requestContext, org.apache.jetspeed.om.page.Fragment container, int maxdepth)
           
protected  List makeSpace(org.apache.jetspeed.layout.Coordinate newCoordinate)
           
 org.apache.jetspeed.layout.Coordinate moveAbsolute(org.apache.jetspeed.om.page.Fragment fragment, org.apache.jetspeed.layout.Coordinate newCoordinate)
           
protected  org.apache.jetspeed.layout.Coordinate moveDirection(org.apache.jetspeed.om.page.Fragment fragment, int deltaCol, int deltaRow)
           
 org.apache.jetspeed.layout.Coordinate moveDown(org.apache.jetspeed.om.page.Fragment fragment)
           
 org.apache.jetspeed.layout.Coordinate moveLeft(org.apache.jetspeed.om.page.Fragment fragment)
           
 org.apache.jetspeed.layout.Coordinate moveRight(org.apache.jetspeed.om.page.Fragment fragment)
           
 org.apache.jetspeed.layout.Coordinate moveUp(org.apache.jetspeed.om.page.Fragment fragment)
           
protected  void populateArray()
          Now that we know the number of columns, the array can be constructed and populated
protected  void prepareList(Vector list, int row)
           
protected  int processFragment(org.apache.jetspeed.om.page.Fragment fragment, int remainingDepth, int rowCount)
          Evaluate each portlet fragment and populate the internal data structures
 org.apache.jetspeed.layout.Coordinate remove(org.apache.jetspeed.om.page.Fragment fragment)
           
 org.apache.jetspeed.om.page.Page syncPageFragments()
          Takes the internal portlet placement state and stores back out to fragment state
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_DEPTH_LIMIT

private static final int NO_DEPTH_LIMIT
See Also:
Constant Field Values

log

private org.apache.commons.logging.Log log
Logger


columnsList

protected Vector[] columnsList

fragmentCoordinateMap

protected Map fragmentCoordinateMap

fragmentMap

protected Map fragmentMap

numberOfColumns

protected int numberOfColumns

page

protected org.apache.jetspeed.om.page.Page page

containerFragment

protected org.apache.jetspeed.om.page.Fragment containerFragment
Constructor Detail

PortletPlacementContextImpl

public PortletPlacementContextImpl(org.apache.jetspeed.request.RequestContext requestContext)
                            throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

PortletPlacementContextImpl

public PortletPlacementContextImpl(org.apache.jetspeed.request.RequestContext requestContext,
                                   org.apache.jetspeed.om.page.Fragment container,
                                   int maxdepth)
                            throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException
Method Detail

init

protected void init(org.apache.jetspeed.request.RequestContext requestContext,
                    org.apache.jetspeed.om.page.Fragment container,
                    int maxdepth)
             throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

processFragment

protected int processFragment(org.apache.jetspeed.om.page.Fragment fragment,
                              int remainingDepth,
                              int rowCount)
                       throws org.apache.jetspeed.layout.PortletPlacementException
Evaluate each portlet fragment and populate the internal data structures

Throws:
org.apache.jetspeed.layout.PortletPlacementException

debugFragments

public org.apache.jetspeed.om.page.Fragment debugFragments(String debug)

syncPageFragments

public org.apache.jetspeed.om.page.Page syncPageFragments()
Takes the internal portlet placement state and stores back out to fragment state

Specified by:
syncPageFragments in interface org.apache.jetspeed.layout.PortletPlacementContext
Returns:
the managed page layout with updated fragment state.

getFragmentRow

protected int getFragmentRow(org.apache.jetspeed.om.page.Fragment fragment)

getFragmentCol

protected int getFragmentCol(org.apache.jetspeed.om.page.Fragment fragment)

addFragmentInternal

protected void addFragmentInternal(org.apache.jetspeed.om.page.Fragment fragment,
                                   int col,
                                   int row)

populateArray

protected void populateArray()
                      throws org.apache.jetspeed.layout.PortletPlacementException
Now that we know the number of columns, the array can be constructed and populated

Throws:
org.apache.jetspeed.layout.PortletPlacementException

prepareList

protected void prepareList(Vector list,
                           int row)

makeSpace

protected List makeSpace(org.apache.jetspeed.layout.Coordinate newCoordinate)

addColumns

public int addColumns(int col)
               throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

add

public org.apache.jetspeed.layout.Coordinate add(org.apache.jetspeed.om.page.Fragment fragment,
                                                 org.apache.jetspeed.layout.Coordinate coordinate)
                                          throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
add in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

addInternal

protected org.apache.jetspeed.layout.Coordinate addInternal(org.apache.jetspeed.om.page.Fragment fragment,
                                                            org.apache.jetspeed.layout.Coordinate coordinate)
                                                     throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getFragment

public org.apache.jetspeed.om.page.Fragment getFragment(String fragmentId)
                                                 throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getFragmentAtOldCoordinate

public org.apache.jetspeed.om.page.Fragment getFragmentAtOldCoordinate(org.apache.jetspeed.layout.Coordinate coordinate)
                                                                throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
getFragmentAtOldCoordinate in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getFragmentAtNewCoordinate

public org.apache.jetspeed.om.page.Fragment getFragmentAtNewCoordinate(org.apache.jetspeed.layout.Coordinate coordinate)
                                                                throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
getFragmentAtNewCoordinate in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getFragmentAtCoordinate

protected org.apache.jetspeed.om.page.Fragment getFragmentAtCoordinate(org.apache.jetspeed.layout.Coordinate coordinate,
                                                                       boolean isOld)
                                                                throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getFragmentById

public org.apache.jetspeed.om.page.Fragment getFragmentById(String fragmentId)
                                                     throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
getFragmentById in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getNumberColumns

public int getNumberColumns()
                     throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
getNumberColumns in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

getNumberRows

public int getNumberRows(int col)
                  throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
getNumberRows in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveAbsolute

public org.apache.jetspeed.layout.Coordinate moveAbsolute(org.apache.jetspeed.om.page.Fragment fragment,
                                                          org.apache.jetspeed.layout.Coordinate newCoordinate)
                                                   throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
moveAbsolute in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveDirection

protected org.apache.jetspeed.layout.Coordinate moveDirection(org.apache.jetspeed.om.page.Fragment fragment,
                                                              int deltaCol,
                                                              int deltaRow)
                                                       throws org.apache.jetspeed.layout.PortletPlacementException
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveDown

public org.apache.jetspeed.layout.Coordinate moveDown(org.apache.jetspeed.om.page.Fragment fragment)
                                               throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
moveDown in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveUp

public org.apache.jetspeed.layout.Coordinate moveUp(org.apache.jetspeed.om.page.Fragment fragment)
                                             throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
moveUp in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveLeft

public org.apache.jetspeed.layout.Coordinate moveLeft(org.apache.jetspeed.om.page.Fragment fragment)
                                               throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
moveLeft in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

moveRight

public org.apache.jetspeed.layout.Coordinate moveRight(org.apache.jetspeed.om.page.Fragment fragment)
                                                throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
moveRight in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException

remove

public org.apache.jetspeed.layout.Coordinate remove(org.apache.jetspeed.om.page.Fragment fragment)
                                             throws org.apache.jetspeed.layout.PortletPlacementException
Specified by:
remove in interface org.apache.jetspeed.layout.PortletPlacementContext
Throws:
org.apache.jetspeed.layout.PortletPlacementException


Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.