Example usage for com.liferay.portal.kernel.model LayoutTypePortletConstants NESTED_COLUMN_IDS

List of usage examples for com.liferay.portal.kernel.model LayoutTypePortletConstants NESTED_COLUMN_IDS

Introduction

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

Prototype

String NESTED_COLUMN_IDS

To view the source code for com.liferay.portal.kernel.model LayoutTypePortletConstants NESTED_COLUMN_IDS.

Click Source Link

Usage

From source file:com.liferay.exportimport.resources.importer.test.ResourcesImporterTest.java

License:Open Source License

protected void validateLayouts(Group importedGroup) throws Exception {
    long privateLayoutsCount = LayoutLocalServiceUtil.getLayoutsCount(importedGroup, true);

    Assert.assertEquals(1, privateLayoutsCount);

    long publicLayoutsCount = LayoutLocalServiceUtil.getLayoutsCount(importedGroup, false);

    Assert.assertEquals(9, publicLayoutsCount);

    Layout layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/home");

    Map<Locale, String> nameMap = layout.getNameMap();

    Assert.assertTrue(nameMap.containsValue("Bienvenue"));

    Assert.assertTrue(layout.isTypePortlet());

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

    List<Portlet> portlets = layoutTypePortlet.getAllPortlets();

    Assert.assertEquals(portlets.toString(), 7, portlets.size());

    UnicodeProperties layoutTypeSettingsProperties = layout.getTypeSettingsProperties();

    String nestedColumnIds = layoutTypeSettingsProperties.get(LayoutTypePortletConstants.NESTED_COLUMN_IDS);

    Assert.assertTrue((nestedColumnIds != null) && nestedColumnIds.contains("column-1")
            && nestedColumnIds.contains("column-2"));

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false,
            "/layout-prototypes-page-1");

    Assert.assertTrue(layout.isLayoutPrototypeLinkActive());
    Assert.assertEquals("371647ba-3649-4039-bfe6-ae32cf404737", layout.getLayoutPrototypeUuid());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false,
            "/layout-prototypes-page-2");

    Assert.assertFalse(layout.isLayoutPrototypeLinkActive());
    Assert.assertEquals("c98067d0-fc10-9556-7364-238d39693bc4", layout.getLayoutPrototypeUuid());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/url-page");

    Assert.assertTrue(layout.isTypeURL());

    layout = LayoutLocalServiceUtil.getFriendlyURLLayout(importedGroup.getGroupId(), false, "/hidden-page");

    Assert.assertTrue(layout.isHidden());
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected void mergePortlets(Layout layout, String newTypeSettings, String portletsMergeMode) {

    try {/*w ww .ja  v  a 2s .  c o  m*/
        UnicodeProperties previousTypeSettingsProperties = layout.getTypeSettingsProperties();

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

        LayoutTemplate previousLayoutTemplate = previousLayoutType.getLayoutTemplate();

        List<String> previousColumns = previousLayoutTemplate.getColumns();

        UnicodeProperties newTypeSettingsProperties = new UnicodeProperties(true);

        newTypeSettingsProperties.load(newTypeSettings);

        String layoutTemplateId = newTypeSettingsProperties
                .getProperty(LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID);

        previousTypeSettingsProperties.setProperty(LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID,
                layoutTemplateId);

        String nestedColumnIds = newTypeSettingsProperties
                .getProperty(LayoutTypePortletConstants.NESTED_COLUMN_IDS);

        if (Validator.isNotNull(nestedColumnIds)) {
            previousTypeSettingsProperties.setProperty(LayoutTypePortletConstants.NESTED_COLUMN_IDS,
                    nestedColumnIds);

            String[] nestedColumnIdsArray = StringUtil.split(nestedColumnIds);

            for (String nestedColumnId : nestedColumnIdsArray) {
                String nestedColumnValue = newTypeSettingsProperties.getProperty(nestedColumnId);

                previousTypeSettingsProperties.setProperty(nestedColumnId, nestedColumnValue);
            }
        }

        LayoutTemplate newLayoutTemplate = _layoutTemplateLocalService.getLayoutTemplate(layoutTemplateId,
                false, null);

        String[] newPortletIds = new String[0];

        for (String columnId : newLayoutTemplate.getColumns()) {
            String columnValue = newTypeSettingsProperties.getProperty(columnId);

            String[] portletIds = StringUtil.split(columnValue);

            if (!previousColumns.contains(columnId)) {
                newPortletIds = ArrayUtil.append(newPortletIds, portletIds);
            } else {
                String[] previousPortletIds = StringUtil
                        .split(previousTypeSettingsProperties.getProperty(columnId));

                portletIds = appendPortletIds(previousPortletIds, portletIds, portletsMergeMode);

                previousTypeSettingsProperties.setProperty(columnId, StringUtil.merge(portletIds));
            }
        }

        // Add portlets in non-existent column to the first column

        String columnId = previousColumns.get(0);

        String[] portletIds = StringUtil.split(previousTypeSettingsProperties.getProperty(columnId));

        appendPortletIds(portletIds, newPortletIds, portletsMergeMode);

        previousTypeSettingsProperties.setProperty(columnId, StringUtil.merge(portletIds));

        layout.setTypeSettings(previousTypeSettingsProperties.toString());
    } catch (IOException ioe) {
        layout.setTypeSettings(newTypeSettings);
    }
}

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

License:Open Source License

protected void checkLayout(Layout layout, Collection<String> columnIds) {
    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    String[] layoutColumnIds = StringUtil
            .split(typeSettingsProperties.get(LayoutTypePortletConstants.NESTED_COLUMN_IDS));

    boolean updateColumnIds = false;

    for (String columnId : columnIds) {
        String portletIds = typeSettingsProperties.getProperty(columnId);

        if (Validator.isNotNull(portletIds) && !ArrayUtil.contains(layoutColumnIds, columnId)) {

            layoutColumnIds = ArrayUtil.append(layoutColumnIds, columnId);

            updateColumnIds = true;/*ww  w  .j  ava2 s. c  o  m*/
        }
    }

    if (updateColumnIds) {
        typeSettingsProperties.setProperty(LayoutTypePortletConstants.NESTED_COLUMN_IDS,
                StringUtil.merge(layoutColumnIds));

        layout.setTypeSettingsProperties(typeSettingsProperties);

        try {
            _layoutLocalService.updateLayout(layout.getGroupId(), layout.isPrivateLayout(),
                    layout.getLayoutId(), layout.getTypeSettings());
        } catch (Exception e) {
            if (_log.isWarnEnabled()) {
                _log.warn(e, e);
            }
        }
    }
}