Scout Eclipse TablePage模板

时间:2015-02-26 11:43:13

标签: java abstract-class extension-methods eclipse-scout

我想创建AbstractTemplatePageWithTable作为模板。

我的问题是,当你创建模板时:

 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 {


  }
}

但是当我从这个模板创建Page时,它只会创建&#34;&#34;页。

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


    }
  }

因为在创建模板时,它应该是用户友好的并提供表格。是否有一些注释或某些东西来说服类的scout-eclipse创建者创建这个表。

1 个答案:

答案 0 :(得分:0)

很难在Scout SDK中安装满足所有需求的向导。由于Scout是纯Java,您可以根据需要组织代码。有两个类:TableTablePage Table作为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 {

  }
}