Example usage for com.liferay.portal.kernel.util.comparator PortletTitleComparator PortletTitleComparator

List of usage examples for com.liferay.portal.kernel.util.comparator PortletTitleComparator PortletTitleComparator

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util.comparator PortletTitleComparator PortletTitleComparator.

Prototype

public PortletTitleComparator(ServletContext servletContext, Locale locale) 

Source Link

Usage

From source file:com.liferay.layout.admin.web.internal.display.context.OrphanPortletsDisplayContext.java

License:Open Source License

public List<Portlet> getOrphanPortlets(Layout layout) {
    if (!layout.isSupportsEmbeddedPortlets()) {
        return Collections.emptyList();
    }/* w w w  . j ava  2  s  . c  om*/

    ThemeDisplay themeDisplay = (ThemeDisplay) _liferayPortletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    LayoutTypePortlet selLayoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();

    List<Portlet> explicitlyAddedPortlets = selLayoutTypePortlet.getExplicitlyAddedPortlets();

    List<String> explicitlyAddedPortletIds = new ArrayList<>();

    for (Portlet explicitlyAddedPortlet : explicitlyAddedPortlets) {
        explicitlyAddedPortletIds.add(explicitlyAddedPortlet.getPortletId());
    }

    List<Portlet> orphanPortlets = new ArrayList<>();

    List<PortletPreferences> portletPreferences = PortletPreferencesLocalServiceUtil.getPortletPreferences(
            PortletKeys.PREFS_OWNER_ID_DEFAULT, PortletKeys.PREFS_OWNER_TYPE_LAYOUT, getSelPlid());

    for (PortletPreferences portletPreference : portletPreferences) {
        String portletId = portletPreference.getPortletId();

        Portlet portlet = PortletLocalServiceUtil.getPortletById(themeDisplay.getCompanyId(), portletId);

        if (portlet.isSystem()) {
            continue;
        }

        if (explicitlyAddedPortletIds.contains(portletId)) {
            continue;
        }

        orphanPortlets.add(portlet);
    }

    HttpServletRequest request = PortalUtil.getHttpServletRequest(_liferayPortletRequest);

    PortletTitleComparator portletTitleComparator = new PortletTitleComparator(request.getServletContext(),
            themeDisplay.getLocale());

    orphanPortlets = ListUtil.sort(orphanPortlets, portletTitleComparator);

    return orphanPortlets;
}