Java tutorial
/** * 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.blogs.web.internal; import com.liferay.blogs.item.selector.criterion.BlogsItemSelectorCriterion; import com.liferay.blogs.web.constants.BlogsPortletKeys; import com.liferay.item.selector.ItemSelector; import com.liferay.item.selector.ItemSelectorReturnType; import com.liferay.item.selector.criteria.FileEntryItemSelectorReturnType; import com.liferay.item.selector.criteria.image.criterion.ImageItemSelectorCriterion; import com.liferay.item.selector.criteria.upload.criterion.UploadItemSelectorCriterion; import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.portlet.RequestBackedPortletURLFactory; import com.liferay.portal.kernel.theme.ThemeDisplay; import java.util.ArrayList; import java.util.List; import javax.portlet.ActionRequest; import javax.portlet.PortletURL; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.osgi.service.component.annotations.ReferenceCardinality; import org.osgi.service.component.annotations.ReferencePolicy; import org.osgi.service.component.annotations.ReferencePolicyOption; /** * @author Roberto Daz */ @Component(service = BlogsItemSelectorHelper.class) public class BlogsItemSelectorHelper { public String getItemSelectorURL(RequestBackedPortletURLFactory requestBackedPortletURLFactory, ThemeDisplay themeDisplay, String itemSelectedEventName) { if (_itemSelector == null) { return null; } List<ItemSelectorReturnType> desiredItemSelectorReturnTypes = new ArrayList<>(); desiredItemSelectorReturnTypes.add(new FileEntryItemSelectorReturnType()); BlogsItemSelectorCriterion blogsItemSelectorCriterion = new BlogsItemSelectorCriterion(); blogsItemSelectorCriterion.setDesiredItemSelectorReturnTypes(desiredItemSelectorReturnTypes); ImageItemSelectorCriterion imageItemSelectorCriterion = new ImageItemSelectorCriterion(); imageItemSelectorCriterion.setDesiredItemSelectorReturnTypes(desiredItemSelectorReturnTypes); List<ItemSelectorReturnType> uploadCriterionDesiredItemSelectorReturnTypes = new ArrayList<>(); uploadCriterionDesiredItemSelectorReturnTypes.add(new FileEntryItemSelectorReturnType()); PortletURL uploadURL = requestBackedPortletURLFactory.createActionURL(BlogsPortletKeys.BLOGS); uploadURL.setParameter(ActionRequest.ACTION_NAME, "/blogs/upload_cover_image"); UploadItemSelectorCriterion uploadItemSelectorCriterion = new UploadItemSelectorCriterion( uploadURL.toString(), LanguageUtil.get(themeDisplay.getLocale(), "blog-images")); uploadItemSelectorCriterion .setDesiredItemSelectorReturnTypes(uploadCriterionDesiredItemSelectorReturnTypes); PortletURL itemSelectorURL = _itemSelector.getItemSelectorURL(requestBackedPortletURLFactory, itemSelectedEventName, blogsItemSelectorCriterion, imageItemSelectorCriterion, uploadItemSelectorCriterion); return itemSelectorURL.toString(); } @Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC, policyOption = ReferencePolicyOption.GREEDY) public void setItemSelector(ItemSelector itemSelector) { _itemSelector = itemSelector; } public void unsetItemSelector(ItemSelector itemSelector) { _itemSelector = null; } private ItemSelector _itemSelector; }