1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package chatprogramm.controller;
-
- import chatprogramm.model.Transmitter;
- import chatprogramm.logger.OhmLogger;
- import chatprogramm.view.ChatView;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.logging.Logger;
- import javax.swing.JOptionPane;
-
- /**
- *
- * @author Marian
- */
- public class ConnectController implements ActionListener
- {
- private Transmitter model;
- private ChatView view;
- private static Logger logger = OhmLogger.getLogger();
-
- public ConnectController(Transmitter m, ChatView v)
- {
- this.model = m;
- this.view = v;
- }
-
- public void registerEvents()
- {
- this.view.getBtConnect().addActionListener(this);
- this.view.getRbClient().addActionListener(this);
- this.view.getRbServer().addActionListener(this);
- }
-
- @Override
- public void actionPerformed(ActionEvent ae)
- {
- Object o = ae.getSource();
-
- if (o == view.getBtConnect()) {
- int port = -1;
-
- try {
- port = Integer.parseInt(view.getTfPort().getText());
- } catch (NumberFormatException e) {
- JOptionPane.showMessageDialog(view, "Port ungültig! Muss eine Zahl sein");
- logger.severe(e.toString());
- return;
- }
-
- if (view.getRbClient().isSelected() && (validIP(view.getTfIP().getText()) == false)) {
- JOptionPane.showMessageDialog(view, "Ungültige IP-Adresse!");
- logger.severe("IP-Adresse ungültig");
- return;
- }
-
- model.connectToPeer(view.getRbServer().isSelected(), view.getTfIP().getText(), port);
-
- view.getRbClient().setEnabled(false);
- view.getRbServer().setEnabled(false);
- view.getTfIP().setEnabled(false);
- view.getTfPort().setEnabled(false);
- } else {
- view.getTfIP().setEnabled(view.getRbClient().isSelected());
- }
- }
-
- private boolean validIP (String ip) {
- try {
- if ( ip == null || ip.isEmpty() ) {
- return false;
- }
-
- String[] parts = ip.split( "\\." );
- if ( parts.length != 4 ) {
- return false;
- }
-
- for ( String s : parts ) {
- int i = Integer.parseInt( s );
- if ( (i < 0) || (i > 255) ) {
- return false;
- }
- }
- if ( ip.endsWith(".") ) {
- return false;
- }
-
- return true;
- } catch (NumberFormatException e) {
- logger.severe(e.toString());
- return false;
- }
- }
-
- }
|