1

I want to create AbstractTemplatePageWithTable as template.

My problem is that when you create template :

 MyPageTemplateTablePage
           |
           ---> MyTable Extends AbstractTable

or in code

public abstract class MyPageTemplateTablePage extends AbstractExtensiblePageWithTable<MyTable> {

  @Override
  protected String getConfiguredTitle() {

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


  public abstract class MyTable extends AbstractExtensibleTable {


  }
}

But When I create Page from this template it create "only" page.

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

   @Override
   protected String getConfiguredTitle() {

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

What I would want is that it is created :

@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 {


    }
  }

Because when you create template, it should be user-friendly and provide table. Is there some annotation or something to convince scout-eclipse creator of class to create this table to.

4

1 回答 1

0

在 Scout SDK 中很难有适合所有需求的向导。由于 Scout 是纯 Java,因此您可以随意组织代码。有 2 个类:Table拥有asTablePageTable内部类TablePage很方便,但不是强制性的,尤其是在准备模板时。

如果您的表格有逻辑(例如菜单或列的常用方法或内部类),我建议您创建第一个表格模板:

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

然后,您可以使用 Generic 定义 TablePage 模板。您甚至可以将表格限制为来自类型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 {

  }
}
于 2015-03-02T07:15:32.667 回答