001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.imagegallerydisplay.display.context;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.repository.model.FileShortcut;
019    import com.liferay.portal.kernel.repository.model.FileVersion;
020    import com.liferay.portal.kernel.servlet.taglib.ui.MenuItem;
021    import com.liferay.portlet.documentlibrary.display.context.logic.DLPortletInstanceSettingsHelper;
022    import com.liferay.portlet.documentlibrary.display.context.logic.UIItemsBuilder;
023    import com.liferay.portlet.imagegallerydisplay.display.context.util.IGRequestHelper;
024    
025    import java.util.ArrayList;
026    import java.util.List;
027    import java.util.UUID;
028    
029    import javax.servlet.http.HttpServletRequest;
030    import javax.servlet.http.HttpServletResponse;
031    
032    /**
033     * @author Adolfo P??rez
034     */
035    public class DefaultIGViewFileVersionDisplayContext
036            implements IGViewFileVersionDisplayContext {
037    
038            public DefaultIGViewFileVersionDisplayContext(
039                            HttpServletRequest request, HttpServletResponse response,
040                            FileShortcut fileShortcut)
041                    throws PortalException {
042    
043                    this(request, response, fileShortcut.getFileVersion(), fileShortcut);
044            }
045    
046            public DefaultIGViewFileVersionDisplayContext(
047                            HttpServletRequest request, HttpServletResponse response,
048                            FileVersion fileVersion)
049                    throws PortalException {
050    
051                    this(request, response, fileVersion, null);
052            }
053    
054            public DefaultIGViewFileVersionDisplayContext(
055                            HttpServletRequest request, HttpServletResponse response,
056                            FileVersion fileVersion, FileShortcut fileShortcut)
057                    throws PortalException {
058    
059                    _igRequestHelper = new IGRequestHelper(request);
060    
061                    _dlPorletInstanceSettingsHelper = new DLPortletInstanceSettingsHelper(
062                            _igRequestHelper);
063    
064                    if (fileShortcut == null) {
065                            _uiItemsBuilder = new UIItemsBuilder(
066                                    request, response, fileVersion);
067                    }
068                    else {
069                            _uiItemsBuilder = new UIItemsBuilder(
070                                    request, response, fileShortcut);
071                    }
072            }
073    
074            @Override
075            public List<MenuItem> getMenuItems() throws PortalException {
076                    List<MenuItem> menuItems = new ArrayList<>();
077    
078                    if (_dlPorletInstanceSettingsHelper.isShowActions()) {
079                            _uiItemsBuilder.addDownloadMenuItem(menuItems);
080    
081                            _uiItemsBuilder.addViewOriginalFileMenuItem(menuItems);
082    
083                            _uiItemsBuilder.addEditMenuItem(menuItems);
084    
085                            _uiItemsBuilder.addPermissionsMenuItem(menuItems);
086    
087                            _uiItemsBuilder.addDeleteMenuItem(menuItems);
088                    }
089    
090                    return menuItems;
091            }
092    
093            @Override
094            public UUID getUuid() {
095                    return _UUID;
096            }
097    
098            private static final UUID _UUID = UUID.fromString(
099                    "C04528F9-C005-4E21-A926-F068750B99DB");
100    
101            private final DLPortletInstanceSettingsHelper
102                    _dlPorletInstanceSettingsHelper;
103            private final IGRequestHelper _igRequestHelper;
104            private final UIItemsBuilder _uiItemsBuilder;
105    
106    }