I heard that scout eclipse can create table page - AbstractPageWithTable
out of database table properties, without manually adding columns for it.
Is this true, and if it is is somebody knows how to do it?
I am not sure I understand your question correctly. Can I rephrase it like this:
How can I add a column dynamically (without having to define them as inner class)?
Here some pointers on the Scout Forum:
My personal opinion is that the scout philosophy is to have a declarative UI defined with inner classes. I am not sure I would recommend someone to use this dynamic approach...
From your comment, I now understand your question like this:
Given an existing database, is it possible to generate some elements of the application like TablePages?
I am afraid there is no open-source tool doing this for the moment. In our company, we have some developers, having a series of scripts to do something like what you are describing.
There is a project called SAML (Scout Application Modeling Language) where the user interface is described with a DSL and the Scout entities are generated. This is more a prototype that was built for the Kepler version of scout (3.9). For the moment there is no active development on it.
I have also started some builder where you do something like:
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);
The idea is to have a Java model of the application source code. It should allows to be able to do modifications or to add new entities and then to generate or modify the code. My tool is not open source for the moment (it is not finished yet and I do not have enough time to work on it).
I definitively think that scaffolding for Eclipse Scout would be great. I have published a master thesis proposal to work with a student on this topic. I hope we will be able to move forward.
Here some pointers in the Eclipse Scout forum:
Let me know if you are interested in those topics.