Example usage for com.liferay.portal.kernel.portlet PortletPreferencesFactoryUtil getStrictLayoutPortletSetup

List of usage examples for com.liferay.portal.kernel.portlet PortletPreferencesFactoryUtil getStrictLayoutPortletSetup

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.portlet PortletPreferencesFactoryUtil getStrictLayoutPortletSetup.

Prototype

public static PortletPreferences getStrictLayoutPortletSetup(Layout layout, String portletId) 

Source Link

Usage

From source file:com.liferay.journal.web.asset.JournalArticleAssetRenderer.java

License:Open Source License

@Override
public String getURLViewInContext(LiferayPortletRequest liferayPortletRequest,
        LiferayPortletResponse liferayPortletResponse, String noSuchEntryRedirect) throws Exception {

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

    Layout layout = _article.getLayout();

    if (layout == null) {
        layout = themeDisplay.getLayout();
    }/*from  w ww . j ava  2 s. com*/

    String portletId = (String) liferayPortletRequest.getAttribute(WebKeys.PORTLET_ID);

    PortletPreferences portletSetup = PortletPreferencesFactoryUtil.getStrictLayoutPortletSetup(layout,
            portletId);

    String linkToLayoutUuid = GetterUtil.getString(portletSetup.getValue("portletSetupLinkToLayoutUuid", null));

    if (Validator.isNotNull(_article.getLayoutUuid()) && Validator.isNull(linkToLayoutUuid)) {

        Group group = themeDisplay.getScopeGroup();

        if (group.getGroupId() != _article.getGroupId()) {
            group = GroupLocalServiceUtil.getGroup(_article.getGroupId());
        }

        String groupFriendlyURL = PortalUtil.getGroupFriendlyURL(
                LayoutSetLocalServiceUtil.getLayoutSet(group.getGroupId(), layout.isPrivateLayout()),
                themeDisplay);

        return PortalUtil.addPreservedParameters(themeDisplay, groupFriendlyURL
                .concat(JournalArticleConstants.CANONICAL_URL_SEPARATOR).concat(_article.getUrlTitle()));
    }

    String hitLayoutURL = getHitLayoutURL(layout.isPrivateLayout(), noSuchEntryRedirect, themeDisplay);

    if (hitLayoutURL.equals(noSuchEntryRedirect)) {
        hitLayoutURL = getHitLayoutURL(!layout.isPrivateLayout(), noSuchEntryRedirect, themeDisplay);
    }

    return hitLayoutURL;
}

From source file:com.liferay.portlet.configuration.css.web.internal.portlet.PortletConfigurationCSSPortlet.java

License:Open Source License

public void getLookAndFeel(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws PortletException {

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

    try {/*from   w  ww  . ja  va  2s  .  co m*/
        Layout layout = themeDisplay.getLayout();

        PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

        String portletId = ParamUtil.getString(resourceRequest, "portletId");

        if (!PortletPermissionUtil.contains(permissionChecker, layout, portletId, ActionKeys.CONFIGURATION)) {

            return;
        }

        PortletPreferences portletSetup = PortletPreferencesFactoryUtil.getStrictLayoutPortletSetup(layout,
                portletId);

        JSONObject portletSetupJSONObject = PortletSetupUtil.cssToJSONObject(portletSetup);

        JSONObject defaultPortletTitlesJSONObject = JSONFactoryUtil.createJSONObject();

        for (Locale locale : LanguageUtil.getAvailableLocales(themeDisplay.getSiteGroupId())) {

            String rootPortletId = PortletConstants.getRootPortletId(portletId);
            String languageId = LocaleUtil.toLanguageId(locale);

            defaultPortletTitlesJSONObject.put(languageId, _portal.getPortletTitle(rootPortletId, languageId));
        }

        portletSetupJSONObject.put("defaultPortletTitles", defaultPortletTitlesJSONObject);

        writeJSON(resourceRequest, resourceResponse, portletSetupJSONObject.toString());
    } catch (Exception e) {
        throw new PortletException(e);
    }
}

From source file:com.liferay.portlet.configuration.css.web.internal.portlet.PortletConfigurationCSSPortlet.java

License:Open Source License

public void updateLookAndFeel(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

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

    Layout layout = themeDisplay.getLayout();

    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

    String portletId = ParamUtil.getString(actionRequest, "portletId");

    if (!PortletPermissionUtil.contains(permissionChecker, layout, portletId, ActionKeys.CONFIGURATION)) {

        return;//ww  w  . j  av  a 2s .c om
    }

    PortletPreferences portletSetup = PortletPreferencesFactoryUtil.getStrictLayoutPortletSetup(layout,
            portletId);

    String css = ParamUtil.getString(actionRequest, "css");

    if (_log.isDebugEnabled()) {
        _log.debug("Updating css " + css);
    }

    JSONObject jsonObject = JSONFactoryUtil.createJSONObject(css);

    JSONObject portletDataJSONObject = jsonObject.getJSONObject("portletData");

    jsonObject.remove("portletData");

    css = jsonObject.toString();

    String linkToLayoutUuid = GetterUtil.getString(portletDataJSONObject.getString("portletLinksTarget"));
    String portletDecoratorId = portletDataJSONObject.getString("portletDecoratorId");
    JSONObject titlesJSONObject = portletDataJSONObject.getJSONObject("titles");
    boolean useCustomTitle = portletDataJSONObject.getBoolean("useCustomTitle");

    Set<Locale> locales = LanguageUtil.getAvailableLocales(themeDisplay.getSiteGroupId());

    for (Locale locale : locales) {
        String languageId = LocaleUtil.toLanguageId(locale);

        String title = null;

        if (titlesJSONObject.has(languageId)) {
            title = GetterUtil.getString(titlesJSONObject.getString(languageId));
        }

        String rootPortletId = PortletConstants.getRootPortletId(portletId);

        String defaultPortletTitle = _portal.getPortletTitle(rootPortletId, languageId);

        if ((title != null) && !Objects.equals(defaultPortletTitle, title)) {

            portletSetup.setValue("portletSetupTitle_" + languageId, title);
        } else {
            portletSetup.reset("portletSetupTitle_" + languageId);
        }
    }

    portletSetup.setValue("portletSetupUseCustomTitle", String.valueOf(useCustomTitle));

    if (Validator.isNotNull(linkToLayoutUuid)) {
        portletSetup.setValue("portletSetupLinkToLayoutUuid", linkToLayoutUuid);
    } else {
        portletSetup.reset("portletSetupLinkToLayoutUuid");
    }

    if (Validator.isNotNull(portletDecoratorId)) {
        portletSetup.setValue("portletSetupPortletDecoratorId", portletDecoratorId);
    } else {
        portletSetup.reset("portletSetupPortletDecoratorId");
    }

    portletSetup.setValue("portletSetupCss", css);

    portletSetup.store();
}