/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.trash.web.internal.util; import com.liferay.portal.kernel.servlet.SessionMessages; import com.liferay.portal.kernel.theme.ThemeDisplay; import com.liferay.portal.kernel.trash.TrashHandler; import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil; import com.liferay.portal.kernel.trash.TrashRenderer; import com.liferay.portal.kernel.util.ObjectValuePair; import com.liferay.portal.kernel.util.PortalUtil; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.util.WebKeys; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.portlet.ActionRequest; /** * @author Eudaldo Alonso */ public class TrashUndoUtil { public static void addRestoreData( ActionRequest actionRequest, List<ObjectValuePair<String, Long>> entries) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute( WebKeys.THEME_DISPLAY); if ((entries == null) || entries.isEmpty()) { return; } List<String> restoreClassNames = new ArrayList<>(); List<String> restoreEntryLinks = new ArrayList<>(); List<String> restoreEntryMessages = new ArrayList<>(); List<String> restoreLinks = new ArrayList<>(); List<String> restoreMessages = new ArrayList<>(); for (ObjectValuePair<String, Long> entry : entries) { TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(entry.getKey()); String restoreEntryLink = trashHandler.getRestoreContainedModelLink( actionRequest, entry.getValue()); String restoreLink = trashHandler.getRestoreContainerModelLink( actionRequest, entry.getValue()); String restoreMessage = trashHandler.getRestoreMessage( actionRequest, entry.getValue()); if (Validator.isNull(restoreLink) || Validator.isNull(restoreMessage)) { continue; } restoreClassNames.add(trashHandler.getClassName()); restoreEntryLinks.add(restoreEntryLink); TrashRenderer trashRenderer = trashHandler.getTrashRenderer( entry.getValue()); String restoreEntryTitle = trashRenderer.getTitle( themeDisplay.getLocale()); restoreEntryMessages.add(restoreEntryTitle); restoreLinks.add(restoreLink); restoreMessages.add(restoreMessage); } Map<String, List<String>> data = new HashMap<>(); data.put("restoreClassNames", restoreClassNames); data.put("restoreEntryLinks", restoreEntryLinks); data.put("restoreEntryMessages", restoreEntryMessages); data.put("restoreLinks", restoreLinks); data.put("restoreMessages", restoreMessages); SessionMessages.add( actionRequest, PortalUtil.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_DELETE_SUCCESS_DATA, data); } public static void addRestoreData( ActionRequest actionRequest, String className, long classPK) throws Exception { List<ObjectValuePair<String, Long>> entries = new ArrayList<>(); ObjectValuePair<String, Long> objectValuePair = new ObjectValuePair<>( className, classPK); entries.add(objectValuePair); addRestoreData(actionRequest, entries); } }