0

我听说 scout eclipse 可以AbstractPageWithTable从数据库表属性中创建表页面,而无需手动为其添加列。

这是真的吗,如果是的话,有人知道该怎么做吗?

4

1 回答 1

1

动态 UI 组件:

我不确定我是否正确理解了您的问题。我可以这样改写吗:

如何动态添加列(无需将它们定义为内部类)?

这里有一些关于童子军论坛的建议:

我个人的看法是,scout 的理念是使用内部类定义声明性 UI。我不确定我会推荐某人使用这种动态方法......


Eclipse Scout 的脚手架:

从您的评论中,我现在理解您的问题是这样的:

给定一个现有的数据库,是否可以生成应用程序的某些元素,例如 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 论坛中的一些提示:

如果您对这些主题感兴趣,请告诉我。

于 2014-09-11T10:00:35.713 回答