public static Group getGroup(HttpServletRequest request) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); String cmd = ParamUtil.getString(request, Constants.CMD); long groupId = ParamUtil.getLong(request, "groupId"); Group group = null; if (groupId > 0) { group = GroupLocalServiceUtil.getGroup(groupId); } else if (!cmd.equals(Constants.ADD)) { group = themeDisplay.getSiteGroup(); } request.setAttribute(WebKeys.GROUP, group); return group; }
@Override public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException { List<AssetVocabulary> vocabularies = new ArrayList<AssetVocabulary>(); Map<AssetVocabulary, List<AssetCategory>> vocabulariesMap = new HashMap<AssetVocabulary, List<AssetCategory>>(); ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY); long[] categoryIds = ParamUtil.getLongValues(renderRequest, "categoryIds"); try { Group siteGroup = themeDisplay.getSiteGroup(); long scopeGroupId = themeDisplay.getScopeGroupId(); vocabularies.addAll( AssetVocabularyServiceUtil.getGroupVocabularies(siteGroup.getGroupId(), false)); if (scopeGroupId != themeDisplay.getCompanyGroupId()) { vocabularies.addAll( AssetVocabularyServiceUtil.getGroupVocabularies( themeDisplay.getCompanyGroupId(), false)); } long classNameId = PortalUtil.getClassNameId(Announcement.class); // Select announcement vocabularies for announcement only. for (AssetVocabulary vocabulary : vocabularies) { vocabulary = vocabulary.toEscapedModel(); int vocabularyCategoriesCount = AssetCategoryServiceUtil.getVocabularyCategoriesCount( vocabulary.getGroupId(), vocabulary.getVocabularyId()); if (vocabularyCategoriesCount == 0) { continue; } UnicodeProperties settingsProperties = vocabulary.getSettingsProperties(); long[] selectedClassNameIds = StringUtil.split(settingsProperties.getProperty("selectedClassNameIds"), 0L); if ((selectedClassNameIds.length > 0) && (selectedClassNameIds[0] != AssetCategoryConstants.ALL_CLASS_NAME_IDS) && !ArrayUtil.contains(selectedClassNameIds, classNameId)) { continue; } List<AssetCategory> assetCategories = AssetCategoryServiceUtil.getVocabularyRootCategories( themeDisplay.getScopeGroupId(), vocabulary.getVocabularyId(), QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); vocabulariesMap.put(vocabulary, assetCategories); } } catch (SystemException e) { if (LOGGER.isDebugEnabled()) { LOGGER.debug(e); } LOGGER.error("SystemException: unable to get types or currencies or vocabularies"); } catch (PortalException e) { if (LOGGER.isDebugEnabled()) { LOGGER.debug(e); } LOGGER.error("SystemException: unable to get types or currencies or vocabularies"); } renderRequest.setAttribute("vocabulariesMap", vocabulariesMap); renderRequest.setAttribute("categoryIds", StringUtil.merge(categoryIds)); renderRequest.setAttribute("htmlUtil", HtmlUtil.getHtml()); super.doView(renderRequest, renderResponse); }