{
try
{
if (portletHandles == null)
{
final WSRPConsumer consumer = getConsumer();
Map<String, Portlet> portlets = consumer.getProducerInfo().getAllPortletsMap();
List<SelectablePortletHandle> selectableHandles = Collections.emptyList();
if (ParameterValidation.existsAndIsNotEmpty(portlets))
{
selectableHandles = new ArrayList<SelectablePortletHandle>(portlets.size());
for (Map.Entry<String, Portlet> portlet : portlets.entrySet())
{
final String key = portlet.getKey();
final String id = portlet.getValue().getContext().getId();
final String display = id.equals(key) ? key : id + " cloned as " + key;
selectableHandles.add(new SelectablePortletHandle(key, consumer.getMigrationService().getStructureProvider(), display));
}
}
Collections.sort(selectableHandles);
portletHandles = new ListDataModel(selectableHandles);
}