You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ConnectController.java 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package chatprogramm.controller;
  2. import chatprogramm.model.Transmitter;
  3. import chatprogramm.logger.OhmLogger;
  4. import chatprogramm.view.ChatView;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.util.logging.Logger;
  8. import javax.swing.JOptionPane;
  9. /**
  10. *
  11. * @author Marian
  12. */
  13. public class ConnectController implements ActionListener
  14. {
  15. private Transmitter model;
  16. private ChatView view;
  17. private static Logger logger = OhmLogger.getLogger();
  18. public ConnectController(Transmitter model, ChatView view)
  19. {
  20. this.model = model;
  21. this.view = view;
  22. }
  23. public void registerEvents()
  24. {
  25. this.view.getBtConnect().addActionListener(this);
  26. this.view.getRbClient().addActionListener(this);
  27. this.view.getRbServer().addActionListener(this);
  28. }
  29. @Override
  30. public void actionPerformed(ActionEvent ae)
  31. {
  32. Object object = ae.getSource();
  33. if (object == view.getBtConnect())
  34. {
  35. int port = -1;
  36. try {
  37. port = Integer.parseInt(view.getTfPort().getText());
  38. } catch (NumberFormatException e) {
  39. JOptionPane.showMessageDialog(view, "Port ungültig! Muss eine Zahl sein");
  40. logger.severe(e.toString());
  41. return;
  42. }
  43. if (view.getRbClient().isSelected() && (validIP(view.getTfIP().getText()) == false)) {
  44. JOptionPane.showMessageDialog(view, "Ungültige IP-Adresse!");
  45. logger.severe("IP-Adresse ungültig");
  46. return;
  47. }
  48. model.connectToPeer(view.getRbServer().isSelected(), view.getTfIP().getText(), port);
  49. view.getRbClient().setEnabled(false);
  50. view.getRbServer().setEnabled(false);
  51. view.getTfIP().setEnabled(false);
  52. view.getTfPort().setEnabled(false);
  53. }
  54. }
  55. private boolean validIP (String ip)
  56. {
  57. try
  58. {
  59. if (ip == null || ip.isEmpty())
  60. {
  61. return false;
  62. }
  63. String[] parts = ip.split("\\.");
  64. if ( parts.length != 4 )
  65. {
  66. return false;
  67. }
  68. for (String s : parts)
  69. {
  70. int i = Integer.parseInt(s);
  71. if ((i < 0) || (i > 255))
  72. {
  73. return false;
  74. }
  75. }
  76. if (ip.endsWith("."))
  77. {
  78. return false;
  79. }
  80. return true;
  81. }
  82. catch (NumberFormatException e)
  83. {
  84. logger.severe(e.toString());
  85. return false;
  86. }
  87. }
  88. }