package org.genedb.jogra.drawing; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import org.genedb.jogra.controller.ImageUtils; import org.springframework.beans.factory.InitializingBean; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.layout.FormLayout; public class JograLogin extends BaseForm implements InitializingBean { public JograLogin() throws Exception { super(); setResizable(false); setModal(true); setTitle("Jogra Login"); addWindowListener(new WindowAdapter() { @Override public void windowClosing(final WindowEvent arg0) { System.exit(0); } }); setLayout(new BorderLayout()); afterPropertiesSet(); } public void afterPropertiesSet() throws Exception { final JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); final BufferedImage bi = ImageUtils .makeBackgroundFromClasspath("jogra.jpg"); final ImagePanel imagePanel = new ImagePanel(bi); panel.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 20, getBackground())); add("North", imagePanel); FormLayout layout = new FormLayout( "pref, 3dlu, pref", // 1st major column ""); // add rows dynamically JPanel loginDetails = new JPanel(layout); loginDetails.setBackground(Color.GREEN); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); final JTextField instance = new JTextField("build2"); builder.append("GeneDB Instance", instance); builder.nextLine(); final JTextField username = new JTextField(System .getProperty("user.name")); builder.append("Username", username); builder.nextLine(); final JPasswordField password = new JPasswordField(12); builder.append("Password", password); // builder.nextLine(); final JButton login = new JButton("Login"); login.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { processLogin(); setVisible(false); } }); final JButton cancel = new JButton("Cancel"); cancel.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { System.exit(0); } }); Box form = Box.createVerticalBox(); form.add(new JLabel("before")); form.add(loginDetails); form.add(new JLabel("after")); Box buttons = Box.createHorizontalBox(); buttons.add(Box.createHorizontalGlue()); buttons.add(login); buttons.add(Box.createHorizontalStrut(40)); buttons.add(cancel); buttons.add(Box.createHorizontalGlue()); form.add(buttons); add("South", form); pack(); Dimension screen = getToolkit().getScreenSize(); setLocation((screen.width-getWidth())/2, (screen.height-getHeight())/2); } protected void processLogin() { // TODO Auto-generated method stub } }