From 63013dc82cc8718e40e9557cfd83991e72d72dae Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Wed, 22 Jun 2011 01:08:54 +0200 Subject: Integrated dedicated server git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@563 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/view/impl/LoginPanel.java | 73 ++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 14 deletions(-) (limited to 'src/jrummikub/view/impl/LoginPanel.java') diff --git a/src/jrummikub/view/impl/LoginPanel.java b/src/jrummikub/view/impl/LoginPanel.java index 43c7550..1ea49da 100644 --- a/src/jrummikub/view/impl/LoginPanel.java +++ b/src/jrummikub/view/impl/LoginPanel.java @@ -1,6 +1,7 @@ package jrummikub.view.impl; import java.awt.Color; +import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; @@ -27,11 +28,13 @@ import jrummikub.view.ILoginPanel; class LoginPanel extends JPanel implements ILoginPanel { private Event1 loginEvent = new Event1(); private Event cancelEvent = new Event(); + private Event1 useDedicatedServer = new Event1(); private JTextField userNameField; private JTextField serverNameField; private JTextField passwordField; private JTextField channelNameField; - + private JButton startDedicatedServerButton; + LoginPanel() { setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); @@ -40,21 +43,18 @@ class LoginPanel extends JPanel implements ILoginPanel { c.weightx = 1; c.weighty = 1; - ActionListener loginAction = new ActionListener() { + ActionListener loginAction = createInputFields(); + + c.weighty = 0; + add(startDedicatedServerButton, c); + startDedicatedServerButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { - login(); + useDedicatedServer.emit(passwordField.getText()); } - }; - - userNameField = addInputRow("Benutzername:", new JTextField()); - userNameField.addActionListener(loginAction); - serverNameField = addInputRow("Server:", new JTextField()); - serverNameField.addActionListener(loginAction); - passwordField = addInputRow("Passwort:", new JPasswordField()); - passwordField.addActionListener(loginAction); - channelNameField = addInputRow("Channel:", new JTextField()); - channelNameField.addActionListener(loginAction); + }); + + c.weighty = 1; add(Box.createVerticalGlue(), c); c.gridwidth = 1; @@ -81,7 +81,30 @@ class LoginPanel extends JPanel implements ILoginPanel { 10, 10, 10, 10))); } + private ActionListener createInputFields() { + ActionListener loginAction = new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + login(); + } + }; + + userNameField = addInputRow("Benutzername:", new JTextField()); + userNameField.addActionListener(loginAction); + serverNameField = addInputRow("Server:", new JTextField()); + serverNameField.addActionListener(loginAction); + passwordField = addInputRow("Passwort:", new JPasswordField()); + passwordField.addActionListener(loginAction); + channelNameField = addInputRow("Channel:", new JTextField()); + channelNameField.addActionListener(loginAction); + startDedicatedServerButton = new JButton("Dedizierten Server starten"); + // this fixes some strange layouting bug + startDedicatedServerButton.setPreferredSize(new Dimension(500,10)); + return loginAction; + } + void resetLoginPanel() { + // TODO leer machen userNameField.setText("test1"); serverNameField.setText("universe-factory.net"); passwordField.setText(""); @@ -98,15 +121,22 @@ class LoginPanel extends JPanel implements ILoginPanel { return cancelEvent; } + @Override + public IEvent1 getUseDedicatedServerEvent() { + return useDedicatedServer; + } + private JTextField addInputRow(String label, JTextField textField) { GridBagConstraints c = new GridBagConstraints(); - c.fill = GridBagConstraints.BOTH; + c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = 1; c.weightx = 1; c.weighty = 0; add(new JLabel(label), c); + c.weightx = 1; + c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = GridBagConstraints.REMAINDER; add(textField, c); return textField; @@ -116,4 +146,19 @@ class LoginPanel extends JPanel implements ILoginPanel { loginEvent.emit(new LoginData(userNameField.getText(), serverNameField .getText(), passwordField.getText(), channelNameField.getText())); } + + @Override + public void setServer(String server) { + serverNameField.setText(server); + } + + @Override + public void setChannel(String channel) { + channelNameField.setText(channel); + } + + @Override + public void setDedicatedServerRunning(boolean running) { + startDedicatedServerButton.setText(running ? "Dedizierten Server nutzen" : "Dedizierten Server starten"); + } } -- cgit v1.2.3