Scout从数据库表中创建表页面

时间:2014-09-11 07:58:47

标签: database automation eclipse-scout

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

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

1 个答案:

答案 0 :(得分:1)

动态UI组件:

我不确定我是否理解你的问题。我可以这样改写:

  

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

这里有关于童军论坛的一些指示:

我个人认为,侦察理念是使用内部类定义声明性UI。我不确定我会建议有人使用这种动态方法......


Eclipse Scout的脚手架:

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

  

鉴于现有数据库,是否可以生成应用程序的某些元素,如TablePages?

恐怕目前还没有开源工具这样做。在我们公司,我们有一些开发人员,有一系列脚本来做你所描述的事情。

有一个名为SAML(Scout应用程序建模语言)的项目,其中用DSL描述用户界面并生成Scout实体。这更像是为Kepler版本的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的scaffolding会很棒。我已经发布了硕士论文提案,与学生一起讨论这个主题。我希望我们能够继续前进。

这里有Eclipse Scout论坛中的一些指示:

如果您对这些主题感兴趣,请与我们联系。