com.liferay.trash.web.internal.util.TrashUndoUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.trash.web.internal.util.TrashUndoUtil.java

Source

/**
 * 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);
    }

}