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 ta...@apache.org on 2005/12/07 03:49:25 UTC
svn commit: r354675 - in /portals/jetspeed-2/trunk/components/portal/src:
java/org/apache/jetspeed/layout/impl/ test/org/apache/jetspeed/layout/
Author: taylor
Date: Tue Dec 6 18:49:21 2005
New Revision: 354675
URL: http://svn.apache.org/viewcvs?rev=354675&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-387
This completes the first phase of the Layout AJAX Api
we will revisit this post 2.0 release
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/AddPortletAction.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java
portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/layout/TestLayout.java
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/AddPortletAction.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/AddPortletAction.java?rev=354675&r1=354674&r2=354675&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/AddPortletAction.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/AddPortletAction.java Tue Dec 6 18:49:21 2005
@@ -115,17 +115,23 @@
Fragment fragment = pageManager.newFragment();
fragment.setType(Fragment.PORTLET);
fragment.setName(portletId);
- // TODO: this does not handle nested layouts
- Fragment root = requestContext.getPage().getRootFragment();
- root.getFragments().add(fragment);
+ fragment.setLayoutColumn(iCol);
+ fragment.setLayoutRow(iRow);
Coordinate coordinate = placement.add(fragment, new CoordinateImpl(iCol, iRow, iCol, iRow));
Page page = placement.syncPageFragments();
- if (pageManager != null)
- pageManager.updatePage(page);
+ // TODO: this does not handle nested layouts
+ Fragment root = requestContext.getPage().getRootFragment();
+ root.getFragments().add(fragment);
+ pageManager.updatePage(page);
resultMap.put(STATUS, "success");
+ resultMap.put(NEWCOL, String.valueOf(coordinate
+ .getNewCol()));
+ resultMap.put(NEWROW, String.valueOf(coordinate
+ .getNewRow()));
+
}
catch (Exception e)
{
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java?rev=354675&r1=354674&r2=354675&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java Tue Dec 6 18:49:21 2005
@@ -121,6 +121,7 @@
protected void processFragment(Fragment fragment)
throws PortletPlacementException
{
+ int rowCount = 0;
// Process this fragment, then its children
if(fragment != null)
{
@@ -131,16 +132,13 @@
int col = getFragmentCol(fragment);
int row = getFragmentRow(fragment);
- if(col > -1 && row > -1)
+ if(row < 0)
{
- // Add this fragment to the data structures
- addFragmentInternal(fragment, col, row);
- }
- else
- {
- // log a message
- log.error("fragment found without a row or column property, skipping");
- }
+ row = rowCount;
+ }
+ // Add this fragment to the data structures
+ addFragmentInternal(fragment, col, row);
+ rowCount++;
}
// Process the children
@@ -195,6 +193,8 @@
while (frags.hasNext())
{
Fragment f = (Fragment)frags.next();
+ if (f == null)
+ continue;
f.setLayoutColumn(col);
f.setLayoutRow(row);
row++;
@@ -215,7 +215,10 @@
// directly from the fragment via fragment.getFragmentRow()
protected int getFragmentCol(Fragment fragment)
{
- return fragment.getLayoutColumn();
+ int col = fragment.getLayoutColumn();
+ if (col < 0)
+ col = 0;
+ return col;
}
// Adds the fragment to the internal data structures
@@ -231,7 +234,7 @@
// Establish the maximum column number
if(col > this.numberOfColumns)
{
- this.numberOfColumns = col;
+ this.numberOfColumns = col + 1;
}
}
@@ -243,7 +246,8 @@
{
if(this.numberOfColumns == -1)
{
- throw new PortletPlacementException("no columns found");
+ //throw new PortletPlacementException("no columns found");
+ this.numberOfColumns = 1; // create a new column
}
// Allocate the memory for the array of ArrayLists
@@ -325,7 +329,50 @@
public Coordinate add(Fragment fragment, Coordinate coordinate) throws PortletPlacementException
{
- return addInternal(fragment, coordinate);
+ int col = coordinate.getNewCol();
+ int row = coordinate.getNewRow();
+
+ if (this.numberOfColumns == -1)
+ {
+ this.numberOfColumns = 1;
+ this.columnsList = new Vector[this.numberOfColumns];
+ col = 0;
+ }
+ if (col > this.numberOfColumns)
+ {
+ // expand
+ this.numberOfColumns++;
+ col = this.numberOfColumns - 1;
+ Vector [] temp = new Vector[this.numberOfColumns];
+ for (int ix = 0; ix < this.numberOfColumns - 1; ix++)
+ temp[ix] = this.columnsList[ix];
+ temp[col] = new Vector();
+ this.columnsList = temp;
+ }
+
+ Vector column = this.columnsList[col];
+ if (column != null)
+ {
+ for (int ix = 0; ix < column.size(); ix++)
+ {
+ Fragment frag = (Fragment)column.get(ix);
+ if (frag == null)
+ continue;
+ Coordinate c = (Coordinate)this.fragmentCoordinateMap.get(frag);
+ if (c == null)
+ continue;
+ if (c.getNewCol() == row)
+ {
+ row++;
+ }
+
+ }
+ column.add(fragment);
+ Coordinate newCoord = new CoordinateImpl(col, row, col, row);
+ this.fragmentCoordinateMap.put(fragment, newCoord);
+ return newCoord;
+ }
+ return coordinate;
}
// Adds an existing fragment to the coordinate position
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java?rev=354675&r1=354674&r2=354675&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java Tue Dec 6 18:49:21 2005
@@ -76,7 +76,9 @@
String portletId = requestContext.getRequestParameter(PORTLETID);
if (portletId == null)
{
- throw new Exception("portlet id not provided");
+ success = false;
+ resultMap.put(REASON, "Portlet ID not provided");
+ return success;
}
resultMap.put(PORTLETID, portletId);
@@ -91,16 +93,21 @@
// Use the Portlet Placement Manager to accomplish the removal
PortletPlacementContext placement = new PortletPlacementContextImpl(requestContext);
Fragment fragment = placement.getFragmentById(portletId);
- Coordinate coordinate = placement.remove(fragment);
-
- Page page = placement.syncPageFragments();
- if (pageManager != null)
- pageManager.updatePage(page);
+ if (fragment == null)
+ {
+ success = false;
+ resultMap.put(REASON, "Fragment not found");
+ return success;
+ }
+ //Coordinate coordinate = placement.remove(fragment);
+ Page page = requestContext.getPage();
+ page.removeFragmentById(fragment.getId());
+ pageManager.updatePage(page);
// Build the results for the response
resultMap.put(STATUS, "success");
- resultMap.put(OLDCOL, String.valueOf(coordinate.getOldCol()));
- resultMap.put(OLDROW, String.valueOf(coordinate.getOldRow()));
+ resultMap.put(OLDCOL, String.valueOf(fragment.getLayoutColumn()));
+ resultMap.put(OLDROW, String.valueOf(fragment.getLayoutRow()));
}
catch (Exception e)
{
Modified: portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/layout/TestLayout.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/layout/TestLayout.java?rev=354675&r1=354674&r2=354675&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/layout/TestLayout.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/layout/TestLayout.java Tue Dec 6 18:49:21 2005
@@ -87,7 +87,7 @@
cm.stop();
}
- public void xtestNullRequestContext()
+ public void testNullRequestContext()
{
// Get the layout that has a null request context
try
@@ -100,7 +100,7 @@
}
}
- public void xtestNullParameters()
+ public void testNullParameters()
{
try
{
@@ -168,7 +168,7 @@
//moveSuccess("moveabs", "2", "0", "1", "0", "2", "0", "1");
}
- public void xtestMoveSuccess()
+ public void testMoveSuccess()
{
moveSuccess("moveabs", "1", "0", "0", "0", "0", "0", "0"); // Doesn't
// really
@@ -264,7 +264,7 @@
// move
}
- public void xtestMoveFailure()
+ public void testMoveFailure()
{
moveFailure("moveabs", "bogus", "0", "0", "0", "0"); // non integer
// portlet id
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org