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 }