代码之家  ›  专栏  ›  技术社区  ›  Marko Zadravec

从数据库表中查找创建表页面

  •  0
  • Marko Zadravec  · 技术社区  · 10 年前

    我听说scout eclipse可以创建表页- AbstractPageWithTable 超出数据库表财产,无需手动为其添加列。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jmini Peter Kriens    10 年前

    动态UI组件:

    我不确定我是否正确理解了你的问题。我可以这样表述吗

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

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

    我个人的观点是,侦察哲学是用内部类定义一个声明性UI。我不确定我是否会推荐某人使用这种动态方法。。。


    Eclipse Scout的脚手架:

    从你的评论中,我现在明白了你的问题:

    给定一个现有的数据库,是否可以生成应用程序的一些元素,如TablePages?

    恐怕目前还没有开源工具可以做到这一点。在我们公司,我们有一些开发人员,他们有一系列脚本来完成您所描述的事情。

    有一个名为SAML(Scout应用程序建模语言)的项目,其中使用DSL描述用户界面,并生成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模型。它应该允许进行修改或添加新实体,然后生成或修改代码。我的工具目前还没有开源(它还没有完成,我没有足够的时间来研究它)。

    我肯定认为 scaffolding 对于Eclipse Scout来说会很好。我已经发表了 硕士论文 与一名学生就这一主题合作的建议。我希望我们能够向前迈进。

    这里是Eclipse Scout论坛中的一些提示:

    如果你对这些话题感兴趣,请告诉我。