2015-02-26 2 views
1

Я хочу создать AbstractTemplatePageWithTable в качестве шаблона.Scout Eclipse TablePage Template

Моя проблема заключается в том, что при создании шаблона:

MyPageTemplateTablePage 
      | 
      ---> MyTable Extends AbstractTable 

или в коде

public abstract class MyPageTemplateTablePage extends AbstractExtensiblePageWithTable<MyTable> { 

    @Override 
    protected String getConfiguredTitle() { 

    return TEXTS.get("bla bla"); 
    } 


    public abstract class MyTable extends AbstractExtensibleTable { 


    } 
} 

Но когда я создаю страницу из этого шаблона он создать «только» страницу.

@PageData(MyPageTablePageData.class) 
public class MyPageTablePage extends MyPageTemplateTablePage { 

    @Override 
    protected String getConfiguredTitle() { 

    return TEXTS.get("MyPage"); 
    } 
    } 

То, что я хотел бы, что он будет создан:

@PageData(MyPageTablePageData.class) 
public class MyPageTablePage extends MyPageTemplateTablePage { 

    @Override 
    protected String getConfiguredTitle() { 

    return TEXTS.get("MyPage"); 
    } 

    @Order(10.0) 
    public class table extends MyPageTemplateTablePage.MyTable { 


    } 
    } 

Поскольку при создании шаблона, он должен быть удобным и предоставить таблицу. Есть ли какая-то аннотация или что-то, что бы убедить создателя скаута-затмения класса для создания этой таблицы.

ответ

0

Очень сложно иметь волшебников, которые удовлетворяют всем потребностям в SDK Scout. Поскольку Scout - простая Java, вы можете организовать код по своему усмотрению. Существует 2 класса: Table и TablePage, имеющие Table как внутренний класс TablePage, но удобны, но не обязательно, особенно если вы готовите шаблоны.

Если у вас есть логика на вашем столе (как обычные методы или внутренние классы для меню или столбцов), которые я рекомендую вам создать первый шаблон таблицы:

public abstract class AbstractMyTable extends AbstractTable { 
    //some custom logic. 
} 

Затем вы можете определить шаблон TablePage с помощью Generic. Вы даже можете ограничить таблицу быть от типа AbstractMyTable

public abstract class AbstractMyTablePage<T extends AbstractMyTable> extends AbstractPageWithTable<T> { 
    //some custom logic. 
} 

Вы можете потерять некоторые из поддержки SDK, используя этот шаблон, но при создании новой страницы таблицы можно изменить код, чтобы использовать шаблон таблицы и ваш шаблон таблицы страниц:

@PageData(XxxxTablePageData.class) 
public class XxxxTablePage extends AbstractMyTablePage<Table> { 

    @Order(1000.0) 
    public class Table extends AbstractMyTable { 

    } 
} 
Смежные вопросы