This project allows user interfaces to be created from beans or graphs of beans. The user interface available has standard widgets which have few dependencies to reuse. For instance there are widgets for editing numbers with bounds validation, units and that allow expressions of other boxes. There are widgets for entering a range of values and expanding out bean graphs to complete Design of Experiments work.
The API will be simple to use, have great widgets for science and be fast for huge field lists. So even though it is a minnow in the world of models, data binding and UI generation, it has some strong points.
Screenshots from three of the examples:
UI
BEAN GRAPH
public class ExampleBean {
private List<ExampleItem> items;
//…
public class ExampleItem {
public enum ItemChoice {
XY, POLAR;
public static Map<String, ItemChoice> names() {
final Map<String,ItemChoice> ret = new HashMap<String,ItemChoice>(2);
ret.put("X-Y Graph", XY);
ret.put("Polar", POLAR);
return ret;
}
}
private String itemName;
private ItemChoice choice = ItemChoice.XY;
private Double x,y;
private double r,theta;
//…
public class ExampleBean {
private List<ExampleItem> items;
//…
public class ExampleItem {
private String itemName;
private ItemChoice choice = ItemChoice.XY;
private Double x,y;
private double r,theta;
private List<OptionItem> options;
//…
public class OptionItem {
private String optionName;
private boolean showAxes, showTitle, showLegend, showData;
private static int count = 0;
//…
So more than 200,000 fields are linked and editable in a speedy fashion!
public class ExampleBean {
private List<ExampleItem> items;
//… Example has 2000 items
public class ExampleItem {
private String itemName;
private ItemChoice choice = ItemChoice.XY;
private Double x,y;
private double r,theta;
private double d0, d1,d2,d3,d4,d5,d6,d7,d8, d9;
private double d10, d11,d12,d13,d14,d15,d16,d17,d18, d19;
private double d20, d21,d22,d23,d24,d25,d26,d27,d28, d29;
private double d30, d31,d32,d33,d34,d35,d36,d37,d38, d39;
private double d40, d41,d42,d43,d44,d45,d46,d47,d48, d49;
private double d50, d51,d52,d53,d54,d55,d56,d57,d58, d59;
private double d60, d61,d62,d63,d64,d65,d66,d67,d68, d69;
private double d70, d71,d72,d73,d74,d75,d76,d77,d78, d79;
private double d80, d81,d82,d83,d84,d85,d86,d87,d88, d89;
private double d90, d91,d92,d93,d94,d95,d96,d97,d98, d99;
//… Example has 100 fields
The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.
Member companies supporting this project over the last three months.