Author: julien(a)jboss.com
Date: 2007-02-28 18:33:29 -0500 (Wed, 28 Feb 2007)
New Revision: 6475
Added:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/editWindowTheme.xhtml
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortlet.java
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortletInvokerService.java
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatingPortletInvokerService.java
Log:
- federated portlet was wrapped 2 times, one by the federating invoker and one by the
federated invoker, only keep the federated invoker
- when a portlet is selected (from navigating from the instance), select the right invoker
and paginate the portlet shown correctly
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java
===================================================================
---
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java 2007-02-28
23:06:03 UTC (rev 6474)
+++
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java 2007-02-28
23:33:29 UTC (rev 6475)
@@ -49,6 +49,7 @@
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.federation.FederatedPortletInvoker;
import org.jboss.portal.portlet.federation.FederatingPortletInvoker;
+import org.jboss.portal.portlet.federation.impl.FederatedPortlet;
import org.jboss.portal.portlet.info.MetaInfo;
import org.jboss.portal.portlet.info.PreferenceInfo;
import org.jboss.portal.portlet.info.PreferencesInfo;
@@ -126,8 +127,7 @@
private PortletInvoker getPortletInvoker()
{
- FederatedPortletInvoker federated =
federatingPortletInvoker.getFederatedInvoker(selectedFederatedId);
- return federated;
+ return federatingPortletInvoker.getFederatedInvoker(selectedFederatedId);
}
public Collection getFederatedIds()
@@ -204,12 +204,16 @@
{
try
{
+ // Get portlets
List portlets = new ArrayList(getPortletInvoker().getPortlets());
- //
+ // Sort
+ Collections.sort(portlets, comparator);
+
+ // Compute upper bound
int to = Math.min(selectedFrom + 10, portlets.size());
- //
+ // Range
return portlets.subList(selectedFrom, to);
}
catch (PortletInvokerException e)
@@ -263,12 +267,44 @@
}
}
- public void selectPortlet()
+ public String selectPortlet()
{
FacesContext ctx = FacesContext.getCurrentInstance();
selectedPortletId =
(String)ctx.getExternalContext().getRequestParameterMap().get("id");
selectedPlugin =
(String)ctx.getExternalContext().getRequestParameterMap().get("plugin");
- selectedFrom = 0; // Could we guess the index of the portlet in the list ?
+ selectedFrom = 0;
+
+ try
+ {
+ // Get portlet
+ PortletContext portletCtx =
PortletContext.createPortletContext(selectedPortletId);
+ FederatedPortlet portlet =
(FederatedPortlet)federatingPortletInvoker.getPortlet(portletCtx);
+
+ //
+ selectedFederatedId = portlet.getFederatedId();
+
+ // Get sorted portlets
+ List portlets = new ArrayList(getPortletInvoker().getPortlets());
+ Collections.sort(portlets, comparator);
+
+ // Find the portlet index in the list
+ for (int i = 0;i < portlets.size();i++)
+ {
+ Portlet current = (Portlet)portlets.get(i);
+ if (portlet.getContext().getId().equals(current.getContext().getId()))
+ {
+ selectedFrom = (i / paginationSize) * paginationSize;
+ break;
+ }
+ }
+ }
+ catch (PortletInvokerException e)
+ {
+ e.printStackTrace();
+ }
+
+ // It may be called from the instance stuff so we need to returns portlet
+ return "portlets";
}
public void selectFrom()
@@ -340,81 +376,17 @@
}
}
- public static void sortPortlets(List portlets, final String column, final boolean
ascending)
+ /** A comparator for portlets. */
+ final Comparator comparator = new Comparator()
{
- Comparator comparator = new Comparator()
+ public int compare(Object o1, Object o2)
{
- public int compare(Object o1, Object o2)
- {
- Portlet p1 = (Portlet)o1;
- Portlet p2 = (Portlet)o2;
+ Portlet p1 = (Portlet)o1;
+ Portlet p2 = (Portlet)o2;
+ return p1.getContext().getId().compareToIgnoreCase(p2.getContext().getId());
+ }
+ };
- if (p1 == null || p2 == null)
- {
- return 0;
- }
-
- if (column == null)
- {
- return 0;
- }
- if (column.equals("id"))
- {
- return ascending ?
p1.getContext().getId().compareToIgnoreCase(p2.getContext().getId()) :
p2.getContext().getId()
- .compareToIgnoreCase(p1.getContext().getId());
- }
- if (column.equals("name"))
- {
-
- LocalizedString displayName =
p1.getInfo().getMeta().getMetaValue(MetaInfo.DISPLAY_NAME);
- FacesContext ctx = FacesContext.getCurrentInstance();
- Locale locale = ctx.getExternalContext().getRequestLocale();
- String name1 = displayName.getString(locale, true);
- if (name1 == null)
- {
- name1 = "";
- }
- displayName = p2.getInfo().getMeta().getMetaValue(MetaInfo.DISPLAY_NAME);
- String name2 = displayName.getString(locale, true);
- if (name2 == null)
- {
- name2 = "";
- }
-
- return ascending ? name1.compareToIgnoreCase(name2) : name2
- .compareToIgnoreCase(name1);
- }
-
- if (column.equals("description"))
- {
- LocalizedString displayName =
p1.getInfo().getMeta().getMetaValue(MetaInfo.DESCRIPTION);
- FacesContext ctx = FacesContext.getCurrentInstance();
- Locale locale = ctx.getExternalContext().getRequestLocale();
- String name1 = displayName.getString(locale, true);
- if (name1 == null)
- {
- name1 = "-";
- }
- displayName = p2.getInfo().getMeta().getMetaValue(MetaInfo.DESCRIPTION);
- String name2 = displayName.getString(locale, true);
- if (name2 == null)
- {
- name2 = "-";
- }
-
- return ascending ? name1.compareToIgnoreCase(name2) : name2
- .compareToIgnoreCase(name1);
- }
-
- else
- {
- return 0;
- }
- }
- };
- Collections.sort(portlets, comparator);
- }
-
public class AuthorizationBean extends AbstractAuthorizationBean
{
Added:
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/editWindowTheme.xhtml
===================================================================
---
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/editWindowTheme.xhtml
(rev 0)
+++
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/editWindowTheme.xhtml 2007-02-28
23:33:29 UTC (rev 6475)
@@ -0,0 +1,19 @@
+<div
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html">
+
+<ui:composition template="/WEB-INF/jsp/management/objectTemplate.xhtml">
+
+ <ui:define name="content">
+
+ <h3>Please set the display options for the window: <h:outputText
value="#{portalobjectmgr.selectedObject.name}"/></h3>
+ <br/>
+ <ui:include src="/WEB-INF/jsp/management/common/editTheme.xhtml"/>
+
+ </ui:define>
+
+</ui:composition>
+
+</div>
+
Modified:
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortlet.java
===================================================================
---
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortlet.java 2007-02-28
23:06:03 UTC (rev 6474)
+++
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortlet.java 2007-02-28
23:33:29 UTC (rev 6475)
@@ -24,6 +24,7 @@
import org.jboss.portal.portlet.Portlet;
import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.federation.FederatedPortletInvoker;
import org.jboss.portal.portlet.info.PortletInfo;
/**
@@ -39,8 +40,15 @@
/** . */
final Portlet portlet;
- public FederatedPortlet(PortletContext compoundContext, Portlet portlet)
+ /** . */
+ final FederatedPortletInvoker invoker;
+
+ public FederatedPortlet(FederatedPortletInvoker invoker, PortletContext
compoundContext, Portlet portlet)
{
+ if (invoker == null)
+ {
+ throw new IllegalArgumentException("No null invoker accepted");
+ }
if (compoundContext == null)
{
throw new IllegalArgumentException("No null id accepted");
@@ -49,10 +57,16 @@
{
throw new IllegalArgumentException("No null portlet accepted");
}
+ this.invoker = invoker;
this.compoundContext = compoundContext;
this.portlet = portlet;
}
+ public String getFederatedId()
+ {
+ return invoker.getId();
+ }
+
public PortletContext getContext()
{
return compoundContext;
Modified:
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortletInvokerService.java
===================================================================
---
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortletInvokerService.java 2007-02-28
23:06:03 UTC (rev 6474)
+++
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatedPortletInvokerService.java 2007-02-28
23:33:29 UTC (rev 6475)
@@ -91,7 +91,7 @@
for (Iterator i = portletInvoker.getPortlets().iterator(); i.hasNext();)
{
Portlet portlet = (Portlet)i.next();
- Portlet federatedPortlet = new FederatedPortlet(reference(portlet.getContext()),
portlet);
+ Portlet federatedPortlet = new FederatedPortlet(this,
reference(portlet.getContext()), portlet);
federatedPortlets.add(federatedPortlet);
}
return federatedPortlets;
@@ -106,7 +106,7 @@
Portlet portlet = portletInvoker.getPortlet(portletContext);
// Return correct result
- return new FederatedPortlet(compoundPortletContext, portlet);
+ return new FederatedPortlet(this, compoundPortletContext, portlet);
}
private class FederatedInstanceContext implements InstanceContext
Modified:
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatingPortletInvokerService.java
===================================================================
---
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatingPortletInvokerService.java 2007-02-28
23:06:03 UTC (rev 6474)
+++
trunk/portlet-federation/src/main/org/jboss/portal/portlet/federation/impl/FederatingPortletInvokerService.java 2007-02-28
23:33:29 UTC (rev 6475)
@@ -138,22 +138,8 @@
public Portlet getPortlet(PortletContext compoundPortletContext) throws
IllegalArgumentException, PortletInvokerException
{
- FederatedPortletInvoker federated;
- try
- {
- federated = getFederatedPortletInvokerFor(compoundPortletContext);
- }
- catch (NoSuchPortletException e)
- {
- log.warn(e);
- return null;
- }
-
- //
- Portlet portlet = federated.getPortlet(compoundPortletContext);
-
- //
- return new FederatedPortlet(compoundPortletContext, portlet);
+ FederatedPortletInvoker federated =
getFederatedPortletInvokerFor(compoundPortletContext);
+ return federated.getPortlet(compoundPortletContext);
}
public PortletInvocationResponse invoke(PortletInvocation invocation) throws
PortletInvokerException