001
014
015 package com.liferay.portlet.portletdisplaytemplate.lar;
016
017 import com.liferay.portal.kernel.lar.BasePortletDataHandler;
018 import com.liferay.portal.kernel.lar.PortletDataContext;
019 import com.liferay.portal.kernel.lar.PortletDataHandlerBoolean;
020 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
021 import com.liferay.portal.kernel.template.TemplateHandlerRegistryUtil;
022 import com.liferay.portal.kernel.xml.Element;
023 import com.liferay.portlet.dynamicdatamapping.model.DDMTemplate;
024 import com.liferay.portlet.dynamicdatamapping.service.DDMTemplateLocalServiceUtil;
025
026 import java.util.List;
027
028 import javax.portlet.PortletPreferences;
029
030
033 public class PortletDisplayTemplatePortletDataHandler
034 extends BasePortletDataHandler {
035
036 public static final String NAMESPACE = "portlet_display_templates";
037
038 public PortletDisplayTemplatePortletDataHandler() {
039 setAlwaysExportable(true);
040 setExportControls(
041 new PortletDataHandlerBoolean(
042 NAMESPACE, "application-display-templates"));
043 }
044
045 @Override
046 protected String doExportData(
047 PortletDataContext portletDataContext, String portletId,
048 PortletPreferences portletPreferences)
049 throws Exception {
050
051 Element rootElement = addExportDataRootElement(portletDataContext);
052
053 long[] classNameIds = TemplateHandlerRegistryUtil.getClassNameIds();
054
055 for (long classNameId : classNameIds) {
056 List<DDMTemplate> ddmTemplates =
057 DDMTemplateLocalServiceUtil.getTemplates(
058 portletDataContext.getScopeGroupId(), classNameId);
059
060 for (DDMTemplate ddmTemplate : ddmTemplates) {
061 StagedModelDataHandlerUtil.exportStagedModel(
062 portletDataContext, ddmTemplate);
063 }
064 }
065
066 return getExportDataRootElementString(rootElement);
067 }
068
069 @Override
070 protected PortletPreferences doImportData(
071 PortletDataContext portletDataContext, String portletId,
072 PortletPreferences portletPreferences, String data)
073 throws Exception {
074
075 Element ddmTemplatesElement =
076 portletDataContext.getImportDataGroupElement(DDMTemplate.class);
077
078 List<Element> ddmTemplateElements = ddmTemplatesElement.elements();
079
080 for (Element ddmTemplateElement : ddmTemplateElements) {
081 StagedModelDataHandlerUtil.importStagedModel(
082 portletDataContext, ddmTemplateElement);
083 }
084
085 return null;
086 }
087
088 }