package net.wotonomy.test; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Insets; import java.util.Vector; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.text.JTextComponent; import net.wotonomy.ui.swing.components.BetterFlowLayout; import net.wotonomy.ui.swing.components.ButtonPanel; import net.wotonomy.ui.swing.components.InfoPanel; /** * A master-detail panel with a list, some * textfields and some buttons. */ public class TestPanel extends JPanel { // public JList list; public JTable table; public InfoPanel infoPanel; public ButtonPanel savePanel; public ButtonPanel buttonPanel; public JTextComponent firstNameField; public JTextComponent middleNameField, lastNameField; public JComboBox dateBox, monthBox, yearBox; public JSlider slider; public JCheckBox checkbox; public TestPanel() { this.setLayout( new BorderLayout( 10, 10 ) ); this.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); JPanel overviewPanel = new JPanel(); overviewPanel.setLayout( new BorderLayout() ); //list = new JList(); //JScrollPane scrollPane = new JScrollPane( list ); table = new JTable(); JScrollPane scrollPane = new JScrollPane( table ); overviewPanel.add( scrollPane, BorderLayout.CENTER ); this.add( overviewPanel, BorderLayout.CENTER ); infoPanel = new InfoPanel(); infoPanel.setColumns( 1 ); // name fields firstNameField = new JTextField(); // infoPanel.addPair( "First Name", firstNameField ); middleNameField = new JTextField(); // infoPanel.addPair( "Middle Name", middleNameField ); lastNameField = new JTextField(); // infoPanel.addPair( "Last Name", lastNameField ); checkbox = new JCheckBox(); infoPanel.addRow( "Name", new Component[] { firstNameField, middleNameField, lastNameField, checkbox } ); // date comboboxen Vector datesList = new Vector(); for ( int i = 1; i < 32; i++ ) datesList.add( new Integer( i ) ); dateBox = new JComboBox( datesList ); dateBox.setEditable( true ); monthBox = new JComboBox(); yearBox = new JComboBox(); infoPanel.addRow( "Create Date", dateBox, monthBox, yearBox ); // year slider infoPanel.addRow( "Day of Month", slider = new JSlider( JSlider.HORIZONTAL, 1, 31, 1 ) ); // navigation buttons JPanel navigationPanel = new JPanel(); navigationPanel.setLayout( new BorderLayout() ); buttonPanel = new ButtonPanel( new String[] { "Tree View", "Add", "Remove" } ); buttonPanel.setAlignment( BetterFlowLayout.LEFT ); buttonPanel.setInsets( new Insets( 0, 0, 0, 0 ) ); navigationPanel.add( buttonPanel, BorderLayout.WEST ); savePanel = new ButtonPanel( new String[] { "Refresh All", "Commit" } ); savePanel.setAlignment( BetterFlowLayout.RIGHT ); navigationPanel.add( savePanel, BorderLayout.EAST ); // bottom panel layout JPanel bottomPanel = new JPanel(); bottomPanel.setLayout( new BorderLayout() ); bottomPanel.add( infoPanel, BorderLayout.NORTH ); bottomPanel.add( navigationPanel, BorderLayout.SOUTH ); this.add( bottomPanel, BorderLayout.SOUTH ); } }