Example usage for com.liferay.portal.kernel.model LayoutTemplate getContent

List of usage examples for com.liferay.portal.kernel.model LayoutTemplate getContent

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.model LayoutTemplate getContent.

Prototype

public String getContent();

Source Link

Usage

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 w w  w .  j a  v  a 2s .  c om

    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 . java2 s. c om
        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);
}