001    /*
002     * Created on 20/12/2005 by Eduardo Piva <eduardo@gwe.com.br>
003     *
004     */
005    package org.trails.page;
006    
007    import org.apache.tapestry.annotations.InjectObject;
008    import org.apache.tapestry.event.PageBeginRenderListener;
009    import org.apache.tapestry.event.PageEvent;
010    import org.apache.tapestry.html.BasePage;
011    import org.trails.callback.CallbackStack;
012    import org.trails.descriptor.DescriptorService;
013    import org.trails.descriptor.IClassDescriptor;
014    
015    import java.util.ArrayList;
016    import java.util.List;
017    
018    public abstract class HomePage extends BasePage implements PageBeginRenderListener
019    {
020    
021            public abstract CallbackStack getCallbackStack();
022    
023            @InjectObject("service:trails.core.DescriptorService")
024            public abstract DescriptorService getDescriptorService();
025    
026            public void pageBeginRender(PageEvent event)
027            {
028                    if (getCallbackStack() != null)
029                    {
030                            getCallbackStack().clear();
031                    }
032            }
033    
034            public List<IClassDescriptor> getAllDescriptors()
035            {
036                    List<IClassDescriptor> descriptors = getDescriptorService().getAllDescriptors();
037                    List<IClassDescriptor> result = new ArrayList<IClassDescriptor>(descriptors.size());
038    
039                    for (IClassDescriptor descriptor : descriptors)
040                    {
041                            if (!descriptor.isHidden())
042                            {
043                                    result.add(descriptor);
044                            }
045                    }
046    
047                    return result;
048            }
049    
050    }