All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.batch.planner.web.internal.display.context.EditBatchPlannerPlanDisplayContext Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

package com.liferay.batch.planner.web.internal.display.context;

import com.liferay.batch.engine.BatchEngineTaskContentType;
import com.liferay.batch.engine.constants.CreateStrategy;
import com.liferay.batch.engine.constants.UpdateStrategy;
import com.liferay.batch.planner.batch.engine.task.TaskItemUtil;
import com.liferay.batch.planner.model.BatchPlannerMapping;
import com.liferay.batch.planner.model.BatchPlannerPlan;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.SelectOption;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.PortalUtil;
import com.liferay.portal.kernel.util.WebKeys;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import javax.portlet.RenderRequest;

import javax.servlet.http.HttpServletRequest;

/**
 * @author Igor Beslic
 * @author Matija Petanjek
 */
public class EditBatchPlannerPlanDisplayContext {

	public EditBatchPlannerPlanDisplayContext(
			List batchPlannerPlans,
			Map internalClassNameKeyCategories,
			RenderRequest renderRequest,
			BatchPlannerPlan selectedBatchPlannerPlan)
		throws PortalException {

		_httpServletRequest = PortalUtil.getHttpServletRequest(renderRequest);
		_internalClassNameKeySelectOptions =
			_getInternalClassNameKeySelectOptions(
				internalClassNameKeyCategories);

		if (selectedBatchPlannerPlan == null) {
			_selectedBatchPlannerMappings = new HashMap<>();
			_selectedBatchPlannerPlanId = 0;
			_selectedBatchPlannerPlanName = StringPool.BLANK;
			_selectedExternalType = StringPool.BLANK;
			_selectedInternalClassNameKey = StringPool.BLANK;
		}
		else {
			_selectedBatchPlannerMappings = _getSelectedBatchPlannerMappings(
				selectedBatchPlannerPlan);
			_selectedBatchPlannerPlanId =
				selectedBatchPlannerPlan.getBatchPlannerPlanId();
			_selectedBatchPlannerPlanName = selectedBatchPlannerPlan.getName();
			_selectedExternalType = selectedBatchPlannerPlan.getExternalType();
			_selectedInternalClassNameKey =
				TaskItemUtil.getInternalClassNameKey(
					selectedBatchPlannerPlan.getInternalClassName(),
					selectedBatchPlannerPlan.getTaskItemDelegateName());
		}

		_templateSelectOptions = _getTemplateSelectOptions(batchPlannerPlans);
	}

	public List getCreateStrategySelectOptions() {
		List selectOptions = new ArrayList<>();

		for (CreateStrategy createStrategy : CreateStrategy.values()) {
			selectOptions.add(
				new SelectOption(
					LanguageUtil.get(getLocale(), createStrategy.getLabel()),
					createStrategy.name(), createStrategy.isDefaultStrategy()));
		}

		return selectOptions;
	}

	public List getExternalTypeSelectOptions() {
		List selectOptions = new ArrayList<>();

		for (BatchEngineTaskContentType batchEngineTaskContentType :
				BatchEngineTaskContentType.values()) {

			if ((batchEngineTaskContentType ==
					BatchEngineTaskContentType.XLS) ||
				(batchEngineTaskContentType ==
					BatchEngineTaskContentType.XLSX)) {

				continue;
			}

			selectOptions.add(
				new SelectOption(
					batchEngineTaskContentType.toString(),
					batchEngineTaskContentType.toString()));
		}

		return selectOptions;
	}

	public List getInternalClassNameKeySelectOptions() {
		return _internalClassNameKeySelectOptions;
	}

	public Locale getLocale() {
		if (_locale == null) {
			ThemeDisplay themeDisplay = getThemeDisplay();

			_locale = themeDisplay.getLocale();
		}

		return _locale;
	}

	public long getSelectedBatchPlannerPlanId() {
		return _selectedBatchPlannerPlanId;
	}

	public Map getSelectedBatchPlannerPlanMappings() {
		return _selectedBatchPlannerMappings;
	}

	public String getSelectedBatchPlannerPlanName() {
		return _selectedBatchPlannerPlanName;
	}

	public String getSelectedExternalType() {
		return _selectedExternalType;
	}

	public String getSelectedInternalClassNameKey() {
		return _selectedInternalClassNameKey;
	}

	public List getTemplateSelectOptions() {
		return _templateSelectOptions;
	}

	public ThemeDisplay getThemeDisplay() {
		if (_themeDisplay == null) {
			_themeDisplay = (ThemeDisplay)_httpServletRequest.getAttribute(
				WebKeys.THEME_DISPLAY);
		}

		return _themeDisplay;
	}

	public List getUpdateStrategySelectOptions() {
		List selectOptions = new ArrayList<>();

		for (UpdateStrategy updateStrategy : UpdateStrategy.values()) {
			selectOptions.add(
				new SelectOption(
					LanguageUtil.get(getLocale(), updateStrategy.getLabel()),
					updateStrategy.name(), updateStrategy.isDefaultStrategy()));
		}

		return selectOptions;
	}

	private List _getInternalClassNameKeySelectOptions(
		Map internalClassNameKeyCategories) {

		List internalClassNameKeySelectOptions =
			new ArrayList<>();

		internalClassNameKeySelectOptions.add(
			new SelectOption(StringPool.BLANK, StringPool.BLANK));

		for (Map.Entry entry :
				internalClassNameKeyCategories.entrySet()) {

			internalClassNameKeySelectOptions.add(
				new SelectOption(entry.getValue(), entry.getKey()));
		}

		internalClassNameKeySelectOptions.sort(
			Comparator.comparing(SelectOption::getLabel));

		return internalClassNameKeySelectOptions;
	}

	private Map _getSelectedBatchPlannerMappings(
		BatchPlannerPlan selectedBatchPlannerPlan) {

		Map selectedBatchPlannerMappings = new HashMap<>();

		for (BatchPlannerMapping batchPlannerMapping :
				selectedBatchPlannerPlan.getBatchPlannerMappings()) {

			selectedBatchPlannerMappings.put(
				batchPlannerMapping.getInternalFieldName(),
				batchPlannerMapping.getExternalFieldName());
		}

		return selectedBatchPlannerMappings;
	}

	private List _getTemplateSelectOptions(
		List batchPlannerPlans) {

		List templateSelectOptions = new ArrayList<>();

		for (BatchPlannerPlan batchPlannerPlan : batchPlannerPlans) {
			boolean selected = false;

			if (batchPlannerPlan.getBatchPlannerPlanId() ==
					_selectedBatchPlannerPlanId) {

				selected = true;
			}

			templateSelectOptions.add(
				new SelectOption(
					batchPlannerPlan.getName(),
					String.valueOf(batchPlannerPlan.getBatchPlannerPlanId()),
					selected));
		}

		return templateSelectOptions;
	}

	private final HttpServletRequest _httpServletRequest;
	private final List _internalClassNameKeySelectOptions;
	private Locale _locale;
	private final Map _selectedBatchPlannerMappings;
	private final long _selectedBatchPlannerPlanId;
	private final String _selectedBatchPlannerPlanName;
	private final String _selectedExternalType;
	private final String _selectedInternalClassNameKey;
	private final List _templateSelectOptions;
	private ThemeDisplay _themeDisplay;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy