001
014
015 package com.liferay.portlet.imagegallerydisplay.context;
016
017 import com.liferay.portal.kernel.language.LanguageUtil;
018 import com.liferay.portal.kernel.util.KeyValuePair;
019 import com.liferay.portal.theme.ThemeDisplay;
020 import com.liferay.portal.util.WebKeys;
021 import com.liferay.portlet.documentlibrary.DLPortletInstanceSettings;
022 import com.liferay.portlet.documentlibrary.util.DLUtil;
023
024 import java.util.ArrayList;
025 import java.util.Arrays;
026 import java.util.List;
027 import java.util.Set;
028
029 import javax.servlet.http.HttpServletRequest;
030
031
034 public class IGConfigurationDisplayContext {
035
036 public IGConfigurationDisplayContext(
037 HttpServletRequest request,
038 DLPortletInstanceSettings dlPortletInstanceSettings) {
039
040 _dlPortletInstanceSettings = dlPortletInstanceSettings;
041
042 _themeDisplay = (ThemeDisplay)request.getAttribute(
043 WebKeys.THEME_DISPLAY);
044 }
045
046 public List<KeyValuePair> getAvailableMimeTypes() {
047 if (_availableMimeTypes == null) {
048 _populateMimeTypes();
049 }
050
051 return _availableMimeTypes;
052 }
053
054 public List<KeyValuePair> getCurrentMimeTypes() {
055 if (_currentMimeTypes == null) {
056 _populateMimeTypes();
057 }
058
059 return _currentMimeTypes;
060 }
061
062 private void _populateMimeTypes() {
063 String[] mediaGalleryMimeTypes =
064 _dlPortletInstanceSettings.getMimeTypes();
065
066 _currentMimeTypes = new ArrayList<KeyValuePair>();
067
068 for (String mimeType : mediaGalleryMimeTypes) {
069 _currentMimeTypes.add(
070 new KeyValuePair(
071 mimeType,
072 LanguageUtil.get(_themeDisplay.getLocale(), mimeType)));
073 }
074
075 _availableMimeTypes = new ArrayList<KeyValuePair>();
076
077 Set<String> allMediaGalleryMimeTypes =
078 DLUtil.getAllMediaGalleryMimeTypes();
079
080 for (String mimeType : allMediaGalleryMimeTypes) {
081 if (Arrays.binarySearch(mediaGalleryMimeTypes, mimeType) < 0) {
082 _availableMimeTypes.add(
083 new KeyValuePair(
084 mimeType,
085 LanguageUtil.get(_themeDisplay.getLocale(), mimeType)));
086 }
087 }
088 }
089
090 private List<KeyValuePair> _availableMimeTypes;
091 private List<KeyValuePair> _currentMimeTypes;
092 private final DLPortletInstanceSettings _dlPortletInstanceSettings;
093 private final ThemeDisplay _themeDisplay;
094
095 }