package jrummikub.view.impl; import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; import jrummikub.util.Event; import jrummikub.util.Event3; import jrummikub.util.IEvent; import jrummikub.util.IEvent3; import jrummikub.view.ILoginPanel; @SuppressWarnings("serial") class LoginPanel extends JPanel implements ILoginPanel { private Event3 loginEvent = new Event3(); private Event cancelEvent = new Event(); private JTextField userNameField; private JTextField passwordField; private JTextField channelNameField; LoginPanel() { setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.gridwidth = GridBagConstraints.REMAINDER; c.weightx = 1; c.weighty = 1; userNameField = addInputRow("Benutzername:"); passwordField = addInputRow("Passwort:"); channelNameField = addInputRow("Channel:"); add(Box.createVerticalGlue(), c); c.gridwidth = 1; c.weighty = 0; JButton loginButton = new JButton("Login"); loginButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { loginEvent.emit(userNameField.getText(), passwordField.getText(), channelNameField.getText()); } }); add(loginButton, c); c.gridwidth = GridBagConstraints.REMAINDER; JButton cancelButton = new JButton("Abbrechen"); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { cancelEvent.emit(); } }); add(cancelButton, c); setBorder(new CompoundBorder(new LineBorder(Color.BLACK), new EmptyBorder(10, 10, 10, 10))); } @Override public IEvent3 getLoginEvent() { return loginEvent; } @Override public IEvent getCancelEvent() { return cancelEvent; } private JTextField addInputRow(String label) { GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.gridwidth = 1; c.weightx = 1; c.weighty = 0; add(new JLabel(label), c); JTextField textField = new JTextField(); c.gridwidth = GridBagConstraints.REMAINDER; add(textField, c); return textField; } }