Author: taylor
Date: Thu Dec 24 02:39:17 2009
New Revision: 893685
URL: http://svn.apache.org/viewvc?rev=893685&view=rev
Log:
bug fix. move portlets was kinda (sick) broken. This patch seems to get back to
respectable column up,down and cross moves. sorry charjie
we are running all the new rest actions without a single unit test safety net.
maybe the portletplacement was a fat beast, but at least it had unit tests....
Modified:
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
Modified:
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml?rev=893685&r1=893684&r2=893685&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
(original)
+++
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
Thu Dec 24 02:39:17 2009
@@ -45,37 +45,36 @@
<fragment id="dp-23" type="portlet"
name="j2-admin::UserRegistrationPortlet">
<property layout="TwoColumns" name="row" value="3" />
<property layout="TwoColumns" name="column" value="1" />
- </fragment>
+ </fragment>
<fragment-reference id="dp-24-wp-reference" refid="wp-definition">
<property name="row" value="4"/>
<property name="column" value="1"/>
- </fragment-reference>
-
+ </fragment-reference>
<fragment id="dp-7" type="portlet" name="demo::PickANumberPortlet" >
- <property layout="TwoColumns" name="row" value="1" />
+ <property layout="TwoColumns" name="row" value="0" />
<property layout="TwoColumns" name="column" value="0" />
</fragment>
<fragment id="dp-16" type="portlet" name="demo::RoleSecurityTest">
- <property layout="TwoColumns" name="row" value="2" />
+ <property layout="TwoColumns" name="row" value="1" />
<property layout="TwoColumns" name="column" value="0" />
</fragment>
<fragment id="dp-9" type="portlet"
name="webcontent::ReverseProxyIFramePortlet" decorator="gray-gradient-noborder">
- <property layout="TwoColumns" name="row" value="3" />
+ <property layout="TwoColumns" name="row" value="2" />
<property layout="TwoColumns" name="column" value="0" />
</fragment>
<fragment id="dp-10" type="portlet" name="webcontent::IFramePortlet"
decorator="gray-gradient-noborder">
- <property layout="TwoColumns" name="row" value="4" />
+ <property layout="TwoColumns" name="row" value="3" />
<property layout="TwoColumns" name="column" value="0" />
<preference name="SRC">
<value>http://www.apache.org/</value>
</preference>
</fragment>
<fragment id="dp-17" type="portlet" name="demo::UserInfoTest">
- <property layout="TwoColumns" name="row" value="5" />
+ <property layout="TwoColumns" name="row" value="4" />
<property layout="TwoColumns" name="column" value="0" />
</fragment>
<fragment id="dp-18" type="portlet" name="demo::BookmarkPortlet">
- <property layout="TwoColumns" name="row" value="6" />
+ <property layout="TwoColumns" name="row" value="5" />
<property layout="TwoColumns" name="column" value="0" />
</fragment>
</fragment>
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java?rev=893685&r1=893684&r2=893685&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
(original)
+++
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
Thu Dec 24 02:39:17 2009
@@ -432,23 +432,39 @@
{
row = set.size();
}
-
+
+ int prevRow = contentFragment.getLayoutRow();
+ boolean movingDown = (prevRow < row);
pageLayoutComponent.updateRowColumn(contentFragment,
row, col);
-
- SortedSet<ContentFragment> tailSet =
set.tailSet(contentFragment);
-
- for (ContentFragment f : tailSet)
+ SortedSet<ContentFragment> sscf =
this.getSortedChildFragmentSet(set, movingDown, contentFragment);
+ int rowCount = 0;
+ for (ContentFragment f : sscf)
{
- if (!f.getId().equals(contentFragment.getId()))
+ if (f != contentFragment)
{
- ++row;
-
- if (row != f.getLayoutRow())
- {
- pageLayoutComponent.updateRowColumn(f,
row, col);
- }
+ if (rowCount != f.getLayoutRow())
+ pageLayoutComponent.updateRowColumn(f,
rowCount, col);
}
+ rowCount++;
+
}
+
+// pageLayoutComponent.updateRowColumn(contentFragment,
row, col);
+
+// SortedSet<ContentFragment> tailSet =
set.tailSet(contentFragment);
+//
+// for (ContentFragment f : tailSet)
+// {
+// if (!f.getId().equals(contentFragment.getId()))
+// {
+// ++row;
+//
+// if (row != f.getLayoutRow())
+// {
+// pageLayoutComponent.updateRowColumn(f,
row, col);
+// }
+// }
+// }
}
}
catch (Exception e)
@@ -719,5 +735,66 @@
}
}
}
+
+ private class ExtendedContentFragmentRowComparator implements
Comparator<ContentFragment>
+ {
+ private boolean movingDown;
+ private ContentFragment movingFragment;
+ public ExtendedContentFragmentRowComparator(boolean movingDown,
ContentFragment movingFragment)
+ {
+ this.movingDown = movingDown;
+ this.movingFragment = movingFragment;
+ }
+ public int compare(ContentFragment f1, ContentFragment f2)
+ {
+ int r1 = f1.getLayoutRow();
+ int r2 = f2.getLayoutRow();
+
+ if (r1 == r2)
+ {
+ if (f1 == movingFragment)
+ {
+ return (movingDown) ? 1: -1;
+ }
+ else if (f2 == movingFragment)
+ {
+ return (movingDown) ? -1: 1;
+ }
+ return 0;
+ }
+ else if (r1 != -1 && r2 == -1)
+ {
+ return -1;
+ }
+ else if (r1 == -1 && r2 != -1)
+ {
+ return 1;
+ }
+ else if (r1 > r2)
+ {
+ return 1;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+
+ /**
+ * Returns child content fragment set array ordered by the column index
from the layout content fragment.
+ * @param layoutFragment
+ * @param columnCount
+ * @return
+ */
+ private SortedSet<ContentFragment>
getSortedChildFragmentSet(SortedSet<ContentFragment> layoutFragments, boolean
movingDown, ContentFragment movedFragment)
+ {
+ SortedSet<ContentFragment> set = new TreeSet<ContentFragment>(new
ExtendedContentFragmentRowComparator(movingDown, movedFragment));
+ for (ContentFragment child : layoutFragments)
+ {
+ set.add(child);
+ }
+ return set;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]