Get unique names of portlets on page from within a theme // lookup service
Context ctx = new InitialContext();
PortletModelHomehome = (PortletModelHome)
ctx.lookup("portal:service/model/PortletModel");
if (home != null) {
PortletModelportletModel =
home.getPortletModelProvider().getPortletModel(aPage, aRequest, aResponse);
}
// use service
for ( // all nodes of the current page ) {
if (node instanceofLayoutControl) {
PortletWindowportletWindow =
portletModel.getPortletWindow((LayoutControl) node);
PortletDefinitionportletDef =
portletModel.getPortletDefinition(portletWindow);
String portletUniqueName = portletDef.getObjectID().getUniqueName();
}
}
Note:Lookup the service home,
can be done once
Get a service instance,
Needs to be done per request