This looks interesting, but I'd rather have this as a library. One question: how does this approach work with language localization, given that "label" is a constant?
On Sun, Jan 22, 2023 at 1:08 AM Thiago Milczarek Sayão <thiago.sa...@gmail.com> wrote: > > Hi, > > TableView data usually comes from a database and is mapped to java objects (I > don't have actual statistics on this but it's probably a true assertion). > It Would be very useful if we could just copy database mapped objects to > javafx observables and say: Display it on a tableview. > Configuration of each column would be done as an annotation, like this: > > public class EmployeeObservable { > @Column(label = "Registration", style = "-fx-alignment: right") > private IntegerProperty registration = new SimpleIntegerProperty(); > > @Column(label = "Name") > private StringProperty name = new SimpleStringProperty(); > > @Column(label = "Salary", converter = BigDecimalCurrencyConverter.class) > private ObjectProperty<BigDecimal> salary = new SimpleObjectProperty<>(); > > //boilerplate here > } > > > Other annotation options: > > @Column(ignore = true) > > @Column(graphicsConverter = CheckBoxGraphicsConverter.class) > > And to apply it: > > TableViewBuilder<EmployeeObservable> builder = new > TableViewBuilder<>(tableView, EmployeeObservable.class); > builder.build(); > > > I actually have implemented this and it's very useful. I can't share it > because I've done it for a private company, but it's easy to re-do it. > > I'm not sure if it would go in a general purpose toolkit, but I thought it > would be nice to share (the idea). > > -- Thiago. >