Package org.apache.tapestry.internal.structure

Examples of org.apache.tapestry.internal.structure.Page


    {
        Request request = newRequest();
        Response response = newResponse();
        ComponentClassResolver resolver = newComponentClassResolver();
        ComponentPageElement element = newComponentPageElement();
        Page page = newPage();
        ComponentPageElement rootElement = newComponentPageElement();
        LinkFactoryListener listener = newLinkFactoryListener();
        ComponentInvocationMap map = newComponentInvocationMap();
        RequestPageCache cache = newRequestPageCache();
View Full Code Here


        _response = response;
    }

    public void handleRequestException(Throwable exception) throws IOException
    {
        Page page = _pageCache.get("ExceptionReport");

        ExceptionReporter rootComponent = (ExceptionReporter) page.getRootComponent();

        // Let the page set up for the new exception.

        rootComponent.reportException(exception);
View Full Code Here

    {
        int colonx = componentId.indexOf(':');

        if (colonx < 0)
        {
            Page page = _pageCache.getByClassName(componentId);

            return page.getRootComponent();
        }

        String pageName = componentId.substring(0, colonx);

        Page page = _pageCache.getByClassName(pageName);
        String nestedId = componentId.substring(colonx + 1);

        return page.getComponentElementByNestedId(nestedId).getComponent();
    }
View Full Code Here

    public <T> T getPage(Class<T> pageClass)
    {
        notNull(pageClass, "pageClass");

        Page page = _pageCache.getByClassName(pageClass.getName());

        Component root = page.getRootComponent();

        return pageClass.cast(root);
    }
View Full Code Here

        return pageClass.cast(root);
    }

    public Component getPage(String pageName)
    {
        Page page = _pageCache.get(pageName);

        return page.getRootComponent();
    }
View Full Code Here

    public void handleRequestException(Throwable exception) throws IOException
    {
        _log.error(ServicesMessages.requestException(exception), exception);

        Page page = _pageCache.get("ExceptionReport");

        ExceptionReporter rootComponent = (ExceptionReporter) page.getRootComponent();

        // Let the page set up for the new exception.

        rootComponent.reportException(exception);
View Full Code Here

    public ActionResponseGenerator handle(ComponentInvocation invocation, PageRenderer renderer)
    {
        InvocationTarget target = invocation.getTarget();
        // I really don't like this cast; there must be a way to get rid of it?
        PageLinkTarget pageLinkTarget = cast(target, PageLinkTarget.class, "target");
        Page page = _cache.get(pageLinkTarget.getPageName());

        // Fire a notification so that the page can set itself up for the given context.

        // This duplicates some code from ActionLinkHandlerImpl.

        final Holder<ActionResponseGenerator> holder = new Holder<ActionResponseGenerator>();

        ComponentEventHandler handler = new ComponentEventHandler()
        {
            @SuppressWarnings("unchecked")
            public boolean handleResult(Object result, Component component, String methodDescription)
            {
                ActionResponseGenerator generator = _resultProcessor.processComponentEvent(
                        result,
                        component,
                        methodDescription);

                holder.put(generator);

                return true; // abort the event
            }
        };

        page.getRootElement().triggerEvent(
                TapestryConstants.ACTIVATE_EVENT,
                invocation.getContext(),
                handler);

        if (holder.hasValue())
View Full Code Here

        return getByClassName(className);
    }

    public Page getByClassName(String className)
    {
        Page page = _cache.get(className);

        if (page == null)
        {
            page = _pagePool.checkout(className);

            page.attached();

            _cache.put(className, page);
        }

        return page;
View Full Code Here

        InvocationTarget target = invocation.getTarget();
        // TODO: Not too happy about needing this cast; can the method be moved up to
        // InvocationTarget or ComponentInvocation?
        ActionLinkTarget actionLinkTarget = Defense.cast(target, ActionLinkTarget.class, "target");

        Page page = _cache.get(actionLinkTarget.getPageName());

        // This is the active page, until we know better.

        String nestedId = actionLinkTarget.getComponentNestedId();

        ComponentPageElement element = page.getComponentElementByNestedId(nestedId);

        final Holder<ActionResponseGenerator> holder = new Holder<ActionResponseGenerator>();

        ComponentEventHandler handler = new ComponentEventHandler()
        {
            @SuppressWarnings("unchecked")
            public boolean handleResult(Object result, Component component, String methodDescription)
            {
                ActionResponseGenerator generator = _resultProcessor.processComponentEvent(
                        result,
                        component,
                        methodDescription);

                holder.put(generator);

                return true;
            }
        };

        // If activating the page returns a "navigational result", then don't trigger the action
        // on the component.

        page.getRootElement().triggerEvent(
                TapestryConstants.ACTIVATE_EVENT,
                invocation.getActivationContext(),
                handler);

        if (holder.hasValue())
View Full Code Here

        _generator = generator;
    }

    public void handle(ComponentEventRequestParameters parameters) throws IOException
    {
        Page activePage = _cache.get(parameters.getActivePageName());

        ComponentResultProcessorWrapper callback = new ComponentResultProcessorWrapper(_resultProcessor);

        // If activating the page returns a "navigational result", then don't trigger the action
        // on the component.

        activePage.getRootElement().triggerContextEvent(TapestryConstants.ACTIVATE_EVENT,
                                                        parameters.getPageActivationContext(), callback);

        if (callback.isAborted()) return;

        Page containerPage = _cache.get(parameters.getContainingPageName());

        ComponentPageElement element = containerPage.getComponentElementByNestedId(parameters.getNestedComponentId());

        element.triggerContextEvent(parameters.getEventType(), parameters.getEventContext(), callback);

        if (callback.isAborted()) return;
View Full Code Here

TOP

Related Classes of org.apache.tapestry.internal.structure.Page

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.