Package com.tapestry5book.tlog.core.services.impl

Source Code of com.tapestry5book.tlog.core.services.impl.SidebarBlockSourceImpl

package com.tapestry5book.tlog.core.services.impl;

import com.tapestry5book.tlog.core.services.SidebarBlockSource;
import com.tapestry5book.tlog.core.services.SidebarBlockContribution;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.internal.services.RequestPageCache;
import org.apache.tapestry5.internal.structure.Page;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.annotations.InjectResource;
import org.apache.tapestry5.services.ComponentClassResolver;

import java.util.ArrayList;
import java.util.List;

public class SidebarBlockSourceImpl implements SidebarBlockSource {

    @Inject
    private RequestPageCache pageCache;

    @Inject
    private ComponentClassResolver componentClassResolver;

    @InjectResource
    private List<SidebarBlockContribution> configuration;

    public List<Block> getBlocks() {
        final List<Block> result = new ArrayList<Block>();

        for (final SidebarBlockContribution contribution : this.configuration) {
            String pageClass = contribution.getPage().getName();

            String pageName = componentClassResolver.resolvePageClassNameToPageName(pageClass);


            final Page page = this.pageCache.get(pageName);

            final Block block = page.getRootElement().getBlock(
                    contribution.getBlockId());

            result.add(block);
        }
        return result;
    }

}
TOP

Related Classes of com.tapestry5book.tlog.core.services.impl.SidebarBlockSourceImpl

TOP
Copyright © 2018 www.massapi.com. 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.