/modules/apps/export-import/export-import-web/src/main/java/com/liferay/exportimport/web/internal/display/context/ExportTemplatesToolbarDisplayContext.java

https://github.com/danielreuther/liferay-portal · Java · 155 lines · 114 code · 24 blank · 17 comment · 0 complexity · 3aa89696fe677d18be8046cb42816712 MD5 · raw file

  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or modify it under
  5. * the terms of the GNU Lesser General Public License as published by the Free
  6. * Software Foundation; either version 2.1 of the License, or (at your option)
  7. * any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  11. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  12. * details.
  13. */
  14. package com.liferay.exportimport.web.internal.display.context;
  15. import com.liferay.exportimport.kernel.configuration.constants.ExportImportConfigurationConstants;
  16. import com.liferay.exportimport.kernel.model.ExportImportConfiguration;
  17. import com.liferay.exportimport.kernel.service.ExportImportConfigurationLocalServiceUtil;
  18. import com.liferay.exportimport.util.comparator.ExportImportConfigurationNameComparator;
  19. import com.liferay.exportimport.web.internal.search.ExportImportConfigurationDisplayTerms;
  20. import com.liferay.exportimport.web.internal.search.ExportImportConfigurationSearchTerms;
  21. import com.liferay.frontend.taglib.clay.servlet.taglib.display.context.BaseManagementToolbarDisplayContext;
  22. import com.liferay.frontend.taglib.clay.servlet.taglib.util.CreationMenu;
  23. import com.liferay.frontend.taglib.clay.servlet.taglib.util.CreationMenuBuilder;
  24. import com.liferay.petra.portlet.url.builder.PortletURLBuilder;
  25. import com.liferay.portal.kernel.dao.search.SearchContainer;
  26. import com.liferay.portal.kernel.language.LanguageUtil;
  27. import com.liferay.portal.kernel.model.Company;
  28. import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
  29. import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
  30. import com.liferay.portal.kernel.util.Constants;
  31. import com.liferay.portlet.layoutsadmin.display.context.GroupDisplayContextHelper;
  32. import java.util.Objects;
  33. import javax.portlet.PortletURL;
  34. import javax.servlet.http.HttpServletRequest;
  35. /**
  36. * @author Péter Alius
  37. * @author Péter Borkuti
  38. */
  39. public class ExportTemplatesToolbarDisplayContext
  40. extends BaseManagementToolbarDisplayContext {
  41. public ExportTemplatesToolbarDisplayContext(
  42. HttpServletRequest httpServletRequest,
  43. LiferayPortletRequest liferayPortletRequest,
  44. LiferayPortletResponse liferayPortletResponse, long liveGroupId,
  45. Company company, PortletURL iteratorURL) {
  46. super(
  47. httpServletRequest, liferayPortletRequest, liferayPortletResponse);
  48. searchContainer = _createSearchContainer(
  49. liveGroupId, company, iteratorURL);
  50. }
  51. @Override
  52. public String getClearResultsURL() {
  53. return PortletURLBuilder.create(
  54. getRenderURL()
  55. ).setMVCPath(
  56. "/export/export_templates/view_export_configurations.jsp"
  57. ).buildString();
  58. }
  59. @Override
  60. public CreationMenu getCreationMenu() {
  61. return CreationMenuBuilder.addPrimaryDropdownItem(
  62. dropdownItem -> {
  63. GroupDisplayContextHelper groupDisplayContextHelper =
  64. new GroupDisplayContextHelper(httpServletRequest);
  65. dropdownItem.setHref(
  66. getRenderURL(), "mvcRenderCommandName",
  67. "/export_import/edit_export_configuration", Constants.CMD,
  68. Constants.ADD, "groupId",
  69. groupDisplayContextHelper.getGroupId(), "liveGroupId",
  70. groupDisplayContextHelper.getLiveGroupId(), "privateLayout",
  71. Boolean.FALSE.toString());
  72. dropdownItem.setLabel(
  73. LanguageUtil.get(httpServletRequest, "new"));
  74. }
  75. ).build();
  76. }
  77. @Override
  78. public int getItemsTotal() {
  79. return searchContainer.getTotal();
  80. }
  81. @Override
  82. public String getSearchActionURL() {
  83. return PortletURLBuilder.create(
  84. getRenderURL()
  85. ).setMVCRenderCommandName(
  86. "/export_import/view_export_configurations"
  87. ).buildString();
  88. }
  89. public SearchContainer<ExportImportConfiguration> getSearchContainer() {
  90. return searchContainer;
  91. }
  92. protected PortletURL getRenderURL() {
  93. return liferayPortletResponse.createRenderURL();
  94. }
  95. protected SearchContainer<ExportImportConfiguration> searchContainer;
  96. private SearchContainer<ExportImportConfiguration> _createSearchContainer(
  97. long liveGroupId, Company company, PortletURL iteratorURL) {
  98. ExportImportConfigurationSearchTerms
  99. exportImportConfigurationSearchTerms =
  100. new ExportImportConfigurationSearchTerms(liferayPortletRequest);
  101. SearchContainer<ExportImportConfiguration> searchContainer =
  102. new SearchContainer(
  103. liferayPortletRequest,
  104. new ExportImportConfigurationDisplayTerms(
  105. liferayPortletRequest),
  106. exportImportConfigurationSearchTerms,
  107. SearchContainer.DEFAULT_CUR_PARAM,
  108. SearchContainer.DEFAULT_DELTA, iteratorURL, null,
  109. "there-are-no-saved-export-templates");
  110. searchContainer.setOrderByCol("name");
  111. searchContainer.setOrderByComparator(
  112. new ExportImportConfigurationNameComparator(
  113. Objects.equals(getOrderByType(), "asc")));
  114. searchContainer.setOrderByType(getOrderByType());
  115. searchContainer.setResultsAndTotal(
  116. () ->
  117. ExportImportConfigurationLocalServiceUtil.
  118. getExportImportConfigurations(
  119. company.getCompanyId(), liveGroupId,
  120. exportImportConfigurationSearchTerms.getKeywords(),
  121. ExportImportConfigurationConstants.TYPE_EXPORT_LAYOUT,
  122. searchContainer.getStart(), searchContainer.getEnd(),
  123. searchContainer.getOrderByComparator()),
  124. ExportImportConfigurationLocalServiceUtil.
  125. getExportImportConfigurationsCount(
  126. company.getCompanyId(), liveGroupId,
  127. exportImportConfigurationSearchTerms.getKeywords(),
  128. ExportImportConfigurationConstants.TYPE_EXPORT_LAYOUT));
  129. return searchContainer;
  130. }
  131. }