Added blocking functionality to send event to controller if connect button was pressed.
This commit is contained in:
@@ -5,13 +5,17 @@
|
||||
package controller.src;
|
||||
|
||||
import connect.src.ClientThread;
|
||||
import data.src.ViewToControllerData;
|
||||
import data.src.ViewToControllerData.ViewEvent;
|
||||
import controller.src.Validate.Validate;
|
||||
import data.src.ViewToController.ConnectToServerData;
|
||||
import data.src.ViewToController.EmptyViewToControllerData;
|
||||
import data.src.ViewToController.ViewToControllerData;
|
||||
import data.src.ViewToController.ViewToControllerData.ViewEvent;
|
||||
import gui.src.View;
|
||||
|
||||
import logger.src.MessageLogger;
|
||||
|
||||
import model.src.ModelRepresentation;
|
||||
import queues.src.ControllerToViewQueue;
|
||||
import queues.src.ViewToControllerQueue;
|
||||
|
||||
public class ControllerThread extends Thread implements Controller {
|
||||
@@ -26,7 +30,7 @@ public class ControllerThread extends Thread implements Controller {
|
||||
}
|
||||
|
||||
public void run() {
|
||||
ViewToControllerData viewToControllerData = new ViewToControllerData();
|
||||
ViewToControllerData viewToControllerData = new EmptyViewToControllerData();
|
||||
// Run until view sends event quit application
|
||||
while (viewToControllerData.getViewEvent() != ViewEvent.QuitApplication) {
|
||||
// Wait for a message from view.
|
||||
@@ -34,9 +38,15 @@ public class ControllerThread extends Thread implements Controller {
|
||||
|
||||
switch (viewToControllerData.getViewEvent()) {
|
||||
case ViewEvent.ConnectToServerButtonWasPressed: {
|
||||
ClientThread clientThread = new ClientThread();
|
||||
MessageLogger.printMessage(className, "Client thread was started.");
|
||||
clientThread.start();
|
||||
String ipAddress = ((ConnectToServerData)viewToControllerData).getIPAddress();
|
||||
String port = ((ConnectToServerData)viewToControllerData).getPort();
|
||||
System.out.println(ipAddress);
|
||||
System.out.println(port);
|
||||
//ControllerToViewQueue.getInstance().add(new );
|
||||
//if (Validate.)
|
||||
//ClientThread clientThread = new ClientThread();
|
||||
//MessageLogger.printMessage(className, "Client thread was started.");
|
||||
//clientThread.start();
|
||||
}break;
|
||||
default: {
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* @author Aaron Moser
|
||||
* @date 05.12.2023
|
||||
*/
|
||||
package data.src.ViewToController;
|
||||
|
||||
public class ConnectToServerData implements ViewToControllerData {
|
||||
|
||||
private String ipAddress;
|
||||
private String port;
|
||||
|
||||
public ConnectToServerData(String ipAddress, String port) {
|
||||
this.ipAddress = ipAddress;
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setViewEvent(ViewEvent viewEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ViewEvent getViewEvent() {
|
||||
return ViewEvent.ConnectToServerButtonWasPressed;
|
||||
}
|
||||
|
||||
public String getIPAddress() {
|
||||
return this.ipAddress;
|
||||
}
|
||||
|
||||
public String getPort() {
|
||||
return this.port;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @author Aaron Moser
|
||||
* @date 05.12.2023
|
||||
*/
|
||||
package data.src.ViewToController;
|
||||
|
||||
public class EmptyViewToControllerData implements ViewToControllerData {
|
||||
|
||||
@Override
|
||||
public void setViewEvent(ViewEvent viewEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ViewEvent getViewEvent() {
|
||||
return ViewEvent.EmptyEvent;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,17 +7,54 @@ package gui.src.panels.ConnectToServerPanel;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import data.src.ViewToControllerData;
|
||||
import data.src.ViewToControllerData.ViewEvent;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
import data.src.ControllerToView.ControllerToViewData;
|
||||
import data.src.ControllerToView.ControllerToViewData.ControllerEvent;
|
||||
import data.src.ViewToController.ConnectToServerData;
|
||||
import data.src.ViewToController.ViewToControllerData;
|
||||
import data.src.ViewToController.ViewToControllerData.ViewEvent;
|
||||
import gui.src.constants.GUIConstants.Panel;
|
||||
import gui.src.frames.MainFrame;
|
||||
import queues.src.ControllerToViewQueue;
|
||||
import queues.src.ViewToControllerQueue;
|
||||
|
||||
public class ConnectToServerButtonListener implements ActionListener {
|
||||
|
||||
private JTextField ipAddressTextField;
|
||||
private JTextField portTextField;
|
||||
|
||||
public ConnectToServerButtonListener(JTextField ipAddressTextField, JTextField portTextField) {
|
||||
this.ipAddressTextField = ipAddressTextField;
|
||||
this.portTextField = portTextField;
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.out.println("Connect to server button was pressed.");
|
||||
ViewToControllerData viewToControllerData = new ViewToControllerData();
|
||||
viewToControllerData.setViewEvent(ViewEvent.ConnectToServerButtonWasPressed);
|
||||
ViewToControllerQueue.getInstance().add(viewToControllerData);
|
||||
|
||||
// Denies user to change fields while reading
|
||||
this.ipAddressTextField.setEditable(false);
|
||||
this.portTextField.setEditable(false);
|
||||
|
||||
// Reads in fields text
|
||||
String ipAddress = this.ipAddressTextField.getText();
|
||||
String port = this.portTextField.getText();
|
||||
|
||||
|
||||
|
||||
// Sends data to queue
|
||||
ViewToControllerQueue.getInstance().add(new ConnectToServerData(ipAddress, port));
|
||||
|
||||
System.out.println("Waiting for controller to respond.");
|
||||
ControllerToViewData controllerToViewData;
|
||||
//while ((controllerToViewData = ControllerToViewQueue.getInstance().peek()) == null) {}
|
||||
//if (controllerToViewData.getControllerEvent() == ControllerEvent.ConnectToServerWasSuccessful) {
|
||||
// ControllerToViewQueue.getInstance().poll();
|
||||
// MainFrame.getInstance().setPanel(Panel.MonitoringPanel);
|
||||
//} else {
|
||||
// Allows user to change fields if connection
|
||||
// this.ipAddressTextField.setEditable(true);
|
||||
// this.portTextField.setEditable(true);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ import javax.swing.JPanel;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
import data.src.ControllerToViewData;
|
||||
import data.src.ViewToControllerData;
|
||||
import data.src.ControllerToView.ControllerToViewData;
|
||||
import data.src.ViewToController.ViewToControllerData;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
|
||||
@@ -202,7 +202,7 @@ public final class ConnectToServerPanel extends JPanel implements Themeable, Tra
|
||||
|
||||
private void createConnectButton() {
|
||||
this.connectButton = new JButton();
|
||||
this.connectButton.addActionListener(new ConnectToServerButtonListener());
|
||||
this.connectButton.addActionListener(new ConnectToServerButtonListener(this.ipAddressTextField, this.portTextField));
|
||||
}
|
||||
|
||||
private void addConnectButton() {
|
||||
|
||||
@@ -6,7 +6,7 @@ package queues.src;
|
||||
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
|
||||
import data.src.ViewToControllerData;
|
||||
import data.src.ViewToController.ViewToControllerData;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user