@Override public List<ContainerModel> getParentContainerModels(long classPK) throws PortalException { List<ContainerModel> containerModels = new ArrayList<ContainerModel>(); ContainerModel containerModel = getParentContainerModel(classPK); if (containerModel == null) { return containerModels; } containerModels.add(containerModel); while (containerModel.getParentContainerModelId() > 0) { containerModel = getContainerModel(containerModel.getParentContainerModelId()); if (containerModel == null) { break; } containerModels.add(containerModel); } return containerModels; }
protected void addBreadcrumbEntries( HttpServletRequest request, String className, long classPK, String paramName, PortletURL containerModelURL) throws PortalException, SystemException { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); List<ContainerModel> containerModels = trashHandler.getParentContainerModels(classPK); Collections.reverse(containerModels); for (ContainerModel containerModel : containerModels) { containerModelURL.setParameter( paramName, String.valueOf(containerModel.getContainerModelId())); PortalUtil.addPortletBreadcrumbEntry( request, containerModel.getContainerModelName(), containerModelURL.toString()); } TrashRenderer trashRenderer = trashHandler.getTrashRenderer(classPK); PortalUtil.addPortletBreadcrumbEntry( request, trashRenderer.getTitle(themeDisplay.getLocale()), null); }
@Override public PortletURL getViewContentURL(HttpServletRequest request, String className, long classPK) throws PortalException, SystemException { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); if (!themeDisplay.isSignedIn() || !isTrashEnabled(themeDisplay.getScopeGroupId()) || !PortletPermissionUtil.hasControlPanelAccessPermission( themeDisplay.getPermissionChecker(), themeDisplay.getScopeGroupId(), PortletKeys.TRASH)) { return null; } TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); if (trashHandler.isInTrashContainer(classPK)) { ContainerModel containerModel = trashHandler.getTrashContainer(classPK); className = containerModel.getModelClassName(); classPK = containerModel.getContainerModelId(); trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); } TrashRenderer trashRenderer = trashHandler.getTrashRenderer(classPK); if (trashRenderer == null) { return null; } Layout layout = themeDisplay.getLayout(); PortletURL portletURL = PortalUtil.getControlPanelPortletURL( request, PortletKeys.TRASH, layout.getLayoutId(), PortletRequest.RENDER_PHASE); portletURL.setParameter("struts_action", "/trash/view_content"); portletURL.setParameter("redirect", themeDisplay.getURLCurrent()); TrashEntry trashEntry = TrashEntryLocalServiceUtil.getEntry(className, classPK); if (trashEntry.getRootEntry() != null) { portletURL.setParameter("className", className); portletURL.setParameter("classPK", String.valueOf(classPK)); } else { portletURL.setParameter("trashEntryId", String.valueOf(trashEntry.getEntryId())); } portletURL.setParameter("type", trashRenderer.getType()); portletURL.setParameter("showActions", Boolean.FALSE.toString()); portletURL.setParameter("showAssetMetadata", Boolean.TRUE.toString()); portletURL.setParameter("showEditURL", Boolean.FALSE.toString()); return portletURL; }
public String getViewContentURL(String className, long classPK, ThemeDisplay themeDisplay) throws PortalException, SystemException { if (!themeDisplay.isSignedIn() || !isTrashEnabled(themeDisplay.getScopeGroupId()) || !PortletPermissionUtil.hasControlPanelAccessPermission( themeDisplay.getPermissionChecker(), themeDisplay.getScopeGroupId(), PortletKeys.TRASH)) { return null; } TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); if (trashHandler.isInTrashContainer(classPK)) { ContainerModel containerModel = trashHandler.getTrashContainer(classPK); className = containerModel.getModelClassName(); classPK = containerModel.getContainerModelId(); trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); } TrashRenderer trashRenderer = trashHandler.getTrashRenderer(classPK); if (trashRenderer == null) { return null; } String namespace = PortalUtil.getPortletNamespace(PortletKeys.TRASH); Map<String, String[]> params = new HashMap<String, String[]>(); params.put(namespace + "struts_action", new String[] {"/trash/view_content"}); params.put(namespace + "redirect", new String[] {themeDisplay.getURLCurrent()}); TrashEntry trashEntry = TrashEntryLocalServiceUtil.getEntry(className, classPK); if (trashEntry.getRootEntry() != null) { params.put(namespace + "className", new String[] {className}); params.put(namespace + "classPK", new String[] {String.valueOf(classPK)}); } else { params.put( namespace + "trashEntryId", new String[] {String.valueOf(trashEntry.getEntryId())}); } params.put(namespace + "type", new String[] {trashRenderer.getType()}); params.put(namespace + "showActions", new String[] {Boolean.FALSE.toString()}); params.put(namespace + "showAssetMetadata", new String[] {Boolean.TRUE.toString()}); params.put(namespace + "showEditURL", new String[] {Boolean.FALSE.toString()}); return PortalUtil.getControlPanelFullURL( themeDisplay.getScopeGroupId(), PortletKeys.TRASH, params); }
@Override public TrashEntry getTrashEntry() throws PortalException { if (!isInTrash()) { return null; } TrashEntry trashEntry = TrashEntryLocalServiceUtil.fetchEntry(getModelClassName(), getTrashEntryClassPK()); if (trashEntry != null) { return trashEntry; } TrashHandler trashHandler = getTrashHandler(); if (!Validator.isNull(trashHandler.getContainerModelClassName(getPrimaryKey()))) { ContainerModel containerModel = null; try { containerModel = trashHandler.getParentContainerModel(this); } catch (NoSuchModelException nsme) { return null; } while (containerModel != null) { if (containerModel instanceof TrashedModel) { TrashedModel trashedModel = (TrashedModel) containerModel; return trashedModel.getTrashEntry(); } trashHandler = TrashHandlerRegistryUtil.getTrashHandler( trashHandler.getContainerModelClassName(containerModel.getContainerModelId())); if (trashHandler == null) { return null; } containerModel = trashHandler.getContainerModel(containerModel.getParentContainerModelId()); } } return null; }
protected void addBreadcrumbEntries( HttpServletRequest request, String className, long classPK, String paramName, PortletURL containerModelURL) throws PortalException { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); List<ContainerModel> containerModels = trashHandler.getParentContainerModels(classPK); Collections.reverse(containerModels); containerModelURL.setParameter("struts_action", "/trash/view"); PortalUtil.addPortletBreadcrumbEntry( request, LanguageUtil.get(themeDisplay.getLocale(), "recycle-bin"), containerModelURL.toString()); for (ContainerModel containerModel : containerModels) { TrashHandler containerModelTrashHandler = TrashHandlerRegistryUtil.getTrashHandler(containerModel.getModelClassName()); if (!containerModelTrashHandler.isInTrash(containerModel.getContainerModelId())) { continue; } containerModelURL.setParameter("struts_action", "/trash/view_content"); containerModelURL.setParameter( paramName, String.valueOf(containerModel.getContainerModelId())); String name = containerModel.getContainerModelName(); if (containerModelTrashHandler.isInTrash(containerModel.getContainerModelId())) { name = TrashUtil.getOriginalTitle(name); } PortalUtil.addPortletBreadcrumbEntry(request, name, containerModelURL.toString()); } TrashRenderer trashRenderer = trashHandler.getTrashRenderer(classPK); PortalUtil.addPortletBreadcrumbEntry( request, trashRenderer.getTitle(themeDisplay.getLocale()), null); }
protected void addBreadcrumbEntries( HttpServletRequest request, LiferayPortletResponse liferayPortletResponse, String className, long classPK, String paramName, PortletURL containerModelURL, boolean checkInTrashContainers) throws PortalException, PortletException { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); PortletURL portletURL = PortletURLUtil.clone(containerModelURL, liferayPortletResponse); TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(className); List<ContainerModel> containerModels = trashHandler.getParentContainerModels(classPK); Collections.reverse(containerModels); for (ContainerModel containerModel : containerModels) { TrashHandler containerModelTrashHandler = TrashHandlerRegistryUtil.getTrashHandler(containerModel.getModelClassName()); if (checkInTrashContainers && !containerModelTrashHandler.isInTrash(containerModel.getContainerModelId())) { continue; } portletURL.setParameter(paramName, String.valueOf(containerModel.getContainerModelId())); String name = containerModel.getContainerModelName(); if (containerModelTrashHandler.isInTrash(containerModel.getContainerModelId())) { name = TrashUtil.getOriginalTitle(name); } PortalUtil.addPortletBreadcrumbEntry(request, name, portletURL.toString()); } TrashRenderer trashRenderer = trashHandler.getTrashRenderer(classPK); PortalUtil.addPortletBreadcrumbEntry( request, trashRenderer.getTitle(themeDisplay.getLocale()), null); }