Example usage for com.liferay.portal.kernel.theme ThemeDisplay getLayout

List of usage examples for com.liferay.portal.kernel.theme ThemeDisplay getLayout

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.theme ThemeDisplay getLayout.

Prototype

public Layout getLayout() 

Source Link

Document

Returns the site's page.

Usage

From source file:com.liferay.layout.admin.web.internal.theme.contributor.ToggleControlsTemplateContextContributor.java

License:Open Source License

@Override
public void prepare(Map<String, Object> contextObjects, HttpServletRequest request) {

    String liferayToggleControls = SessionClicks.get(request, "com.liferay.frontend.js.web_toggleControls",
            "visible");

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

    Layout layout = themeDisplay.getLayout();

    if (layout.isTypeControlPanel()) {
        liferayToggleControls = "visible";
    }/*  w w w . j av  a2s . co  m*/

    String cssClass = GetterUtil.getString(contextObjects.get("bodyCssClass"));

    if (Objects.equals(liferayToggleControls, "visible")) {
        cssClass += " controls-visible";
    } else {
        cssClass += " controls-hidden";
    }

    contextObjects.put("bodyCssClass", cssClass);

    contextObjects.put("liferay_toggle_controls", liferayToggleControls);
    contextObjects.put("show_toggle_controls", themeDisplay.isSignedIn());

    if (themeDisplay.isSignedIn()) {
        ResourceBundle resourceBundle = ResourceBundleUtil.getBundle("content.Language",
                themeDisplay.getLocale(), getClass());

        contextObjects.put("toggle_controls_text", LanguageUtil.get(resourceBundle, "toggle-controls"));

        contextObjects.put("toggle_controls_url", "javascript:;");
    }
}

From source file:com.liferay.layout.internal.util.LayoutsTreeImpl.java

License:Open Source License

private Layout _fetchCurrentLayout(HttpServletRequest request) {
    long selPlid = ParamUtil.getLong(request, "selPlid");

    if (selPlid > 0) {
        return _layoutLocalService.fetchLayout(selPlid);
    }/*from ww w .  j  av a  2 s. c om*/

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

    Layout layout = themeDisplay.getLayout();

    if (!layout.isTypeControlPanel()) {
        return layout;
    }

    return null;
}

From source file:com.liferay.login.web.internal.portlet.action.LoginMVCActionCommand.java

License:Open Source License

protected void login(ThemeDisplay themeDisplay, ActionRequest actionRequest, ActionResponse actionResponse)
        throws Exception {

    HttpServletRequest request = _portal
            .getOriginalServletRequest(_portal.getHttpServletRequest(actionRequest));
    HttpServletResponse response = _portal.getHttpServletResponse(actionResponse);

    String login = ParamUtil.getString(actionRequest, "login");
    String password = actionRequest.getParameter("password");
    boolean rememberMe = ParamUtil.getBoolean(actionRequest, "rememberMe");

    if (!themeDisplay.isSignedIn()) {
        String portletId = _portal.getPortletId(actionRequest);

        PortletPreferences portletPreferences = PortletPreferencesFactoryUtil
                .getStrictPortletSetup(themeDisplay.getLayout(), portletId);

        String authType = portletPreferences.getValue("authType", null);

        _authenticatedSessionManager.login(request, response, login, password, rememberMe, authType);
    }/*w w  w .  j  ava2 s.c om*/

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

    if (Validator.isNotNull(redirect)) {
        redirect = _portal.escapeRedirect(redirect);

        if (Validator.isNotNull(redirect) && !redirect.startsWith(Http.HTTP)) {

            redirect = getCompleteRedirectURL(request, redirect);
        }
    }

    String mainPath = themeDisplay.getPathMain();

    if (PropsValues.PORTAL_JAAS_ENABLE) {
        if (Validator.isNotNull(redirect)) {
            redirect = mainPath.concat("/portal/protected?redirect=").concat(URLCodec.encodeURL(redirect));
        } else {
            redirect = mainPath.concat("/portal/protected");
        }

        actionResponse.sendRedirect(redirect);
    } else {
        if (Validator.isNotNull(redirect)) {
            actionResponse.sendRedirect(redirect);
        } else {
            boolean doActionAfterLogin = ParamUtil.getBoolean(actionRequest, "doActionAfterLogin");

            if (doActionAfterLogin) {
                return;
            } else {
                actionResponse.sendRedirect(mainPath);
            }
        }
    }
}

From source file:com.liferay.mobile.device.rules.rule.group.action.LayoutTemplateModificationActionHandler.java

License:Open Source License

@Override
public void applyAction(MDRAction mdrAction, HttpServletRequest request, HttpServletResponse response) {

    UnicodeProperties mdrActionTypeSettingsProperties = mdrAction.getTypeSettingsProperties();

    String layoutTemplateId = GetterUtil
            .getString(mdrActionTypeSettingsProperties.getProperty("layoutTemplateId"));

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

    Layout layout = themeDisplay.getLayout();

    if (layout.isTypePortlet()) {
        LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();

        layoutTypePortlet.setLayoutTemplateId(0, layoutTemplateId, false);
    }/* www .jav a 2 s . c  om*/
}

From source file:com.liferay.mobile.device.rules.rule.group.action.SiteRedirectActionHandler.java

License:Open Source License

@Override
protected String getURL(MDRAction mdrAction, HttpServletRequest request, HttpServletResponse response)
        throws PortalException {

    UnicodeProperties typeSettingsProperties = mdrAction.getTypeSettingsProperties();

    long plid = GetterUtil.getLong(typeSettingsProperties.getProperty("plid"));

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

    Layout themeDisplayLayout = themeDisplay.getLayout();

    if (plid == themeDisplayLayout.getPlid()) {
        return null;
    }// ww w  .j  a  v a  2  s . c om

    Layout layout = _layoutLocalService.fetchLayout(plid);

    long groupId = GetterUtil.getLong(typeSettingsProperties.getProperty("groupId"));

    if ((layout != null) && (layout.getGroupId() != groupId)) {
        if (_log.isWarnEnabled()) {
            _log.warn(StringBundler.concat("Layout ", String.valueOf(layout.getPlid()),
                    " does not belong to group ", String.valueOf(groupId)));
        }

        layout = null;
    }

    if (layout == null) {
        if (_log.isWarnEnabled()) {
            _log.warn("Using default public layout");
        }

        Group group = null;

        if (groupId != themeDisplayLayout.getGroupId()) {
            group = _groupLocalService.fetchGroup(groupId);
        }

        if (group == null) {
            if (_log.isWarnEnabled()) {
                _log.warn("No group found with group ID " + groupId);
            }

            return null;
        }

        layout = _layoutLocalService.fetchLayout(group.getDefaultPublicPlid());
    }

    if (layout != null) {
        return _portal.getLayoutURL(layout, themeDisplay);
    }

    if (_log.isWarnEnabled()) {
        _log.warn("Unable to resolve default layout");
    }

    return null;
}

From source file:com.liferay.nested.portlets.web.internal.portlet.action.NestedPortletsConfigurationAction.java

License:Open Source License

protected void reorganizeNestedColumns(ActionRequest actionRequest, String portletResource,
        String newLayoutTemplateId, String oldLayoutTemplateId) throws PortalException {

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

    Layout layout = themeDisplay.getLayout();
    LayoutTypePortlet layoutTypePortlet = themeDisplay.getLayoutTypePortlet();
    Theme theme = themeDisplay.getTheme();

    LayoutTemplate newLayoutTemplate = _layoutTemplateLocalService.getLayoutTemplate(newLayoutTemplateId, false,
            theme.getThemeId());/*from www .  j  av a  2 s . c o m*/

    List<String> newColumns = getColumnNames(newLayoutTemplate.getContent(), portletResource);

    LayoutTemplate oldLayoutTemplate = _layoutTemplateLocalService.getLayoutTemplate(oldLayoutTemplateId, false,
            theme.getThemeId());

    List<String> oldColumns = getColumnNames(oldLayoutTemplate.getContent(), portletResource);

    layoutTypePortlet.reorganizePortlets(newColumns, oldColumns);

    layoutTypePortlet.setStateMax(StringPool.BLANK);

    _layoutLocalService.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
            layout.getTypeSettings());
}

From source file:com.liferay.nested.portlets.web.internal.portlet.NestedPortletsPortlet.java

License:Open Source License

@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
        throws IOException, PortletException {

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

    String layoutTemplateId = StringPool.BLANK;

    try {//  w w w  . ja v a2 s  . c o  m
        NestedPortletsDisplayContext nestedPortletsDisplayContext = new NestedPortletsDisplayContext(
                _portal.getHttpServletRequest(renderRequest));

        layoutTemplateId = nestedPortletsDisplayContext.getLayoutTemplateId();
    } catch (ConfigurationException ce) {
        if (_log.isWarnEnabled()) {
            _log.warn(ce, ce);
        }
    }

    String templateId = StringPool.BLANK;
    String templateContent = StringPool.BLANK;

    Map<String, String> columnIds = new HashMap<>();

    if (Validator.isNotNull(layoutTemplateId)) {
        Theme theme = themeDisplay.getTheme();

        LayoutTemplate layoutTemplate = _layoutTemplateLocalService.getLayoutTemplate(layoutTemplateId, false,
                theme.getThemeId());

        String content = layoutTemplate.getContent();

        Matcher processColumnMatcher = _processColumnPattern.matcher(content);

        while (processColumnMatcher.find()) {
            String columnId = processColumnMatcher.group(2);

            if (Validator.isNotNull(columnId)) {
                columnIds.put(columnId, renderResponse.getNamespace() + StringPool.UNDERLINE + columnId);
            }
        }

        processColumnMatcher.reset();

        StringBundler sb = new StringBundler(4);

        sb.append(theme.getThemeId());
        sb.append(LayoutTemplateConstants.CUSTOM_SEPARATOR);
        sb.append(renderResponse.getNamespace());
        sb.append(layoutTemplateId);

        templateId = sb.toString();

        content = processColumnMatcher.replaceAll("$1\\${$2}$3");

        Matcher columnIdMatcher = _columnIdPattern.matcher(content);

        templateContent = columnIdMatcher.replaceAll("$1" + renderResponse.getNamespace() + "$2$3");
    }

    checkLayout(themeDisplay.getLayout(), columnIds.values());

    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();

    renderRequest.setAttribute(NestedPortletsWebKeys.TEMPLATE_ID + portletDisplay.getId(), templateId);
    renderRequest.setAttribute(NestedPortletsWebKeys.TEMPLATE_CONTENT + portletDisplay.getId(),
            templateContent);

    Map<String, Object> vmVariables = (Map<String, Object>) renderRequest
            .getAttribute(WebKeys.VM_VARIABLES + portletDisplay.getId());

    if (vmVariables != null) {
        vmVariables.putAll(columnIds);
    } else {
        renderRequest.setAttribute(WebKeys.VM_VARIABLES + portletDisplay.getId(), columnIds);
    }

    super.include(viewTemplate, renderRequest, renderResponse);
}

From source file:com.liferay.polls.web.internal.portlet.action.EditQuestionMVCActionCommand.java

License:Open Source License

protected void addAndStoreSelection(PortletRequest portletRequest, PollsQuestion question) throws Exception {

    String referringPortletResource = ParamUtil.getString(portletRequest, "referringPortletResource");

    if (Validator.isNull(referringPortletResource)) {
        return;//from   w ww  . j a  v a  2  s . c om
    }

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

    PortletPreferences portletPreferences = PortletPreferencesFactoryUtil
            .getStrictPortletSetup(themeDisplay.getLayout(), themeDisplay.getPpid());

    portletPreferences.setValue("questionId", String.valueOf(question.getQuestionId()));

    portletPreferences.store();

    SessionMessages.add(portletRequest,
            portal.getPortletId(portletRequest) + SessionMessages.KEY_SUFFIX_REFRESH_PORTLET,
            referringPortletResource);
}

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 ww w  .  j  ava 2 s. c om*/
        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;//w  w w .  ja  va  2 s . c o m
    }

    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();
}