Package org.jasig.portal.portlet.om

Examples of org.jasig.portal.portlet.om.IPortletWindowId


        expect(mockPortalPortletUrl.getPortletMode()).andReturn(PortletMode.VIEW);
        expect(mockPortalPortletUrl.getPortalParameters()).andReturn(new HashMap<String, List<String>>());
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(new HashMap<String, List<String>>());
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("31");
View Full Code Here


        expect(mockPortalPortletUrl.getPortletMode()).andReturn(PortletMode.VIEW);
        expect(mockPortalPortletUrl.getPortalParameters()).andReturn(new HashMap<String, List<String>>());
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(new HashMap<String, List<String>>());
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("31");
View Full Code Here

        expect(mockPortalPortletUrl.getPortletMode()).andReturn(PortletMode.VIEW);
        expect(mockPortalPortletUrl.getPortalParameters()).andReturn(new HashMap<String, List<String>>());
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(new HashMap<String, List<String>>());
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("31");
View Full Code Here

        expect(mockPortalPortletUrl.getPortletMode()).andReturn(PortletMode.HELP);
        expect(mockPortalPortletUrl.getPortalParameters()).andReturn(new HashMap<String, List<String>>());
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(new HashMap<String, List<String>>());
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("31");
View Full Code Here

        expect(mockPortalPortletUrl.getPortletMode()).andReturn(PortletMode.VIEW);
        expect(mockPortalPortletUrl.getPortalParameters()).andReturn(new HashMap<String, List<String>>());
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(new HashMap<String, List<String>>());
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("ctf31");
View Full Code Here

        ppZipValues.add("53706");
        portletParameters.put("pp_zip", ppZipValues);
        expect(mockPortalPortletUrl.getPortletParameters()).andReturn(portletParameters);
        replay(mockPortalPortletUrl);
       
        IPortletWindowId mockPortletWindowId = createMock(IPortletWindowId.class);
        expect(mockPortletWindowId.getStringId()).andReturn("target");
        replay(mockPortletWindowId);
       
        ProviderSetupDetails details = new ProviderSetupDetails();
        details.setChannelFName("weather");
        details.setChannelId("31");
View Full Code Here

        return portletUrl;
    }
   
    @SuppressWarnings("unchecked")
    protected void parsePortletParameters(HttpServletRequest request, PortletUrl portletUrl, UrlTarget urlTarget) {
        final IPortletWindowId portletWindowId = portletUrl.getTargetWindowId();

        //Setup the namespace string used for parsing parameters, fname targets won't have namespaced parameters
        final String controlNamespace;
        final String parameterNamespace;
        if (urlTarget != null && urlTarget.fnameTarget) {
            controlNamespace = "";
            parameterNamespace = "";
        }
        else {
            controlNamespace = SEPERATOR + portletWindowId.toString();
            parameterNamespace = portletWindowId.toString() + SEPERATOR;
        }
       
        final String requestTypeStr = request.getParameter(PARAM_REQUEST_TYPE_PREFIX + controlNamespace);
        if (requestTypeStr != null) {
            final RequestType requestType = RequestType.valueOf(requestTypeStr);
            portletUrl.setRequestType(requestType);
        }
        else {
            //Default to RENDER request if no request type was specified
            portletUrl.setRequestType(RequestType.RENDER);
        }
       
        final String windowStateStr = request.getParameter(PARAM_WINDOW_STATE_PREFIX + controlNamespace);
        if (windowStateStr != null) {
            final WindowState windowState = new WindowState(windowStateStr);
            portletUrl.setWindowState(windowState);
        }
       
        final String portletModeStr = request.getParameter(PARAM_PORTLET_MODE_PREFIX + controlNamespace);
        if (portletModeStr != null) {
            final PortletMode portletMode = new PortletMode(portletModeStr);
            portletUrl.setPortletMode(portletMode);
        }
       
        final Map<String, String[]> requestParameters = request.getParameterMap();
        final Set<String> urlParameterNames = this.getUrlParameterNames(request);
       
        final Map<String, List<String>> portletParameters = new LinkedHashMap<String, List<String>>(requestParameters.size());
        final String fqParameterName = PORTLET_PARAM_PREFIX + parameterNamespace;
        for (final Map.Entry<String, String[]> parameterEntry : requestParameters.entrySet()) {
            final String parameterName = parameterEntry.getKey();
           
            //If the parameter starts with the param prefix add it to the Map
            if (parameterName.startsWith(fqParameterName)) {
                final String portletParameterName = parameterName.substring(fqParameterName.length());
                final String[] portletParameterValues = parameterEntry.getValue();

                if (portletParameterValues == null) {
                    portletParameters.put(portletParameterName, null);
                }
                else {
                    portletParameters.put(portletParameterName, Arrays.asList(portletParameterValues));
                }
            }
            //If it did not appear on the URL it must be a submit parameter so add it to the Map
            else if (urlParameterNames != null && !urlParameterNames.contains(parameterName)) {
                final String[] portletParameterValues = parameterEntry.getValue();

                if (portletParameterValues == null) {
                    portletParameters.put(parameterName, null);
                }
                else {
                    portletParameters.put(parameterName, Arrays.asList(portletParameterValues));
                }
            }
        }
        portletUrl.setParameters(portletParameters);
       
        portletUrl.setSecure(request.isSecure());

        //If delegating recurse
        final String delegateWindowIdStr = request.getParameter(PARAM_DELEGATE_PREFIX + controlNamespace);
        if (delegateWindowIdStr != null) {
            final IPortletWindowId delegateWindowId = this.portletWindowRegistry.getPortletWindowId(delegateWindowIdStr);
           
            //Verify delegation change
            final IPortletWindow delegateWindow = this.portletWindowRegistry.getPortletWindow(request, delegateWindowId);
            final IPortletWindowId delegationParentId = delegateWindow.getDelegationParent();
            if (delegationParentId == null) {
                throw new IllegalArgumentException("Delegate window '" + delegateWindowId + "' has no parent. Parent specified in the URL is '" + portletWindowId + "'");
            }
            else if (!portletWindowId.equals(delegationParentId)) {
                throw new IllegalArgumentException("Parent '" + delegationParentId + "' of delegate window '" + delegateWindowId + "' is not the parent specified in the URL: '" + portletWindowId + "'");
View Full Code Here

    protected void generatePortletUrl(HttpServletRequest request, IPortletWindow portletWindow, IPortletWindowId delegationChildId, PortletUrl portletUrl, StringBuilder url) {
        //Get the encoding to use for the URL
        final String encoding = this.getEncoding(request);
       
        //Look to see if the window is being delegated to, if so recurse to the parent for URL generation first
        final IPortletWindowId delegationParentId = portletWindow.getDelegationParent();
        if (delegationParentId != null) {
            final IPortletWindow delegateParent = this.portletWindowRegistry.getPortletWindow(request, delegationParentId);
           
            PortletUrl parentUrl = this.portletDelegationManager.getParentPortletUrl(request, delegationParentId);
            if (parentUrl == null) {
                parentUrl = new PortletUrl(delegationParentId);
                parentUrl.setWindowState(delegateParent.getWindowState());
                parentUrl.setPortletMode(delegateParent.getPortletMode());
                parentUrl.setParameters(delegateParent.getRequestParameters());
            }
           
            //Parent URLs MUST be in the same type as the child
            parentUrl.setRequestType(portletUrl.getRequestType());
           
            this.generatePortletUrl(request, delegateParent, portletWindow.getPortletWindowId(), parentUrl, url);
        }
       
        // TODO Need to decide how to deal with 'secure' URL requests

        final IPortletWindowId portletWindowId = portletWindow.getPortletWindowId();
        final IPortletEntity parentPortletEntity = this.portletWindowRegistry.getParentPortletEntity(request, portletWindowId);
        final String channelSubscribeId = parentPortletEntity.getChannelSubscribeId();

        WindowState windowState = portletUrl.getWindowState();
        PortletMode portletMode = portletUrl.getPortletMode();
       
        final WindowState previousWindowState = portletWindow.getWindowState();
        final PortletMode previousPortletMode = portletWindow.getPortletMode();
       
        //Only do this stuff for the top level window
        if (delegationParentId == null) {
            //Get the channel runtime data from the request attributes, it should have been set there by the portlet adapter
            final ChannelRuntimeData channelRuntimeData = (ChannelRuntimeData)request.getAttribute(IPortletAdaptor.ATTRIBUTE__RUNTIME_DATA);
            if (channelRuntimeData == null) {
                throw new IllegalStateException("No ChannelRuntimeData was found as a request attribute for key '" + IPortletAdaptor.ATTRIBUTE__RUNTIME_DATA + "' on request '" + request + "'");
            }
           
            // Determine the base path for the URL
            // If the next state is EXCLUSIVE or there is no state change and the current state is EXCLUSIVE use the worker URL base
            if (IPortletAdaptor.EXCLUSIVE.equals(windowState) || (windowState == null && IPortletAdaptor.EXCLUSIVE.equals(previousWindowState))) {
                final String urlBase = channelRuntimeData.getBaseWorkerURL(UPFileSpec.FILE_DOWNLOAD_WORKER);
                url.append(urlBase);
            }
            //In detached, need to make sure the URL is right
            else if (IPortletAdaptor.DETACHED.equals(windowState) || (windowState == null && IPortletAdaptor.DETACHED.equals(previousWindowState))) {
                final UPFileSpec upFileSpec = new UPFileSpec(channelRuntimeData.getUPFile());
                upFileSpec.setMethodNodeId(channelSubscribeId);
                upFileSpec.setTargetNodeId(channelSubscribeId);
                final String urlBase = upFileSpec.getUPFile();
                url.append(urlBase);
            }
            //Switching back from detached to a normal state
            else if (IPortletAdaptor.DETACHED.equals(previousWindowState) && windowState != null && !previousWindowState.equals(windowState)) {
                final UPFileSpec upFileSpec = new UPFileSpec(channelRuntimeData.getUPFile());
                upFileSpec.setMethodNodeId(UPFileSpec.USER_LAYOUT_ROOT_NODE);
                final String urlBase = upFileSpec.getUPFile();
                url.append(urlBase);
            }
            //No special handling, just use the base action URL
            else {
                final String urlBase = channelRuntimeData.getBaseActionURL();
                url.append(urlBase);
            }
           
            if (this.logger.isTraceEnabled()) {
                this.logger.trace("Using root url base '" + url + "' for " + portletUrl);
            }
        }
       
        //Set the request target, creating a transient window ID if needed
        boolean forceWindowState = false;
        final String portletWindowIdString;
        //If rendering as a delegate just reuse the id (it will always be transient)
        if (delegationParentId != null) {
            portletWindowIdString = portletWindowId.toString();
        }
        //If switching from a non-transient state to a transient state generate a new transient window id
        else if (this.transientWindowStates.contains(windowState) && !this.transientWindowStates.contains(previousWindowState)) {
            final IPortletWindowId transientPortletWindowId = this.portletWindowRegistry.createTransientPortletWindowId(request, portletWindowId);
            portletWindowIdString = transientPortletWindowId.toString();
        }
        //If the window is transient, it is in a transient state and it is switching from a non-transient state
        else if (this.portletWindowRegistry.isTransient(request, portletWindowId) &&
                !this.transientWindowStates.contains(windowState) &&
                (windowState != null || !this.transientWindowStates.contains(previousWindowState))) {
            //Get non-transient version of id
            final IPortletEntityId portletEntityId = portletWindow.getPortletEntityId();
            final IPortletWindowId defaultPortletWindowId = this.portletWindowRegistry.getDefaultPortletWindowId(portletEntityId);
            portletWindowIdString = defaultPortletWindowId.getStringId();
           
            if (windowState == null) {
                final IPortletWindow defaultPortletWindow = this.portletWindowRegistry.getPortletWindow(request, defaultPortletWindowId);
                if (!previousWindowState.equals(defaultPortletWindow.getWindowState())) {
                    forceWindowState = true;
View Full Code Here

        EasyMock.replay(portalRequestUtils);
       
        parameterManager.setPortalRequestUtils(portalRequestUtils);
        parameterManager.setTargetedPortletUrl(request, null);
       
        final IPortletWindowId targetedPortletWindowId = parameterManager.getTargetedPortletWindowId(request);
        assertNull(targetedPortletWindowId);
       
        final PortletUrl portletUrl = parameterManager.getPortletRequestInfo(request, new MockPortletWindowId("test"));
        assertNull("portletRequestType should be null", portletUrl);
       
View Full Code Here

        final MockPortletWindowId portletWindowId = new MockPortletWindowId("id");
        final PortletUrl portletUrl = new PortletUrl(portletWindowId);
        portletUrl.setRequestType(RequestType.RENDER);
        parameterManager.setTargetedPortletUrl(request, portletUrl);
       
        final IPortletWindowId targetedPortletWindowId = parameterManager.getTargetedPortletWindowId(request);
        assertEquals(portletWindowId, targetedPortletWindowId);
       
        final PortletUrl portletUrl2 = parameterManager.getPortletRequestInfo(request, targetedPortletWindowId);
        assertEquals(portletUrl, portletUrl2);
       
View Full Code Here

TOP

Related Classes of org.jasig.portal.portlet.om.IPortletWindowId

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.