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 }