Author: roy.russo(a)jboss.com
Date: 2006-11-28 13:18:11 -0500 (Tue, 28 Nov 2006)
New Revision: 5737
Modified:
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
Log:
JBPORTAL-1139 - fixed window ordering
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-11-28
17:21:10 UTC (rev 5736)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-11-28
18:18:11 UTC (rev 5737)
@@ -242,24 +242,29 @@
moveWindows = actionRequest.getParameterValues(region +
"_instances");
}
}
+
+ SortedSet windows = (SortedSet)windowMap.get(sortRegion);
+
+ for (int i = 0; i < moveWindows.length; i++)
+ {
+ Window window = page.getWindow(moveWindows[i]);
+ if ("up".equals(op))
+ {
+ int order = getMoveUpOrder(window, windows);
+ window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(order));
+ }
+ else if ("down".equals(op))
+ {
+ int order = getMoveDownOrder(window, windows);
+ window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(order));
+ }
+ }
}
catch (Exception e)
{
// todo
}
- for (int i = 0; i < moveWindows.length; i++)
- {
- Window window = page.getWindow(moveWindows[i]);
- if ("up".equals(op))
- {
- window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(getOrder(window) - 1));
- }
- else if ("down".equals(op))
- {
- window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(getOrder(window) + 1));
- }
- }
actionResponse.setRenderParameter("editPageSelect", editPage);
}
else if ("newpage".equals(op))
@@ -352,4 +357,50 @@
return Integer.MAX_VALUE;
}
}
+
+ private static int getMoveUpOrder(Window window, SortedSet set)
+ {
+ Window previous = null;
+ for (Iterator i = set.iterator(); i.hasNext();)
+ {
+ Window current = (Window)i.next();
+
+ if (current.getName().equalsIgnoreCase(window.getName()))
+ {
+ if (previous == null)
+ {
+ return getOrder(current);
+ }
+ else
+ {
+ return (getOrder(previous) - 1);
+ }
+ }
+ previous = current;
+ }
+ return 0;
+ }
+
+ private int getMoveDownOrder(Window window, SortedSet set)
+ {
+ for (Iterator i = set.iterator(); i.hasNext();)
+ {
+ Window current = (Window)i.next();
+
+ if (current.getName().equalsIgnoreCase(window.getName()))
+ {
+ Window next = (Window)i.next();
+
+ if (next == null)
+ {
+ return getOrder(current);
+ }
+ else
+ {
+ return (getOrder(next) + 1);
+ }
+ }
+ }
+ return 0;
+ }
}
Show replies by date