【问题标题】:Scout Eclipse TablePage TemplateScout Eclipse 表格页面模板
【发布时间】:2015-04-28 18:39:09
【问题描述】:

我想创建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 {


  }
}

但是当我从这个模板创建页面时,它会创建“唯一”页面。

 @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 创建者创建这个表。

【问题讨论】:

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


    【解决方案1】:

    很难在 Scout SDK 中拥有满足所有需求的向导。由于 Scout 是纯 Java,因此您可以随意组织代码。有 2 个类:TableTablePageTable 作为 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 {
    
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 2016-09-16
      • 2016-07-24
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多