diff --git a/src/main/java/controller/src/ControllerThread.java b/src/main/java/controller/src/ControllerThread.java index 9c71bb6..b1750cc 100644 --- a/src/main/java/controller/src/ControllerThread.java +++ b/src/main/java/controller/src/ControllerThread.java @@ -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: { diff --git a/src/main/java/data/src/ViewToController/ConnectToServerData.java b/src/main/java/data/src/ViewToController/ConnectToServerData.java new file mode 100644 index 0000000..8f22370 --- /dev/null +++ b/src/main/java/data/src/ViewToController/ConnectToServerData.java @@ -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; + } +} diff --git a/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java b/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java new file mode 100644 index 0000000..0ad8004 --- /dev/null +++ b/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java @@ -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; + } + +} diff --git a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButtonListener.java b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButtonListener.java index 6303f22..db64975 100644 --- a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButtonListener.java +++ b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButtonListener.java @@ -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); + //} } } diff --git a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java index 94c2b8d..f605ce3 100644 --- a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java +++ b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java @@ -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() { diff --git a/src/main/java/queues/src/ViewToControllerQueue.java b/src/main/java/queues/src/ViewToControllerQueue.java index 2342d1b..cece276 100644 --- a/src/main/java/queues/src/ViewToControllerQueue.java +++ b/src/main/java/queues/src/ViewToControllerQueue.java @@ -6,7 +6,7 @@ package queues.src; import java.util.concurrent.ConcurrentLinkedQueue; -import data.src.ViewToControllerData; +import data.src.ViewToController.ViewToControllerData; /** *