001    package org.tynamo.pages;
002    
003    import org.apache.tapestry5.ComponentResources;
004    import org.apache.tapestry5.Link;
005    import org.apache.tapestry5.beaneditor.BeanModel;
006    import org.apache.tapestry5.annotations.Component;
007    import org.apache.tapestry5.corelib.components.PageLink;
008    import org.apache.tapestry5.ioc.Messages;
009    import org.apache.tapestry5.ioc.annotations.Inject;
010    import org.apache.tapestry5.services.BeanModelSource;
011    import org.apache.tapestry5.services.ContextValueEncoder;
012    import org.apache.tapestry5.services.PageRenderLinkSource;
013    import org.tynamo.descriptor.TynamoClassDescriptor;
014    import org.tynamo.services.DescriptorService;
015    import org.tynamo.services.PersistenceService;
016    import org.tynamo.util.DisplayNameUtils;
017    
018    
019    public abstract class ModelPage
020    {
021    
022            @Inject
023            private ContextValueEncoder contextValueEncoder;
024    
025            @Inject
026            private BeanModelSource beanModelSource;
027    
028            @Inject
029            private Messages messages;
030    
031            @Inject
032            private PersistenceService persitenceService;
033    
034            @Inject
035            private DescriptorService descriptorService;
036    
037            @Inject
038            private PageRenderLinkSource pageRenderLinkSource;
039    
040            @Component
041            private PageLink link;
042    
043            public Link onActionFromCancel()
044            {
045                    return back();
046            }
047    
048            public String getListAllLinkMessage()
049            {
050                    return messages.format("org.tynamo.component.listalllink", DisplayNameUtils.getPluralDisplayName(getClassDescriptor(), messages));
051            }
052    
053            public ContextValueEncoder getContextValueEncoder()
054            {
055                    return contextValueEncoder;
056            }
057    
058            public BeanModelSource getBeanModelSource()
059            {
060                    return beanModelSource;
061            }
062    
063            public Messages getMessages()
064            {
065                    return messages;
066            }
067    
068            public DescriptorService getDescriptorService()
069            {
070                    return descriptorService;
071            }
072    
073            public PersistenceService getPersitenceService()
074            {
075                    return persitenceService;
076            }
077    
078            public PageRenderLinkSource getPageRenderLinkSource()
079            {
080                    return pageRenderLinkSource;
081            }
082    
083            public abstract String getTitle();
084    
085            public abstract TynamoClassDescriptor getClassDescriptor();
086    
087            public abstract Object getBean();
088    
089            public abstract Link back();
090    
091            protected abstract BeanModel createBeanModel(Class clazz);
092    
093    }