001
014
015 package com.liferay.portlet.layoutsadmin.lar;
016
017 import com.liferay.portal.kernel.lar.BaseStagedModelDataHandler;
018 import com.liferay.portal.kernel.lar.PortletDataContext;
019 import com.liferay.portal.kernel.lar.PortletDataHandlerKeys;
020 import com.liferay.portal.kernel.util.MapUtil;
021 import com.liferay.portal.kernel.xml.Element;
022 import com.liferay.portal.model.Theme;
023 import com.liferay.portal.service.ThemeLocalServiceUtil;
024
025 import java.util.List;
026
027
030 public class StagedThemeStagedModelDataHandler
031 extends BaseStagedModelDataHandler<StagedTheme> {
032
033 public static final String[] CLASS_NAMES = {StagedTheme.class.getName()};
034
035 @Override
036 public void deleteStagedModel(
037 String uuid, long groupId, String className, String extraData) {
038 }
039
040 @Override
041 public String[] getClassNames() {
042 return CLASS_NAMES;
043 }
044
045 @Override
046 public String getDisplayName(StagedTheme stagedTheme) {
047 return stagedTheme.getThemeId();
048 }
049
050 @Override
051 public boolean validateReference(
052 PortletDataContext portletDataContext, Element rootElement,
053 Element referenceElement) {
054
055 boolean importThemeSettings = MapUtil.getBoolean(
056 portletDataContext.getParameterMap(),
057 PortletDataHandlerKeys.THEME_REFERENCE);
058
059 if (!importThemeSettings) {
060 return true;
061 }
062
063 String elementName = referenceElement.getName();
064
065 if (elementName.equals("missing-reference")) {
066 String classPK = referenceElement.attributeValue("class-pk");
067
068 List<Theme> themes = ThemeLocalServiceUtil.getThemes(
069 portletDataContext.getCompanyId());
070
071 for (Theme theme : themes) {
072 String themeId = theme.getThemeId();
073
074 if (themeId.equals(classPK)) {
075 return true;
076 }
077 }
078 }
079
080 return false;
081 }
082
083 @Override
084 protected void doExportStagedModel(
085 PortletDataContext portletDataContext, StagedTheme stagedTheme) {
086 }
087
088 @Override
089 protected void doImportStagedModel(
090 PortletDataContext portletDataContext, StagedTheme stagedTheme) {
091 }
092
093 }