Search in sources :

Example 1 with PortletUrlType

use of org.apereo.portal.search.PortletUrlType in project uPortal by Jasig.

the class PortletUtils method getStringFromPortletUrl.

/**
     * A static EL function that is defined in portletUrl.tld Takes a portletUrl object and coverts
     * it into an actual Url Example is in search, returns a marketplace entry Url
     *
     * @param portletUrl
     * @param request
     * @return the Url represented by portletUrl
     */
public static String getStringFromPortletUrl(PortletUrl portletUrl, HttpServletRequest request) {
    if (portletUrl == null) {
        return null;
    }
    //Default urlType
    UrlType urlType = UrlType.RENDER;
    final PortletUrlType type = portletUrl.getType();
    switch(type) {
        case ACTION:
            urlType = UrlType.ACTION;
            break;
        case RESOURCE:
            urlType = UrlType.RESOURCE;
            break;
        default:
            urlType = UrlType.RENDER;
            break;
    }
    IPortletWindow marketplaceWindow = portletWindowRegistry.getOrCreateDefaultPortletWindowByFname(request, MarketplacePortletDefinition.MARKETPLACE_FNAME);
    IPortalUrlBuilder portalUrlBuilder = portalUrlProvider.getPortalUrlBuilderByPortletWindow(request, marketplaceWindow.getPortletWindowId(), urlType);
    IPortletUrlBuilder portletUrlBuilder = portalUrlBuilder.getTargetedPortletUrlBuilder();
    final String portletMode = portletUrl.getPortletMode();
    if (portletMode != null) {
        portletUrlBuilder.setPortletMode(PortletUtils.getPortletMode(portletMode));
    }
    final String windowState = portletUrl.getWindowState();
    if (windowState != null) {
        portletUrlBuilder.setWindowState(PortletUtils.getWindowState(windowState));
    }
    for (final PortletUrlParameter param : portletUrl.getParam()) {
        final String name = param.getName();
        final List<String> values = param.getValue();
        portletUrlBuilder.addParameter(name, values.toArray(new String[values.size()]));
    }
    return portalUrlBuilder.getUrlString();
}
Also used : IPortletUrlBuilder(org.apereo.portal.url.IPortletUrlBuilder) PortletUrlParameter(org.apereo.portal.search.PortletUrlParameter) PortletUrlType(org.apereo.portal.search.PortletUrlType) IPortalUrlBuilder(org.apereo.portal.url.IPortalUrlBuilder) PortletUrlType(org.apereo.portal.search.PortletUrlType) UrlType(org.apereo.portal.url.UrlType) IPortletWindow(org.apereo.portal.portlet.om.IPortletWindow)

Example 2 with PortletUrlType

use of org.apereo.portal.search.PortletUrlType in project uPortal by Jasig.

the class SearchPortletController method getResultUrl.

/** Determine the url for the search result */
protected String getResultUrl(HttpServletRequest httpServletRequest, SearchResult result, IPortletWindowId portletWindowId) {
    final String externalUrl = result.getExternalUrl();
    if (externalUrl != null) {
        return externalUrl;
    }
    UrlType urlType = UrlType.RENDER;
    final PortletUrl portletUrl = result.getPortletUrl();
    if (portletUrl != null) {
        final PortletUrlType type = portletUrl.getType();
        if (type != null) {
            switch(type) {
                case ACTION:
                    {
                        urlType = UrlType.ACTION;
                        break;
                    }
                default:
                case RENDER:
                    {
                        urlType = UrlType.RENDER;
                        break;
                    }
                case RESOURCE:
                    {
                        urlType = UrlType.RESOURCE;
                        break;
                    }
            }
        }
    }
    final IPortalUrlBuilder portalUrlBuilder = this.portalUrlProvider.getPortalUrlBuilderByPortletWindow(httpServletRequest, portletWindowId, urlType);
    final IPortletUrlBuilder portletUrlBuilder = portalUrlBuilder.getTargetedPortletUrlBuilder();
    if (portletUrl != null) {
        final String portletMode = portletUrl.getPortletMode();
        if (portletMode != null) {
            portletUrlBuilder.setPortletMode(PortletUtils.getPortletMode(portletMode));
        }
        final String windowState = portletUrl.getWindowState();
        if (windowState != null) {
            portletUrlBuilder.setWindowState(PortletUtils.getWindowState(windowState));
        }
        for (final PortletUrlParameter param : portletUrl.getParam()) {
            final String name = param.getName();
            final List<String> values = param.getValue();
            portletUrlBuilder.addParameter(name, values.toArray(new String[values.size()]));
        }
    }
    return portalUrlBuilder.getUrlString();
}
Also used : IPortletUrlBuilder(org.apereo.portal.url.IPortletUrlBuilder) PortletUrlParameter(org.apereo.portal.search.PortletUrlParameter) PortletUrl(org.apereo.portal.search.PortletUrl) PortletUrlType(org.apereo.portal.search.PortletUrlType) IPortalUrlBuilder(org.apereo.portal.url.IPortalUrlBuilder) UrlType(org.apereo.portal.url.UrlType) PortletUrlType(org.apereo.portal.search.PortletUrlType)

Aggregations

PortletUrlParameter (org.apereo.portal.search.PortletUrlParameter)2 PortletUrlType (org.apereo.portal.search.PortletUrlType)2 IPortalUrlBuilder (org.apereo.portal.url.IPortalUrlBuilder)2 IPortletUrlBuilder (org.apereo.portal.url.IPortletUrlBuilder)2 UrlType (org.apereo.portal.url.UrlType)2 IPortletWindow (org.apereo.portal.portlet.om.IPortletWindow)1 PortletUrl (org.apereo.portal.search.PortletUrl)1