Package org.apache.tapestry5.internal.structure

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


    public Page get(String pageName)
    {
        String canonical = resolver.canonicalizePageName(pageName);

        Page page = cache.get(canonical);

        if (page == null)
        {
            Locale locale = threadLocale.getLocale();

            page = pageSource.getPage(canonical, locale);

            try
            {
                page.attached();
            }
            catch (Throwable t)
            {
                throw new RuntimeException(String.format("Unable to attach page %s (%s): %s", canonical, locale,
                        InternalUtils.toMessage(t)), t);
View Full Code Here


        {
            // In rare race conditions, we may see the same page loaded multiple times across
            // different threads. The last built one will "evict" the others from the page cache,
            // and the earlier ones will be GCed.

            Page page = pageLoader.loadPage(canonicalPageName, locale);

            pageCache.put(key, page);
        }

        // From good authority (Brian Goetz), this is the best way to ensure that the
View Full Code Here

        this.pageActivator = pageActivator;
    }

    public void handle(PageRenderRequestParameters parameters) throws IOException
    {
        Page page = cache.get(parameters.getLogicalPageName());

        if (pageActivator.activatePage(page.getRootElement().getComponentResources(),
                parameters.getActivationContext(), resultProcessor))
            return;

        if (!parameters.isLoopback())
            page.pageReset();

        pageResponseRenderer.renderPageResponse(page);
    }
View Full Code Here

            Object... eventContext)
    {
        assert page != null;
        assert InternalUtils.isNonBlank(eventType);

        Page activePage = pageRenderQueue.getRenderingPage();

        // See TAPESTRY-2184
        if (activePage == null)
            activePage = page;

        String activePageName = activePage.getName();

        Object[] pageActivationContext = contextCollector.collectPageActivationContext(activePageName);

        ComponentEventRequestParameters parameters = new ComponentEventRequestParameters(activePageName,
                page.getName(), toBlank(nestedId), eventType,
View Full Code Here

        this.partialRenderer = partialRenderer;
    }

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

        final Holder<Boolean> resultProcessorInvoked = Holder.create();
        resultProcessorInvoked.put(false);

        ComponentEventResultProcessor interceptor = new ComponentEventResultProcessor()
        {
            public void processResultValue(Object value) throws IOException
            {
                resultProcessorInvoked.put(true);

                resultProcessor.processResultValue(value);
            }
        };

        if (pageActivator.activatePage(activePage.getRootElement().getComponentResources(), parameters
                .getPageActivationContext(), interceptor))
            return;

        // If we end up doing a partial render, the page render queue service needs to know the
        // page that will be rendered (for logging purposes, if nothing else).

        queue.setRenderingPage(activePage);

        ContentType contentType = pageContentTypeAnalyzer.findContentType(activePage);

        request.setAttribute(InternalConstants.CONTENT_TYPE_ATTRIBUTE_NAME, contentType);

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

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

        // In many cases, the triggered element is a Form that needs to be able to
        // pass its event handler return values to the correct result processor.
        // This is certainly the case for forms.
View Full Code Here

        int colonx = completeId.indexOf(':');

        if (colonx < 0)
        {
            Page page = pageCache.get(completeId);

            return page.getRootComponent();
        }

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

        Page page = pageCache.get(pageName);
        String nestedId = completeId.substring(colonx + 1);
        String mixinId = null;

        int dollarx = nestedId.indexOf("$");

        if (dollarx > 0)
        {
            mixinId = nestedId.substring(dollarx + 1);
            nestedId = nestedId.substring(0, dollarx);
        }

        ComponentPageElement element = page.getComponentElementByNestedId(nestedId);

        if (mixinId == null)
            return element.getComponent();

        ComponentResources resources = element.getMixinResources(mixinId);
View Full Code Here

    public Component getPage(String pageName)
    {
        assert pageName != null;

        Page page = pageCache.get(pageName);

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

        this.environment = environment;
    }

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

        if (pageActivator.activatePage(activePage.getRootElement().getComponentResources(), parameters
                .getPageActivationContext(), resultProcessor))
            return;

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

        TrackableComponentEventCallback callback = new ComponentResultProcessorWrapper(resultProcessor);

        environment.push(ComponentEventResultProcessor.class, resultProcessor);
        environment.push(TrackableComponentEventCallback.class, callback);

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

        boolean handled = element
                .triggerContextEvent(parameters.getEventType(), parameters.getEventContext(), callback);

        if (!handled)
View Full Code Here

        String encoded = URLEncoder.encode(rawMessage, "UTF-8").replace("+", "%20");

        response.setHeader("X-Tapestry-ErrorMessage", encoded);

        Page page = pageCache.get(pageName);

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

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

        rootComponent.reportException(exception);
View Full Code Here

    {
        assert pageName != null;

        String canonicalName = resolver.canonicalizePageName(pageName);

        Page page = cache.get(canonicalName);

        if (page == null)
        {
            page = pagePool.checkout(canonicalName);

            try
            {
                page.attached();
            }
            catch (RuntimeException ex)
            {
                pagePool.discard(page);
View Full Code Here

TOP

Related Classes of org.apache.tapestry5.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.