我听说 scout eclipse 可以AbstractPageWithTable
从数据库表属性中创建表页面,而无需手动为其添加列。
这是真的吗,如果是的话,有人知道该怎么做吗?
我听说 scout eclipse 可以AbstractPageWithTable
从数据库表属性中创建表页面,而无需手动为其添加列。
这是真的吗,如果是的话,有人知道该怎么做吗?
我不确定我是否正确理解了您的问题。我可以这样改写吗:
如何动态添加列(无需将它们定义为内部类)?
这里有一些关于童子军论坛的建议:
我个人的看法是,scout 的理念是使用内部类定义声明性 UI。我不确定我会推荐某人使用这种动态方法......
从您的评论中,我现在理解您的问题是这样的:
给定一个现有的数据库,是否可以生成应用程序的某些元素,例如 TablePages?
恐怕目前没有开源工具可以做到这一点。在我们公司,我们有一些开发人员,他们有一系列脚本来做你所描述的事情。
有一个名为 SAML(Scout 应用程序建模语言)的项目,其中用户界面使用 DSL 进行描述,并生成了 Scout 实体。这更像是为开普勒版本的 scout (3.9) 构建的原型。目前还没有积极的发展。
我还启动了一些构建器,您可以在其中执行以下操作:
SimpleApplicationBuilder app = SimpleApplicationBuilder.create("myapp", "simple.myapp", "");
IScoutFormBuilder formBuilder = ScoutBuilders.form("MyFirstForm", "simple.myapp.client.ui.forms", "simple.myapp.shared.services")
.propTitle(app.nlsKey("MyFormTitle"))
.propSubTitle(app.nlsKey("MyFormSubTitle"))
.propAskIfNeedSave(false)
.propDisplayHint(DisplayHint.DISPLAY_HINT_VIEW)
.addField(ScoutBuilders.groupBox("ContentGroupBox")
.propBorderVisible(false)
.addField(ScoutBuilders.stringField("MyStringField")
.propLabel(app.nlsKey("MyStringLabel"))
)
.addField(ScoutBuilders.tableField("MyTableField")
.propTableStatusVisible(true)
.addTable(ScoutBuilders.table("MyTable")
.propAutoResizeColumns(true)
.addColumn(ScoutBuilders.integerColumn("IdComlum")
.propDisplayable(false)
)
.addColumn(ScoutBuilders.stringColumn("NameComlum")
.propHeaderText(app.nlsKey("Name"))
)
.addColumn(ScoutBuilders.integerColumn("AgeComlum")
.propHeaderText(app.nlsKey("Age"))
)
)
)
);
app.addForm(formBuilder);
这个想法是拥有应用程序源代码的 Java 模型。它应该允许能够进行修改或添加新实体,然后生成或修改代码。我的工具目前不是开源的(它还没有完成,我没有足够的时间来研究它)。
我绝对认为Eclipse Scout 的脚手架会很棒。我已经发表了一篇硕士论文提案,与一名学生一起研究这个主题。我希望我们能够继续前进。
以下是 Eclipse Scout 论坛中的一些提示:
如果您对这些主题感兴趣,请告诉我。