[
https://issues.apache.org/jira/browse/TAP5-317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Howard M. Lewis Ship reassigned TAP5-317:
-----------------------------------------
Assignee: Howard M. Lewis Ship
> Tap5 should check abstract and parent classes before throwing "Embedded xxx
> component(s) are defined within component class xxx but are not present in
> the component template" Exception
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-317
> URL: https://issues.apache.org/jira/browse/TAP5-317
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.0.16
> Reporter: Buck O' Five
> Assignee: Howard M. Lewis Ship
>
> Currently I'm using a very generic CRUD system which uses an abstract page
> class to eliminate obvious redundancy. The abstract page class has a
> component instance and does not have an associated .tml file. The reference
> to the component is in the parent page classes .tml file (this allows for
> custom settings per entity). This used to work with just an error logged but
> with recent updates to Tap5-105 it now throws an error. I suspect the issue
> is because the component instance is in the abstract class but when all is
> said and done this should be valid. right?
> Here is a very very slimmed down example to reproduce:
> in base folder:
> public abstract class AbstractEntityList<T> {
> private T entity;
>
> @Component(parameters= {"source=dataSource","row=entity"})
> private EntityList<T> entityList;
>
> public abstract Object getDataSource();
>
> public T getEntity() {
> return entity;
> }
> public void setEntity(T entity) {
> this.entity = entity;
> }
> }
> in components folder:
> public class EntityList<T> {
> @Parameter @Property
> private GridDataSource source;
> @Parameter @Property
> private T row;
> // Grid properties
> @Component(parameters= {"source=inherit:source", "row=row"})
> private Grid grid;
> }
> EntityList.tml
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> <t:grid t:id="grid"></t:grid>
> </html>
> in entities folder:
> public class Merchant {
> private String name;
>
> public Merchant(){}
> public Merchant(String name){
> setName(name);
> }
>
> public String getName() {
> return name;
> }
> public void setName(String name) {
> this.name = name;
> }
>
> }
> in pages folder:
> public class Merchants extends AbstractEntityList<Merchant>{
>
> public Object getDataSource()
> {
> List<Merchant> list = new ArrayList<Merchant>();
> for(int i=0;i<5;i++)
> list.add(new Merchant("Test "+i));
>
> return list;
> }
> }
> Merchants.tml
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> <div t:type="EntityList"></div>
> </html>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]