/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
package org.beanfabrics.swing.table;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.beanfabrics.ModelProvider;
import org.beanfabrics.model.AbstractPM;
import org.beanfabrics.model.ListPM;
import org.beanfabrics.model.PMManager;
import org.beanfabrics.model.TextPM;
import org.beanfabrics.support.Property;
public class TextPMsInATableTestGUI extends JFrame {
/**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
TextPMsInATableTestGUI frame = new TextPMsInATableTestGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public static class TableModel extends AbstractPM {
@Property
ListPM<TextPM> elements = new ListPM<TextPM>();
public TableModel() {
PMManager.setup(this);
populate();
}
public void populate() {
final int num = 10;
for (int i = 0; i < num; ++i) {
TextPM pM = new TextPM();
pM.setText("row " + i);
elements.add(pM);
}
}
}
private ModelProvider provider;
private BnTable bnTable;
private JScrollPane scrollPane;
private JPanel panel;
/**
* Create the frame
*/
public TextPMsInATableTestGUI() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(getPanel(), BorderLayout.CENTER);
//
}
/**
* @wbp.nonvisual location=28,415
* @return
*/
private ModelProvider getLocalProvider() {
if (provider == null) {
provider = new ModelProvider(); // @wb:location=28,415
provider.setPresentationModelType(TableModel.class);
provider.setPresentationModel(new TableModel());
}
return provider;
}
private JPanel getPanel() {
if (panel == null) {
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(getScrollPane(), BorderLayout.CENTER);
}
return panel;
}
private JScrollPane getScrollPane() {
if (scrollPane == null) {
scrollPane = new JScrollPane();
scrollPane.setViewportView(getBnTable());
}
return scrollPane;
}
private BnTable getBnTable() {
if (bnTable == null) {
bnTable = new BnTable();
bnTable.setColumns(new BnColumnBuilder().addColumn().withPath("this").withName("Text").build());
bnTable.setPath(new org.beanfabrics.Path("this.elements"));
bnTable.setModelProvider(getLocalProvider());
}
return bnTable;
}
}