diff --git a/diagrams/.$Architecture.drawio.bkp b/diagrams/.$Architecture.drawio.bkp
new file mode 100644
index 0000000..51e454e
--- /dev/null
+++ b/diagrams/.$Architecture.drawio.bkp
@@ -0,0 +1,427 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/diagrams/Architecture.drawio b/diagrams/Architecture.drawio
new file mode 100644
index 0000000..c380b37
--- /dev/null
+++ b/diagrams/Architecture.drawio
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/connect/src/Client.java b/src/main/java/connect/src/Client.java
index 0a4d701..edeeba5 100644
--- a/src/main/java/connect/src/Client.java
+++ b/src/main/java/connect/src/Client.java
@@ -3,10 +3,10 @@
*/
package connect.src;
-import data.src.ControllerToConnectionClient.ControllerToConnectionClientData;
+import data.src.Controller_To_ConnectionClient.Controller_To_Connection_ClientData;
public interface Client {
- public boolean createConnection(ControllerToConnectionClientData controllerToConnectionClientData);
+ public boolean createConnection(Controller_To_Connection_ClientData controllerToConnectionClientData);
public void startSender();
public void startReceiver();
public void closeConnection();
diff --git a/src/main/java/connect/src/TLSClient.java b/src/main/java/connect/src/TLSClient.java
index a5e4d6e..991a139 100644
--- a/src/main/java/connect/src/TLSClient.java
+++ b/src/main/java/connect/src/TLSClient.java
@@ -3,10 +3,8 @@
*/
package connect.src;
-import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
-import java.io.PrintWriter;
import java.net.UnknownHostException;
@@ -21,8 +19,8 @@ import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;
-import data.src.ControllerToConnectionClient.ConnectToServer;
-import data.src.ControllerToConnectionClient.ControllerToConnectionClientData;
+import data.src.Controller_To_ConnectionClient.ConnectToServer;
+import data.src.Controller_To_ConnectionClient.Controller_To_Connection_ClientData;
public final class TLSClient implements Client {
@@ -32,13 +30,13 @@ public final class TLSClient implements Client {
return sslSocket;
}
- public boolean createConnection(ControllerToConnectionClientData controllerToConnectionClientData) {
+ public boolean createConnection(Controller_To_Connection_ClientData controllerToConnectionClientData) {
try {
ConnectToServer connectToServer = ((ConnectToServer)controllerToConnectionClientData);
- String ipAddress = connectToServer.getIPAddress();
- int port = connectToServer.getPort();
- String trustStorePath = connectToServer.getTruststorePath();
- String trustStorePassword = connectToServer.getTruststorePassword();
+ String ipAddress = connectToServer.ipAddress();
+ int port = connectToServer.port();
+ String trustStorePath = connectToServer.trustStorePath();
+ String trustStorePassword = connectToServer.trustStorePassword();
KeyStore truststore = KeyStore.getInstance("JKS");
truststore.load(new FileInputStream(trustStorePath), trustStorePassword.toCharArray());
diff --git a/src/main/java/controller/src/ControllerThread.java b/src/main/java/controller/src/ControllerThread.java
index 5ccbc13..281644d 100644
--- a/src/main/java/controller/src/ControllerThread.java
+++ b/src/main/java/controller/src/ControllerThread.java
@@ -1,69 +1,75 @@
/**
* @author Aaron Moser
* @date 01.12.2023
+ * @lastChange 07.01.2024
*/
package controller.src;
-import javax.xml.crypto.Data;
-
import connect.src.Client;
import connect.src.TLSClient;
import controller.src.DataProcessing.DataProcessorThread;
import controller.src.Validate.Validate;
-
-import data.src.ControllerToConnectionClient.ConnectToServer;
-import data.src.ControllerToConnectionClient.ControllerToConnectionClientData;
-
-import data.src.ControllerToView.ConnectToServerSuccessful;
-import data.src.ControllerToView.ControllerToViewData;
-
-import data.src.ViewToController.ConnectToServerData;
-import data.src.ViewToController.EmptyViewToControllerData;
-import data.src.ViewToController.ViewToControllerData;
-import data.src.ViewToController.ViewToControllerData.ViewEvent;
-
+import controller.src.events.ConnectToServerSuccessful;
+import controller.src.interfaces.I_Controller;
+import data.src.Controller_To_ConnectionClient.ConnectToServer;
+import data.src.Controller_To_Presenter.Controller_To_Presenter_Data;
import logger.src.MessageLogger;
-import model.src.Model;
-import model.src.ModelRepresentation;
+import model.src.I_Model;
import model.src.ConnectionModel.ConnectionStatus;
-import queues.src.ControllerToViewQueue;
+import queues.src.Controller_To_Presenter_Queue;
+import queues.src.Presenter_To_Controller_Queue;
import queues.src.SendingQueue;
-import queues.src.ViewToControllerQueue;
+import queues.src.ViewEventManager_To_Controller_Queue;
+import viewEventManager.src.data.AA_ConnectToServerData.AA_ConnectToServerData;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+import viewEventManager.src.events.AA_ConnectToServerPanelEvents.AA_ConnectToServerButtonGotPressed;
+import viewEventManager.src.events.ZZ_General.ZZ_EmptyViewEvent;
-public class ControllerThread extends Thread implements Controller {
+public class ControllerThread extends Thread implements I_Controller {
private static final String className = "ControllerThread";
private final static boolean SUCCESSFUL = true;
- private Model model;
+ private I_Model model = null;
- private Client client;
+ private ViewEventManager_To_Controller_Queue viewEventManager_To_Controller_Queue = null;
+ private Controller_To_Presenter_Queue controller_To_Presenter_Queue = null;
+ private Presenter_To_Controller_Queue presenter_To_Controller_Queue = null;
- public ControllerThread(Model model) {
- this.model = model;
+ private Client client = null;
+
+ public ControllerThread(I_Model model, ViewEventManager_To_Controller_Queue viewEventManager_To_Controller_Queue, Controller_To_Presenter_Queue controller_To_Presenter_Queue, Presenter_To_Controller_Queue presenter_To_Controller_Queue) {
+ this.model = model;
+ this.viewEventManager_To_Controller_Queue = viewEventManager_To_Controller_Queue;
+ this.controller_To_Presenter_Queue = controller_To_Presenter_Queue;
+ this.presenter_To_Controller_Queue = presenter_To_Controller_Queue;
}
public void run() {
MessageLogger.printMessage(className, "Controller Thread was started.");
- ViewToControllerData viewToControllerData = new EmptyViewToControllerData();
-
+ I_ViewEvent event = new ZZ_EmptyViewEvent();
// Run until view sends event quit application
- while (viewToControllerData.getViewEvent() != ViewEvent.QuitApplication) {
+ while (event.getEventType() != E_ViewEvent.ZZ_ExitApplication) {
- // Wait for a message from view.
- while ((viewToControllerData = ViewToControllerQueue.getInstance().poll()) == null) {}
+ // If message from ViewEventManager received
+ if ((event = viewEventManager_To_Controller_Queue.poll()) != null) {
+ MessageLogger.printMessage(className, "Got new data from ViewEventManager.");
+ MessageLogger.printMessage(className, "Event is: " + event.getEventType());
- MessageLogger.printMessage(className, "Got new data from ViewToControllerQueue.");
- MessageLogger.printMessage(className, "Event is: " + viewToControllerData.getViewEvent());
+ switch (event.getEventType()) {
+ case AA_ConnectToServerButtonGotPressed: {
+ AA_ConnectToServerButtonGotPressed connectToServerEvent = (AA_ConnectToServerButtonGotPressed)event;
+ handleConnectToServerButtonWasPressed(new AA_ConnectToServerData(connectToServerEvent.connectToServerData().ipAddress(), connectToServerEvent.connectToServerData().port(), connectToServerEvent.connectToServerData().trustStoreFilePath(), connectToServerEvent.connectToServerData().trustStorePassword()));
+ }break;
+
+ default: {
- switch (viewToControllerData.getViewEvent()) {
- case ViewEvent.ConnectToServerButtonWasPressed: {
- handleConnectToServerButtonWasPressed(viewToControllerData);
- }break;
-
- default: {
-
- }break;
+ }break;
+ }
+ }
+ if (event == null) {
+ event = new ZZ_EmptyViewEvent();
}
}
MessageLogger.printMessage(className, "Exit controller thread.");
@@ -76,27 +82,29 @@ public class ControllerThread extends Thread implements Controller {
* necessary to establish a connection to a server.
* @param viewToControllerData
*/
- private void handleConnectToServerButtonWasPressed(ViewToControllerData data) {
+ private void handleConnectToServerButtonWasPressed(AA_ConnectToServerData data) {
this.model.getConnectionModel().setConnectionStatus(ConnectionStatus.Pending);
- ConnectToServerData connectToServerData = (ConnectToServerData)data;
- String ipAddress = connectToServerData.getIPAddress();
- int port = connectToServerData.getPort();
+ String ipAddress = data.ipAddress();
+ int port = data.port();
+ String trustStoreFilePath = data.trustStoreFilePath();
+ String trustStorePassword = data.trustStorePassword();
boolean validIP = Validate.isValidIPv4Address(ipAddress);
boolean validPort = Validate.isValidPort(port, 1, 60000);
MessageLogger.printMessage(className, "IP: " + validIP + ", Port: " + validPort);
+ ConnectToServer connectToServerData = new ConnectToServer(ipAddress, port, trustStoreFilePath, trustStorePassword);
+
if (validIP) {
if (validPort) {
this.client = new TLSClient();
- if (this.client.createConnection(viewToControllerToClientConnectData(connectToServerData)) == SUCCESSFUL) {
+ if (this.client.createConnection(connectToServerData) == SUCCESSFUL) {
startThreads();
this.model.getConnectionModel().setConnectionStatus(ConnectionStatus.Connected);
- ControllerToViewData controllerToViewData = new ConnectToServerSuccessful();
- ControllerToViewQueue.getInstance().add(controllerToViewData);
+ controller_To_Presenter_Queue.add(new ConnectToServerSuccessful());
//SendingQueue.getInstance().add("getSysInf");
//SendingQueue.getInstance().add("getCon");
@@ -109,15 +117,6 @@ public class ControllerThread extends Thread implements Controller {
//TODO send event to view that ip is not valid.
}
}
-
- private ConnectToServer viewToControllerToClientConnectData(ConnectToServerData connectToServerDataView) {
- ConnectToServer connectToServerData = new ConnectToServer();
- connectToServerData.setIPAddress(connectToServerDataView.getIPAddress());
- connectToServerData.setPort(connectToServerDataView.getPort());
- connectToServerData.setTruststorePath(connectToServerDataView.getTrustStorePath());
- connectToServerData.setTruststorePassword(connectToServerDataView.getTrustStorePassword());
- return connectToServerData;
- }
private void startThreads() {
DataProcessorThread.getInstance().start();
diff --git a/src/main/java/controller/src/DataProcessing/DataProcessorThread.java b/src/main/java/controller/src/DataProcessing/DataProcessorThread.java
index 6ff93b0..199a771 100644
--- a/src/main/java/controller/src/DataProcessing/DataProcessorThread.java
+++ b/src/main/java/controller/src/DataProcessing/DataProcessorThread.java
@@ -1,21 +1,20 @@
/**
* @author Aaron Moser
* @date 28.12.2023
+ * @lastChange 05.01.2024
*/
package controller.src.DataProcessing;
import controller.src.DataProcessing.ConnectionsProcessing.ConnectionInformation;
import controller.src.DataProcessing.ConnectionsProcessing.ConnectionsProcessor;
-import controller.src.DataProcessing.nftablesProcessing.NFTableInformation;
-import controller.src.DataProcessing.nftablesProcessing.NFTablesProcessor;
-import model.src.Model;
+import model.src.I_Model;
import model.src.ModelConstants.AccessModifier;
import queues.src.ReceivingQueue;
public final class DataProcessorThread extends Thread {
private static DataProcessorThread instance = null;
- private Model model = null;
+ private I_Model model = null;
private DataProcessorThread() {}
@@ -57,7 +56,7 @@ public final class DataProcessorThread extends Thread {
return this.dataProcessorRunning;
}
- public void setModel(Model model) {
+ public void setModel(I_Model model) {
this.model = model;
}
@@ -80,8 +79,7 @@ public final class DataProcessorThread extends Thread {
model.getNetworkModel().accessConnections(AccessModifier.WriteEntry, conInf);
}break;
case NFTablesConfiguration: {
- NFTableInformation nftConf = NFTablesProcessor.processDataString(data);
- model.getNFTablesModel().accessNFTConfiguration(AccessModifier.WriteEntry, nftConf);
+
}break;
case Undefined: // intended fall through
default: {
diff --git a/src/main/java/controller/src/enums/E_ControllerEvent.java b/src/main/java/controller/src/enums/E_ControllerEvent.java
new file mode 100644
index 0000000..656b9c2
--- /dev/null
+++ b/src/main/java/controller/src/enums/E_ControllerEvent.java
@@ -0,0 +1,6 @@
+package controller.src.enums;
+
+public enum E_ControllerEvent {
+ ConnectToServerSuccessful,
+ UpdateViewModel,
+}
diff --git a/src/main/java/controller/src/events/ConnectToServerSuccessful.java b/src/main/java/controller/src/events/ConnectToServerSuccessful.java
new file mode 100644
index 0000000..7edb9d2
--- /dev/null
+++ b/src/main/java/controller/src/events/ConnectToServerSuccessful.java
@@ -0,0 +1,13 @@
+package controller.src.events;
+
+import controller.src.enums.E_ControllerEvent;
+import controller.src.interfaces.I_ControllerEvent;
+
+public final record ConnectToServerSuccessful() implements I_ControllerEvent {
+
+ @Override
+ public E_ControllerEvent getEventType() {
+ return E_ControllerEvent.ConnectToServerSuccessful;
+ }
+
+}
diff --git a/src/main/java/controller/src/events/UpdateViewModel.java b/src/main/java/controller/src/events/UpdateViewModel.java
new file mode 100644
index 0000000..7070431
--- /dev/null
+++ b/src/main/java/controller/src/events/UpdateViewModel.java
@@ -0,0 +1,13 @@
+package controller.src.events;
+
+import controller.src.enums.E_ControllerEvent;
+import controller.src.interfaces.I_ControllerEvent;
+
+public final record UpdateViewModel(int fetchID) implements I_ControllerEvent {
+
+ @Override
+ public E_ControllerEvent getEventType() {
+ return E_ControllerEvent.UpdateViewModel;
+ }
+
+}
diff --git a/src/main/java/controller/src/interfaces/I_Controller.java b/src/main/java/controller/src/interfaces/I_Controller.java
new file mode 100644
index 0000000..0aa567e
--- /dev/null
+++ b/src/main/java/controller/src/interfaces/I_Controller.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 01.12.2023
+ * @lastChange 09.01.2024
+ */
+package controller.src.interfaces;
+
+public interface I_Controller {
+ public void start();
+}
diff --git a/src/main/java/controller/src/interfaces/I_ControllerEvent.java b/src/main/java/controller/src/interfaces/I_ControllerEvent.java
new file mode 100644
index 0000000..4ea4c8d
--- /dev/null
+++ b/src/main/java/controller/src/interfaces/I_ControllerEvent.java
@@ -0,0 +1,7 @@
+package controller.src.interfaces;
+
+import controller.src.enums.E_ControllerEvent;
+
+public interface I_ControllerEvent {
+ public E_ControllerEvent getEventType();
+}
diff --git a/src/main/java/data/src/ControllerToConnectionClient/ConnectToServer.java b/src/main/java/data/src/ControllerToConnectionClient/ConnectToServer.java
deleted file mode 100644
index 8b06b47..0000000
--- a/src/main/java/data/src/ControllerToConnectionClient/ConnectToServer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 08.12.2023
- */
-package data.src.ControllerToConnectionClient;
-
-public class ConnectToServer implements ControllerToConnectionClientData {
- private String ipAddress;
- private int port;
-
- String truststorePath;
- String truststorePassword;
-
- @Override
- public ConnectionClientEvent getConnectionClientEvent() {
- return ConnectionClientEvent.ConnectToServer;
- }
-
- public String getIPAddress() {
- return this.ipAddress;
- }
-
- public void setIPAddress(String ipAddress) {
- this.ipAddress = ipAddress;
- }
-
- public int getPort() {
- return this.port;
- }
-
- public void setPort(int port) {
- this.port = port;
- }
-
- public String getTruststorePath() {
- return this.truststorePath;
- }
-
- public void setTruststorePath(String truststorePath) {
- this.truststorePath = truststorePath;
- }
-
- public String getTruststorePassword() {
- return this.truststorePassword;
- }
-
- public void setTruststorePassword(String truststorePassword) {
- this.truststorePassword = truststorePassword;
- }
-}
diff --git a/src/main/java/data/src/ControllerToView/ConnectToServerSuccessful.java b/src/main/java/data/src/ControllerToView/ConnectToServerSuccessful.java
deleted file mode 100644
index b439726..0000000
--- a/src/main/java/data/src/ControllerToView/ConnectToServerSuccessful.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package data.src.ControllerToView;
-
-public class ConnectToServerSuccessful implements ControllerToViewData {
-
- @Override
- public void setControllerEvent(ControllerEvent controllerEvent) {
- return;
- }
-
- @Override
- public ControllerEvent getControllerEvent() {
- return ControllerEvent.ConnectToServerWasSuccessful;
- }
-
-}
diff --git a/src/main/java/data/src/ControllerToView/ControllerToViewData.java b/src/main/java/data/src/ControllerToView/ControllerToViewData.java
deleted file mode 100644
index 8dcddda..0000000
--- a/src/main/java/data/src/ControllerToView/ControllerToViewData.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 01.12.2023
- */
-package data.src.ControllerToView;
-
-public interface ControllerToViewData {
- public static enum ControllerEvent {
- ConnectToServerWasSuccessful,
- }
- public void setControllerEvent(ControllerEvent controllerEvent);
- public ControllerEvent getControllerEvent();
-}
diff --git a/src/main/java/data/src/Controller_To_ConnectionClient/ConnectToServer.java b/src/main/java/data/src/Controller_To_ConnectionClient/ConnectToServer.java
new file mode 100644
index 0000000..f46146e
--- /dev/null
+++ b/src/main/java/data/src/Controller_To_ConnectionClient/ConnectToServer.java
@@ -0,0 +1,14 @@
+/**
+ * @author Aaron Moser
+ * @date 08.12.2023
+ * @lastChange 06.01.2024
+ */
+package data.src.Controller_To_ConnectionClient;
+
+public final record ConnectToServer(String ipAddress, int port, String trustStorePath, String trustStorePassword) implements Controller_To_Connection_ClientData {
+
+ @Override
+ public ConnectionClientEvent getConnectionClientEvent() {
+ return ConnectionClientEvent.ConnectToServer;
+ }
+}
diff --git a/src/main/java/data/src/ControllerToConnectionClient/ControllerToConnectionClientData.java b/src/main/java/data/src/Controller_To_ConnectionClient/Controller_To_Connection_ClientData.java
similarity index 60%
rename from src/main/java/data/src/ControllerToConnectionClient/ControllerToConnectionClientData.java
rename to src/main/java/data/src/Controller_To_ConnectionClient/Controller_To_Connection_ClientData.java
index 77d29a6..6720de4 100644
--- a/src/main/java/data/src/ControllerToConnectionClient/ControllerToConnectionClientData.java
+++ b/src/main/java/data/src/Controller_To_ConnectionClient/Controller_To_Connection_ClientData.java
@@ -1,10 +1,11 @@
/**
* @author Aaron Moser
* @date 08.12.2023
+ * @lastChange 06.01.2024
*/
-package data.src.ControllerToConnectionClient;
+package data.src.Controller_To_ConnectionClient;
-public interface ControllerToConnectionClientData {
+public interface Controller_To_Connection_ClientData {
public static enum ConnectionClientEvent {
ConnectToServer,
};
diff --git a/src/main/java/data/src/Controller_To_Presenter/Controller_To_Presenter_Data.java b/src/main/java/data/src/Controller_To_Presenter/Controller_To_Presenter_Data.java
new file mode 100644
index 0000000..b29d164
--- /dev/null
+++ b/src/main/java/data/src/Controller_To_Presenter/Controller_To_Presenter_Data.java
@@ -0,0 +1,5 @@
+package data.src.Controller_To_Presenter;
+
+public final record Controller_To_Presenter_Data() {
+
+}
diff --git a/src/main/java/data/src/Presenter_To_Controller/Presenter_To_Controller_Data.java b/src/main/java/data/src/Presenter_To_Controller/Presenter_To_Controller_Data.java
new file mode 100644
index 0000000..e408043
--- /dev/null
+++ b/src/main/java/data/src/Presenter_To_Controller/Presenter_To_Controller_Data.java
@@ -0,0 +1,5 @@
+package data.src.Presenter_To_Controller;
+
+public final record Presenter_To_Controller_Data() {
+
+}
diff --git a/src/main/java/data/src/Presenter_To_View/Presenter_To_View_Data.java b/src/main/java/data/src/Presenter_To_View/Presenter_To_View_Data.java
new file mode 100644
index 0000000..b3e431f
--- /dev/null
+++ b/src/main/java/data/src/Presenter_To_View/Presenter_To_View_Data.java
@@ -0,0 +1,7 @@
+package data.src.Presenter_To_View;
+
+import presenter.src.interfaces.I_PresenterEvent;
+
+public final record Presenter_To_View_Data(I_PresenterEvent event) {
+
+}
diff --git a/src/main/java/data/src/ViewToController/ConnectToServerData.java b/src/main/java/data/src/ViewToController/ConnectToServerData.java
deleted file mode 100644
index b299458..0000000
--- a/src/main/java/data/src/ViewToController/ConnectToServerData.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 05.12.2023
- */
-package data.src.ViewToController;
-
-public class ConnectToServerData implements ViewToControllerData {
-
- private String ipAddress;
- private int port;
-
- private String trustStorePath;
- private String trustStorePassword;
-
- public ConnectToServerData(String ipAddress, int port, String trustStorePath, String trustStorePassword) {
- this.ipAddress = ipAddress;
- this.port = port;
- this.trustStorePath = trustStorePath;
- this.trustStorePassword = trustStorePassword;
- }
-
- @Override
- public void setViewEvent(ViewEvent viewEvent) {
- return;
- }
-
- @Override
- public ViewEvent getViewEvent() {
- return ViewEvent.ConnectToServerButtonWasPressed;
- }
-
- public String getIPAddress() {
- return this.ipAddress;
- }
-
- public int getPort() {
- return this.port;
- }
-
- public String getTrustStorePath() {
- return this.trustStorePath;
- }
-
- public void setTrustStorePath(String trustStorePath) {
- this.trustStorePath = trustStorePath;
- }
-
- public String getTrustStorePassword() {
- return this.trustStorePassword;
- }
-
- public void setTrustStorePassword(String trustStorePassword) {
- this.trustStorePassword = trustStorePassword;
- }
-}
diff --git a/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java b/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java
deleted file mode 100644
index 0ad8004..0000000
--- a/src/main/java/data/src/ViewToController/EmptyViewToControllerData.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @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/data/src/ViewToController/ViewToControllerData.java b/src/main/java/data/src/ViewToController/ViewToControllerData.java
deleted file mode 100644
index 47bdca2..0000000
--- a/src/main/java/data/src/ViewToController/ViewToControllerData.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 01.12.2023
- */
-package data.src.ViewToController;
-
-public interface ViewToControllerData {
- public static enum ViewEvent {
- EmptyEvent,
- QuitApplication,
- ConnectToServerButtonWasPressed,
- }
- public void setViewEvent(ViewEvent viewEvent);
- public ViewEvent getViewEvent();
-}
diff --git a/src/main/java/controller/src/Controller.java b/src/main/java/gui/src/I_View.java
similarity index 59%
rename from src/main/java/controller/src/Controller.java
rename to src/main/java/gui/src/I_View.java
index 2843d42..52cca68 100644
--- a/src/main/java/controller/src/Controller.java
+++ b/src/main/java/gui/src/I_View.java
@@ -2,8 +2,8 @@
* @author Aaron Moser
* @date 01.12.2023
*/
-package controller.src;
+package gui.src;
-public interface Controller {
+public interface I_View {
public void start();
}
diff --git a/src/main/java/gui/src/View.java b/src/main/java/gui/src/View.java
deleted file mode 100644
index 30a82d3..0000000
--- a/src/main/java/gui/src/View.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 01.12.2023
- */
-package gui.src;
-
-import data.src.ControllerToView.ControllerToViewData;
-
-public interface View {
- public void start();
- public void notify(ControllerToViewData controllerToViewData);
-}
diff --git a/src/main/java/gui/src/ViewThread.java b/src/main/java/gui/src/ViewThread.java
index fca385d..03ea240 100644
--- a/src/main/java/gui/src/ViewThread.java
+++ b/src/main/java/gui/src/ViewThread.java
@@ -1,44 +1,61 @@
/**
* @author Aaron Moser
* @date 01.12.2023
+ * @lastChange 07.01.2024
*/
package gui.src;
-import data.src.ControllerToView.ControllerToViewData;
+import data.src.Presenter_To_View.Presenter_To_View_Data;
import gui.src.frames.MainFrame;
import logger.src.MessageLogger;
-import queues.src.ControllerToViewQueue;
+import presenter.src.events.FetchData;
+import queues.src.Presenter_To_View_Queue;
+import queues.src.View_To_ViewEventManager_Queue;
+import viewModel.src.interfaces.I_ViewModel;
-public class ViewThread extends Thread implements View {
- private static final String className = "ViewThread";
-
- private static ViewThread instance;
+public class ViewThread extends Thread implements I_View {
+ private static final String className = "View";
private boolean isRunning = true;
- private ViewThread() {}
+ private I_ViewModel viewModel = null;
+ private Presenter_To_View_Queue presenter_To_View_Queue = null;
+ private View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue = null;
- public static ViewThread getInstance() {
- if (null == instance) {
- instance = new ViewThread();
+ public ViewThread(
+ I_ViewModel viewModel,
+ Presenter_To_View_Queue presenter_To_View_Queue,
+ View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue) {
+ this.viewModel = viewModel;
+ this.presenter_To_View_Queue = presenter_To_View_Queue;
+ this.view_To_ViewEventManager_Queue = view_To_ViewEventManager_Queue;
}
- return instance;
- }
public void run() {
- MainFrame.getInstance();
+ MainFrame.getInstance(this.viewModel, this.view_To_ViewEventManager_Queue, this.presenter_To_View_Queue);
MessageLogger.printMessage(className, "Swing ui thread was started.");
while (isRunning) {
- ControllerToViewData controllerToViewData = ControllerToViewQueue.getInstance().poll();
- if (controllerToViewData != null) {
- notify(controllerToViewData);
+ try {
+ Thread.sleep(100);
+ // Take blocks until element is available
+ Presenter_To_View_Data data = presenter_To_View_Queue.take();
+ switch (data.event().getType()) {
+ case FetchData: {
+ FetchData fetchDataEvent = (FetchData)data.event();
+ MessageLogger.printMessage(className, "Fetch data event received from presenter. ID:" + fetchDataEvent.id() + " Triggering MainFrame.");
+ MainFrame.triggerFetchData(fetchDataEvent.id());
+ }break;
+ default: {
+
+ }break;
+ }
+ } catch (InterruptedException e) {
+ //TODO error handler has to restart queue.
+ //Error has to be printed to log.
+ e.printStackTrace();
}
}
}
-
- public void notify(ControllerToViewData controllerToViewData) {
- MainFrame.getInstance().notify(controllerToViewData);
- }
}
diff --git a/src/main/java/gui/src/constants/GUIConstants.java b/src/main/java/gui/src/constants/GUIConstants.java
index f755877..b953e3a 100644
--- a/src/main/java/gui/src/constants/GUIConstants.java
+++ b/src/main/java/gui/src/constants/GUIConstants.java
@@ -1,6 +1,7 @@
/**
* @author Aaron Moser
* @date 31.10.2023
+ * @lastChange 04.01.2024
*/
package gui.src.constants;
@@ -14,7 +15,7 @@ public final class GUIConstants {
}
/**
- * Represents kinds of panels.
+ * Represents kinds of panels that can be put in main frame.
*/
public static enum Panel {
MonitoringPanel,
@@ -25,6 +26,21 @@ public final class GUIConstants {
ConnectionsTablePanel
}
+ public static enum ControllingSubPanel {
+ BasePanel,
+ NFTableFamilyPanel,
+ NFTableTablePanel,
+ NFTableChainPanel,
+ NFTableRulePanel,
+ None
+ }
+
+ public static enum NFTablePanel {
+ NFTableTablesPanel,
+ NFTableChainsPanel,
+ NFTableRulesPanel
+ }
+
public static enum Status {
Connected,
Connecting,
diff --git a/src/main/java/gui/src/frames/MainFrame.java b/src/main/java/gui/src/frames/MainFrame.java
index 6dd6f90..58b0249 100644
--- a/src/main/java/gui/src/frames/MainFrame.java
+++ b/src/main/java/gui/src/frames/MainFrame.java
@@ -1,20 +1,16 @@
/**
* @author Aaron Moser
* @date 31.10.2023
- * @lastChange 30.12.2023
+ * @lastChange 07.01.2024
*/
package gui.src.frames;
import javax.swing.*;
-import data.src.ControllerToView.ControllerToViewData;
-import data.src.ControllerToView.ControllerToViewData.ControllerEvent;
-
-import gui.src.constants.GUIConstants;
import gui.src.constants.GUIConstants.Panel;
import gui.src.constants.GUIConstants.Theme;
-
-import gui.src.interfaces.Themeable;
+import gui.src.interfaces.I_PanelChangeable;
+import gui.src.interfaces.I_Themeable;
import gui.src.menubar.MenuBar;
import gui.src.panels.ConnectToServerPanel.ConnectToServerPanel;
@@ -22,45 +18,68 @@ import gui.src.panels.ConnectionsTablePanel.ConnectionsTablePanel;
import gui.src.panels.ControllingPanel.ControllingPanel;
import gui.src.panels.MonitoringPanel.MonitoringPanel;
import gui.src.panels.StatusPanel.StatusPanel;
+import queues.src.Presenter_To_View_Queue;
+import queues.src.View_To_ViewEventManager_Queue;
+import viewModel.src.interfaces.I_ViewModel;
import java.awt.*;
-public final class MainFrame extends JFrame implements Themeable {
+public final class MainFrame extends JFrame implements I_Themeable, I_PanelChangeable {
private static MainFrame instance;
- private MainFrame() {
- this.setTitle("Firewall Dashboard");
- this.setJMenuBar(MenuBar.getMenuBar());
- this.setPanel(Panel.ConnectToServerPanel);
- this.setSize(1400, 700);
- this.setMinimumSize(new Dimension(700, 500));
- this.setLocation(100, 100);
- this.setVisible(true);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ private I_ViewModel viewModel = null;
+ private View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue = null;
+ private Presenter_To_View_Queue presenter_To_View_Queue = null;
+
+ private JPanel contentPanel = null;
+
+ private MainFrame(
+ I_ViewModel viewModel,
+ View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue,
+ Presenter_To_View_Queue presenter_To_View_Queue) {
+
+ this.viewModel = viewModel;
+ this.view_To_ViewEventManager_Queue = view_To_ViewEventManager_Queue;
+ this.presenter_To_View_Queue = presenter_To_View_Queue;
+
+ this.contentPanel = new JPanel();
+ this.getContentPane().add(this.contentPanel);
+
+ this.setTitle("Firewall Dashboard");
+ this.setJMenuBar(MenuBar.getMenuBar());
+ this.setPanel(Panel.ConnectToServerPanel);
+ this.setLocation(100, 100);
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
- public static MainFrame getInstance() {
- if (null == instance) {
- instance = new MainFrame();
- }
- return instance;
+ public static MainFrame getInstance(
+ I_ViewModel viewModel,
+ View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue,
+ Presenter_To_View_Queue presenter_To_View_Queue) {
+ if (instance == null) {
+ instance = new MainFrame(viewModel, view_To_ViewEventManager_Queue, presenter_To_View_Queue);
+ }
+ return instance;
}
+ @Override
public void setPanel(Panel kindOfPanel) {
try {
switch (kindOfPanel) {
case MonitoringPanel: {
this.setPanel(MonitoringPanel.getInstance());
+ //StatusPanel.getInstance().setPreviousNextButtonsVisible(false);
}break;
case ControllingPanel: {
this.setPanel(ControllingPanel.getInstance());
+ //StatusPanel.getInstance().setPreviousNextButtonsVisible(true);
}break;
case ConnectToServerPanel: {
- this.setPanel(ConnectToServerPanel.getInstance());
+ this.setPanel(ConnectToServerPanel.getInstance(viewModel, view_To_ViewEventManager_Queue));
}break;
case ConnectionsTablePanel: {
- this.setPanel(ConnectionsTablePanel.getInstance());
+ //this.setPanel(ConnectionsTablePanel.getInstance());
}break;
default: {
throw new Exception("Unknown kind of panel.");
@@ -73,9 +92,9 @@ public final class MainFrame extends JFrame implements Themeable {
}
private void setPanel(JPanel panel) {
- this.getContentPane().removeAll();
+ this.contentPanel.removeAll();
- this.getContentPane().setLayout(new GridBagLayout());
+ this.contentPanel.setLayout(new GridBagLayout());
// Status Panel
GridBagConstraints statusConstraints = new GridBagConstraints();
@@ -85,7 +104,7 @@ public final class MainFrame extends JFrame implements Themeable {
statusConstraints.fill = GridBagConstraints.HORIZONTAL;
statusConstraints.weightx = 1;
statusConstraints.insets = new Insets(5,5,0,0);
- this.getContentPane().add(StatusPanel.getInstance(), statusConstraints);
+ this.contentPanel.add(StatusPanel.getInstance(this), statusConstraints);
// Main Panel
GridBagConstraints mainConstraints = new GridBagConstraints();
@@ -93,12 +112,11 @@ public final class MainFrame extends JFrame implements Themeable {
mainConstraints.gridy = 2;
mainConstraints.anchor = GridBagConstraints.CENTER;
mainConstraints.weighty = 0.1;
- this.getContentPane().add(panel, mainConstraints);
+ this.contentPanel.add(panel, mainConstraints);
- this.pack();
- this.setSize(1400, 700);
- this.getContentPane().update(this.getGraphics());
- this.update(this.getGraphics());
+ this.setSize(new Dimension(1400, 700));
+ this.update(getGraphics());
+ this.setVisible(true);
}
// Nice to have
@@ -121,17 +139,9 @@ public final class MainFrame extends JFrame implements Themeable {
}
}
- public void notify(ControllerToViewData controllerToViewData) {
- ControllerEvent controllerEvent = controllerToViewData.getControllerEvent();
- switch (controllerEvent) {
- case ConnectToServerWasSuccessful: {
- ConnectToServerPanel.getInstance().enableFields();
- StatusPanel.getInstance().setStatus(GUIConstants.Status.Connected);
- this.setPanel(Panel.MonitoringPanel);
- }break;
- default: {
+ public static void triggerFetchData(int triggerID) {
+ if (instance != null) {
- }break;
}
}
}
diff --git a/src/main/java/gui/src/interfaces/I_FetchesViewModel.java b/src/main/java/gui/src/interfaces/I_FetchesViewModel.java
new file mode 100644
index 0000000..edec605
--- /dev/null
+++ b/src/main/java/gui/src/interfaces/I_FetchesViewModel.java
@@ -0,0 +1,8 @@
+package gui.src.interfaces;
+
+public interface I_FetchesViewModel {
+ /**
+ * Fetches data from view model and updates data of all ui elements at current parent.
+ */
+ public void fetchViewModel();
+}
diff --git a/src/main/java/gui/src/interfaces/I_PanelChangeable.java b/src/main/java/gui/src/interfaces/I_PanelChangeable.java
new file mode 100644
index 0000000..048c670
--- /dev/null
+++ b/src/main/java/gui/src/interfaces/I_PanelChangeable.java
@@ -0,0 +1,7 @@
+package gui.src.interfaces;
+
+import gui.src.constants.GUIConstants.Panel;
+
+public interface I_PanelChangeable {
+ public void setPanel(Panel kindOfPanel);
+}
diff --git a/src/main/java/gui/src/interfaces/Themeable.java b/src/main/java/gui/src/interfaces/I_Themeable.java
similarity index 85%
rename from src/main/java/gui/src/interfaces/Themeable.java
rename to src/main/java/gui/src/interfaces/I_Themeable.java
index 8f5882e..c931b26 100644
--- a/src/main/java/gui/src/interfaces/Themeable.java
+++ b/src/main/java/gui/src/interfaces/I_Themeable.java
@@ -7,6 +7,6 @@ package gui.src.interfaces;
import gui.src.constants.GUIConstants.Theme;
-public interface Themeable {
+public interface I_Themeable {
public void setThemeColor(Theme themeColor);
}
diff --git a/src/main/java/gui/src/interfaces/Translateable.java b/src/main/java/gui/src/interfaces/I_Translateable.java
similarity index 75%
rename from src/main/java/gui/src/interfaces/Translateable.java
rename to src/main/java/gui/src/interfaces/I_Translateable.java
index 2ea9ca0..1a14fa9 100644
--- a/src/main/java/gui/src/interfaces/Translateable.java
+++ b/src/main/java/gui/src/interfaces/I_Translateable.java
@@ -1,12 +1,13 @@
/**
* @author Aaron Moser
* @date 31.10.2023
+ * @lastChange 07.01.2024
*/
package gui.src.interfaces;
import gui.src.constants.GUIConstants.Languages;
-public interface Translateable {
+public interface I_Translateable {
public void changeLanguage(Languages language);
}
diff --git a/src/main/java/gui/src/menubar/Menu.java b/src/main/java/gui/src/menubar/Menu.java
index 0edcc75..9c0a121 100644
--- a/src/main/java/gui/src/menubar/Menu.java
+++ b/src/main/java/gui/src/menubar/Menu.java
@@ -1,6 +1,7 @@
/**
* @author Aaron Moser
* @date 01.11.2023
+ * @lastChange 07.01.2024
*/
package gui.src.menubar;
@@ -10,12 +11,12 @@ import javax.swing.JMenu;
import java.awt.event.ActionListener;
import gui.src.constants.GUIConstants.Languages;
-import gui.src.interfaces.Translateable;
+import gui.src.interfaces.I_Translateable;
/**
* Menu at menu bar.
*/
-public final class Menu extends JMenu implements Translateable {
+public final class Menu extends JMenu implements I_Translateable {
private String[] translations = null;
/**
diff --git a/src/main/java/gui/src/menubar/MenuBar.java b/src/main/java/gui/src/menubar/MenuBar.java
index 42ea59b..58d53a9 100644
--- a/src/main/java/gui/src/menubar/MenuBar.java
+++ b/src/main/java/gui/src/menubar/MenuBar.java
@@ -1,6 +1,7 @@
/**
* @author Aaron Moser
* @date 01.11.2023
+ * @lastChange 07.01.2024
*/
package gui.src.menubar;
@@ -9,12 +10,12 @@ import javax.swing.JMenuBar;
import gui.src.constants.GUIConstants.Languages;
-import gui.src.interfaces.Translateable;
+import gui.src.interfaces.I_Translateable;
import gui.src.menubar.menus.HelpMenuFactory;
import gui.src.menubar.menus.LanguageMenuFactory;
-public final class MenuBar extends JMenuBar implements Translateable {
+public final class MenuBar extends JMenuBar implements I_Translateable {
private MenuBarLanguageController languageController = null;
diff --git a/src/main/java/gui/src/menubar/MenuItem.java b/src/main/java/gui/src/menubar/MenuItem.java
index c36ae22..b30dccd 100644
--- a/src/main/java/gui/src/menubar/MenuItem.java
+++ b/src/main/java/gui/src/menubar/MenuItem.java
@@ -1,6 +1,7 @@
/**
* @author Aaron Moser
* @date 01.11.2023
+ * @lastChange 07.01.2024
*/
package gui.src.menubar;
@@ -10,12 +11,12 @@ import java.awt.event.ActionListener;
import javax.swing.JMenuItem;
import gui.src.constants.GUIConstants.Languages;
-import gui.src.interfaces.Translateable;
+import gui.src.interfaces.I_Translateable;
/**
* Menu item at menu at menu bar.
*/
-public final class MenuItem extends JMenuItem implements Translateable {
+public final class MenuItem extends JMenuItem implements I_Translateable {
private String[] translations = null;
/**
diff --git a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButton.java b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButton.java
deleted file mode 100644
index be6c64a..0000000
--- a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerButton.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 09.12.2023
- * @lastChange 30.12.2023
- */
-package gui.src.panels.ConnectToServerPanel;
-
-import data.src.ViewToController.ConnectToServerData;
-import gui.src.constants.GUIConstants;
-import gui.src.panels.StatusPanel.StatusPanel;
-import queues.src.ViewToControllerQueue;
-
-import javax.swing.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-public class ConnectToServerButton extends JButton implements ActionListener {
- private final JTextField ipAddressTextField;
- private final JTextField portTextField;
- private final JTextField trustStorePasswordTextField;
-
- public ConnectToServerButton(JTextField ipAddressTextField, JTextField portTextField, JTextField trustStorePasswordTextField) {
- this.ipAddressTextField = ipAddressTextField;
- this.portTextField = portTextField;
- this.trustStorePasswordTextField = trustStorePasswordTextField;
- this.addActionListener(this);
- }
-
- @Override
- public void actionPerformed(ActionEvent e) {
- System.out.println("Connect to server button was pressed.");
-
- ConnectToServerPanel.getInstance().disableFields();
-
- // Reads in fields text
- String ipAddress = this.ipAddressTextField.getText();
- int port = Integer.parseInt(this.portTextField.getText());
-
- String trustStorePath = ConnectToServerPanel.getInstance().getServerCertStoreFilePath();
- String trustStorePassword = this.trustStorePasswordTextField.getText();
-
- StatusPanel.getInstance().setStatus(GUIConstants.Status.Connecting);
- // Sends data to queue
- ViewToControllerQueue.getInstance().add(new ConnectToServerData(
- ipAddress,
- port,
- trustStorePath,
- trustStorePassword
- ));
- }
-}
diff --git a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java
index 5113dfa..c2bc222 100644
--- a/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java
+++ b/src/main/java/gui/src/panels/ConnectToServerPanel/ConnectToServerPanel.java
@@ -1,72 +1,74 @@
/**
* @author Aaron Moser
* @date 02.12.2023
+ * @lastChange 08.01.2024
*/
package gui.src.panels.ConnectToServerPanel;
import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import javax.swing.*;
+import javax.swing.filechooser.FileSystemView;
-import gui.src.constants.GUIConstants.Languages;
-import gui.src.constants.GUIConstants.Theme;
+import gui.src.interfaces.I_FetchesViewModel;
+import queues.src.View_To_ViewEventManager_Queue;
+import viewEventManager.src.data.AA_ConnectToServerData.AA_ConnectToServerData;
+import viewEventManager.src.events.I_ViewEvent;
+import viewEventManager.src.events.AA_ConnectToServerPanelEvents.AA_ConnectToServerButtonGotPressed;
+import viewModel.src.interfaces.I_ConnectToServerPanel_ViewModel;
+import viewModel.src.interfaces.I_ViewModel;
-import gui.src.interfaces.Themeable;
-import gui.src.interfaces.Translateable;
+/**
+ * The panel to enter data to connect to the server.
+ */
+public final class ConnectToServerPanel extends JPanel implements I_FetchesViewModel {
+ private static ConnectToServerPanel instance = null;
-public final class ConnectToServerPanel extends JPanel implements Themeable, Translateable {
- private String serverCertStoreFilePath;
- private static ConnectToServerPanel instance;
+ private I_ViewModel viewModel = null;
+ private View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue = null;
- private JLabel mainMessageLabel;
- private JLabel ipAddressLabel;
- private JLabel portLabel;
- private JLabel serverCertStoreLabel;
- private JLabel serverCertStorePasswordLabel;
+ private String serverCertStoreFilePath = "";
- private JRadioButton[] ipVersionRadioButtons;
+ private JLabel mainMessageLabel = null;
+ private JLabel ipAddressLabel = null;
+ private JLabel portLabel = null;
+ private JLabel serverCertStoreLabel = null;
+ private JLabel serverCertStorePasswordLabel = null;
- private JTextField ipAddressTextField;
- private JTextField portTextField;
- private JTextField trustStorePasswordTextField;
+ private JRadioButton[] ipVersionRadioButtons = null;
- private JButton connectButton;
- private JButton trustStoreFileChooserButton;
+ private JTextField ipAddressTextField = null;
+ private JTextField portTextField = null;
+ private JTextField trustStorePasswordTextField = null;
- private final String[] translationsDE = {
- "Verbinden Sie sich mit dem Server",
- "IPv4",
- "IPv6",
- "IP Adresse",
- "Port",
- "Waehlen Sie den Trust Store, welcher das Server-Zertifikat enthaelt.",
- "Datei waehlen",
- "Trust Store Passwort",
- "Verbinden"
- };
- private final String[] translationsEN = {
- "Connect to server",
- "IPv4",
- "IPv6",
- "IP address",
- "Port",
- "Select the trust store, which contains the server certificate",
- "Choose file",
- "Trust store password",
- "Connect"
- };
+ private JButton connectButton = null;
+ private JButton trustStoreFileChooserButton = null;
- public static ConnectToServerPanel getInstance() {
- if (null == instance) {
- instance = new ConnectToServerPanel();
+ /**
+ * On first call, initializes instance with overhanded parameters.
+ * On later calls, lets instance fetch new data from view model and returns updated instance.
+ * @param viewModel the model containing all the attributes of the ui elements.
+ * @param view_To_ViewEventManager_Queue the queue to send events from the view to the view event manager.
+ * @return the instance of the ConnectToServerPanel.
+ */
+ public static ConnectToServerPanel getInstance(I_ViewModel viewModel, View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue) {
+ if (instance == null) {
+ instance = new ConnectToServerPanel(viewModel, view_To_ViewEventManager_Queue);
}
+ instance.fetchViewModel();
return instance;
}
- private ConnectToServerPanel() {
+ private ConnectToServerPanel(I_ViewModel viewModel, View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue) {
+ this.viewModel = viewModel;
+ this.view_To_ViewEventManager_Queue = view_To_ViewEventManager_Queue;
+
this.createComponents();
this.addComponents();
- this.changeLanguage(Languages.German);
+
+ this.fetchViewModel();
}
/**
@@ -228,7 +230,23 @@ public final class ConnectToServerPanel extends JPanel implements Themeable, Tra
}
private void createServerCertStoreFileChooserButton() {
- this.trustStoreFileChooserButton = new TrustStoreButton();
+
+ this.trustStoreFileChooserButton = new JButton();
+
+ this.trustStoreFileChooserButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ JFileChooser fileChooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
+
+ int fileChooserOption = fileChooser.showSaveDialog(null);
+
+ // if the user selects a file
+ if (fileChooserOption == JFileChooser.APPROVE_OPTION) {
+ serverCertStoreFilePath = fileChooser.getSelectedFile().getAbsolutePath();
+ }
+ }
+ });
}
private void addServerCertStoreFileChooserButton() {
@@ -273,7 +291,23 @@ public final class ConnectToServerPanel extends JPanel implements Themeable, Tra
}
private void createConnectButton() {
- this.connectButton = new ConnectToServerButton(this.ipAddressTextField, this.portTextField, this.trustStorePasswordTextField);
+
+ this.connectButton = new JButton();
+
+ this.connectButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ I_ViewEvent data = new AA_ConnectToServerButtonGotPressed(
+ new AA_ConnectToServerData(
+ ipAddressTextField.getText(),
+ Integer.valueOf(portTextField.getText()),
+ serverCertStoreFilePath,
+ trustStorePasswordTextField.getText()));
+ // Pass the data to the event manager
+ view_To_ViewEventManager_Queue.add(data);
+ }
+ });
}
private void addConnectButton() {
@@ -287,227 +321,20 @@ public final class ConnectToServerPanel extends JPanel implements Themeable, Tra
this.add(this.connectButton, gridBagConstraints);
}
- public void setThemeColor(Theme themeColor) {
- try {
- switch (themeColor) {
- case Dark: {
-
- }break;
- case Light: {
-
- }break;
- default: {
- throw new Exception("Unknown kind of theme color.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.setThemeColor(Theme.Light);
- }
- }
+ @Override
+ public void fetchViewModel() {
+ I_ConnectToServerPanel_ViewModel panelViewModel = viewModel.get_ConnectToServerPanel_ViewModel();
- /**
- * Changes text of panel elements.
- * Panel elements are: descriptive text, ip version radio buttons,
- * ip address field descriptive text, port field descriptive text,
- * connect button text.
- * @param language the language the elements to set to.
- */
- public void changeLanguage(Languages language) {
- changeLanguageMainMessageLabel(language);
- changeLanguageIPVersionRadioButtons(language);
- changeLanguageIPAddressLabel(language);
- changeLanguagePortLabel(language);
- changeLanguageConnectButton(language);
- changeLanguageServerCertStoreLabel(language);
- changeLanguageTrustStoreFileChooserButton(language);
- changeLanguageServerCertStorePasswordLabel(language);
- }
+ mainMessageLabel.setText(panelViewModel.get_MainMessageLabel_Text());
+ ipAddressLabel.setText(panelViewModel.get_IPAddressLabel_Text());
+ portLabel.setText(panelViewModel.get_PortLabel_Text());
+ serverCertStoreLabel.setText(panelViewModel.get_ServerCertStoreLabel_Text());
+ serverCertStorePasswordLabel.setText(panelViewModel.get_ServerCertStorePasswordLabel_Text());
- /**
- * Changes translation of radio buttons for selection of ip-version.
- * Prints an error message if the language is unknown.
- * @param language the language the elements to set to.
- */
- private void changeLanguageIPVersionRadioButtons(Languages language) {
- try {
- switch (language) {
- case German: {
- ipVersionRadioButtons[0].setText(translationsDE[1]);
- ipVersionRadioButtons[1].setText(translationsDE[2]);
- }break;
- case English: {
- ipVersionRadioButtons[0].setText(translationsEN[1]);
- ipVersionRadioButtons[1].setText(translationsEN[2]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguageIPVersionRadioButtons(Languages.German);
- }
- }
+ ipVersionRadioButtons[0].setText(panelViewModel.get_IPVersion4RadioButton_Text());
+ ipVersionRadioButtons[1].setText(panelViewModel.get_IPVersion6RadioButton_Text());
- private void changeLanguageMainMessageLabel(Languages language) {
- try {
- switch (language) {
- case German: {
- mainMessageLabel.setText(translationsDE[0]);
- }break;
- case English: {
- mainMessageLabel.setText(translationsEN[0]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguageMainMessageLabel(Languages.German);
- }
- }
-
- private void changeLanguageIPAddressLabel(Languages language) {
- try {
- switch (language) {
- case German: {
- ipAddressLabel.setText(translationsDE[3]);
- }break;
- case English: {
- ipAddressLabel.setText(translationsEN[3]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguageIPAddressLabel(Languages.German);
- }
- }
-
- private void changeLanguagePortLabel(Languages language) {
- try {
- switch (language) {
- case German: {
- this.portLabel.setText(translationsDE[4]);
- }break;
- case English: {
- this.portLabel.setText(translationsEN[4]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguagePortLabel(Languages.German);
- }
- }
-
- private void changeLanguageServerCertStoreLabel(Languages language) {
- try {
- switch (language) {
- case German: {
- this.serverCertStoreLabel.setText(translationsDE[5]);
- }break;
- case English: {
- this.serverCertStoreLabel.setText(translationsEN[5]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguagePortLabel(Languages.German);
- }
- }
-
- private void changeLanguageTrustStoreFileChooserButton(Languages language) {
- try {
- switch (language) {
- case German: {
- this.trustStoreFileChooserButton.setText(translationsDE[6]);
- }break;
- case English: {
- this.trustStoreFileChooserButton.setText(translationsEN[6]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguagePortLabel(Languages.German);
- }
- }
-
- private void changeLanguageServerCertStorePasswordLabel(Languages language) {
- try {
- switch (language) {
- case German: {
- this.serverCertStorePasswordLabel.setText(translationsDE[7]);
- }break;
- case English: {
- this.serverCertStorePasswordLabel.setText(translationsEN[7]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguagePortLabel(Languages.German);
- }
- }
-
- private void changeLanguageConnectButton(Languages language) {
- try {
- switch (language) {
- case German: {
- this.connectButton.setText(translationsDE[8]);
- }break;
- case English: {
- this.connectButton.setText(translationsEN[8]);
- }break;
- default: {
- throw new Exception("Unknown kind of language.");
- }
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- this.changeLanguagePortLabel(Languages.German);
- }
- }
-
- public void setServerCertStoreFilePath(String serverCertStoreFilePath) {
- this.serverCertStoreFilePath = serverCertStoreFilePath;
- }
-
- public String getServerCertStoreFilePath() {
- return serverCertStoreFilePath;
- }
-
- public void enableFields() {
- for (JRadioButton radioButton : this.ipVersionRadioButtons) {
- radioButton.setEnabled(true);
- }
- this.ipAddressTextField.setEditable(true);
- this.portTextField.setEditable(true);
- this.trustStorePasswordTextField.setEditable(true);
- this.connectButton.setEnabled(true);
- }
-
- public void disableFields() {
- for (JRadioButton radioButton : this.ipVersionRadioButtons) {
- radioButton.setEnabled(false);
- }
- this.ipAddressTextField.setEditable(false);
- this.portTextField.setEditable(false);
- this.trustStorePasswordTextField.setEditable(false);
- this.connectButton.setEnabled(false);
+ connectButton.setText(panelViewModel.get_ConnectButton_Text());
+ trustStoreFileChooserButton.setText(panelViewModel.get_TrustStoreFileChooserButton_Text());
}
}
diff --git a/src/main/java/gui/src/panels/ConnectToServerPanel/TrustStoreButton.java b/src/main/java/gui/src/panels/ConnectToServerPanel/TrustStoreButton.java
deleted file mode 100644
index d75548b..0000000
--- a/src/main/java/gui/src/panels/ConnectToServerPanel/TrustStoreButton.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 09.12.2023
- */
-package gui.src.panels.ConnectToServerPanel;
-
-import javax.swing.JButton;
-import javax.swing.JFileChooser;
-
-import javax.swing.filechooser.FileSystemView;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-public class TrustStoreButton extends JButton implements ActionListener {
-
- public TrustStoreButton() {
- this.addActionListener(this);
- }
-
- @Override
- public void actionPerformed(ActionEvent e) {
- JFileChooser fileChooser = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
-
- int fileChooserOption = fileChooser.showSaveDialog(null);
-
- // if the user selects a file
- if (fileChooserOption == JFileChooser.APPROVE_OPTION) {
- ConnectToServerPanel.getInstance().setServerCertStoreFilePath(fileChooser.getSelectedFile().getAbsolutePath());
- }
- }
-}
diff --git a/src/main/java/gui/src/panels/ConnectionsTablePanel/ConnectionsTablePanel.java b/src/main/java/gui/src/panels/ConnectionsTablePanel/ConnectionsTablePanel.java
index 2ceab18..11527dc 100644
--- a/src/main/java/gui/src/panels/ConnectionsTablePanel/ConnectionsTablePanel.java
+++ b/src/main/java/gui/src/panels/ConnectionsTablePanel/ConnectionsTablePanel.java
@@ -1,8 +1,15 @@
+/**
+ * @author Aaron Moser
+ * @date
+ * @lastChange 07.01.2024
+ */
package gui.src.panels.ConnectionsTablePanel;
import javax.swing.JPanel;
-public class ConnectionsTablePanel extends JPanel {
+import gui.src.interfaces.I_FetchesViewModel;
+
+public class ConnectionsTablePanel extends JPanel implements I_FetchesViewModel {
private static ConnectionsTablePanel instance;
private ConnectionsTablePanel() {
@@ -15,4 +22,10 @@ public class ConnectionsTablePanel extends JPanel {
}
return instance;
}
+
+ @Override
+ public void fetchViewModel() {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'fetchViewModel'");
+ }
}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/BasePanel/ControllingBasePanel.java b/src/main/java/gui/src/panels/ControllingPanel/BasePanel/ControllingBasePanel.java
new file mode 100644
index 0000000..a37dcc8
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/BasePanel/ControllingBasePanel.java
@@ -0,0 +1,29 @@
+package gui.src.panels.ControllingPanel.BasePanel;
+
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+
+public class ControllingBasePanel extends JPanel {
+ private static ControllingBasePanel instance = null;
+
+ private final JButton nftConfigButton;
+
+ private ControllingBasePanel() {
+ nftConfigButton = new NFTConfigurationButton();
+ this.setLayout(new GridBagLayout());
+
+ GridBagConstraints nftConfButtonConstraints = new GridBagConstraints();
+
+ this.add(nftConfigButton, nftConfButtonConstraints);
+ }
+
+ public static ControllingBasePanel getInstance() {
+ if (instance == null) {
+ instance = new ControllingBasePanel();
+ }
+ return instance;
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/BasePanel/NFTConfigurationButton.java b/src/main/java/gui/src/panels/ControllingPanel/BasePanel/NFTConfigurationButton.java
new file mode 100644
index 0000000..589df3c
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/BasePanel/NFTConfigurationButton.java
@@ -0,0 +1,28 @@
+/**
+ * @author Aaron Moser
+ * @date 04.01.2024
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.BasePanel;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+import gui.src.constants.GUIConstants.ControllingSubPanel;
+import gui.src.panels.ControllingPanel.ControllingPanel;
+
+public final class NFTConfigurationButton extends JButton implements ActionListener {
+
+ public NFTConfigurationButton() {
+ this.setText("NFT Configuration");
+ this.addActionListener(this);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ControllingPanel.getInstance().setPanel(ControllingSubPanel.NFTableFamilyPanel);
+ }
+
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/ControllingPanel.java b/src/main/java/gui/src/panels/ControllingPanel/ControllingPanel.java
index 594a221..e08b397 100644
--- a/src/main/java/gui/src/panels/ControllingPanel/ControllingPanel.java
+++ b/src/main/java/gui/src/panels/ControllingPanel/ControllingPanel.java
@@ -5,19 +5,125 @@
package gui.src.panels.ControllingPanel;
+import java.util.ArrayDeque;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.LinkedList;
+
import javax.swing.JPanel;
+import gui.src.constants.GUIConstants.ControllingSubPanel;
+import gui.src.frames.MainFrame;
+import gui.src.panels.ControllingPanel.BasePanel.ControllingBasePanel;
+import gui.src.panels.ControllingPanel.NFTable.NFTFamilyPanel.NFTFamilyPanel;
+import gui.src.panels.ControllingPanel.NFTable.NFTablesTablePanel.NFTablesTablePanel;
+import gui.src.panels.ControllingPanel.NFTable.NFTablesChainPanel.NFTablesChainPanel;
+import gui.src.panels.ControllingPanel.NFTable.NFTablesRulePanel.NFTablesRulePanel;
+
public final class ControllingPanel extends JPanel {
private static ControllingPanel instance;
- private ControllingPanel() {
+ private ControllingSubPanel activePanelType = ControllingSubPanel.None;
+ private Deque previousPanelStack = new ArrayDeque();
+ private Deque nextPanelStack = new ArrayDeque();
+ private ControllingPanel() {
+ this.setPanel(ControllingSubPanel.BasePanel);
}
public static ControllingPanel getInstance() {
- if (null == instance) {
+ if (instance == null) {
instance = new ControllingPanel();
}
return instance;
}
+
+ public void setPanel(ControllingSubPanel panelType) {
+ this.removeAll();
+
+ switch (panelType) {
+ case ControllingSubPanel.BasePanel: {
+ if (activePanelType != ControllingSubPanel.BasePanel) {
+ previousPanelStack.push(activePanelType);
+ this.activePanelType = ControllingSubPanel.BasePanel;
+ this.add(ControllingBasePanel.getInstance());
+ }
+ }break;
+ case ControllingSubPanel.NFTableFamilyPanel: {
+ if (activePanelType != ControllingSubPanel.NFTableFamilyPanel) {
+ previousPanelStack.push(activePanelType);
+ this.activePanelType = ControllingSubPanel.NFTableFamilyPanel;
+ this.add(NFTFamilyPanel.getInstance());
+ }
+ }break;
+ case ControllingSubPanel.NFTableTablePanel: {
+ if (activePanelType != ControllingSubPanel.NFTableTablePanel) {
+ previousPanelStack.push(activePanelType);
+ this.activePanelType = ControllingSubPanel.NFTableTablePanel;
+ this.add(NFTablesTablePanel.getInstance());
+ }
+ }break;
+ case ControllingSubPanel.NFTableChainPanel: {
+ if (activePanelType != ControllingSubPanel.NFTableChainPanel) {
+ previousPanelStack.push(activePanelType);
+ this.activePanelType = ControllingSubPanel.NFTableChainPanel;
+ this.add(NFTablesChainPanel.getInstance());
+ }
+ }break;
+ case ControllingSubPanel.NFTableRulePanel: {
+ if (activePanelType != ControllingSubPanel.NFTableRulePanel) {
+ previousPanelStack.push(activePanelType);
+ this.activePanelType = ControllingSubPanel.NFTableRulePanel;
+ this.add(NFTablesRulePanel.getInstance());
+ }
+ }break;
+ default: {
+
+ }break;
+ }
+ MainFrame.getInstance(null, null, null).setVisible(true);
+ }
+
+ public void previousButtonEvent() {
+ if (!previousPanelStack.isEmpty()) {
+ nextPanelStack.push(activePanelType);
+ setPanel(previousPanelStack.pop());
+ }
+ }
+
+ public void nextButtonEvent() {
+ if(!nextPanelStack.isEmpty()) {
+ previousPanelStack.push(activePanelType);
+ setPanel(nextPanelStack.pop());
+ }
+ }
+
+ /*public void setNFTInformation(NFTablesConfigurationReceived nftConfig) {
+ LinkedList>> nftInformation = nftConfig.getNFTableInformation().getTables();
+
+ LinkedList tables = new LinkedList();
+
+ HashMap chains = new HashMap();
+
+ HashMap rules = new HashMap();
+
+ for (int tableIndex = 0; tableIndex < nftInformation.size(); tableIndex++) {
+ for (int chainIndex = 0; chainIndex < nftInformation.get(tableIndex).size(); chainIndex++) {
+ for (int ruleIndex = 0; ruleIndex < nftInformation.get(tableIndex).get(chainIndex).size(); ruleIndex++) {
+ switch (ruleIndex) {
+ case 0: {
+ tables.add(nftInformation.get(tableIndex).get(chainIndex).get(0));
+ }break;
+ case 1: {
+ chains.put(nftInformation.get(tableIndex).get(chainIndex).get(0), nftInformation.get(tableIndex).get(chainIndex).get(1));
+ }break;
+ default: {
+
+ }break;
+ }
+ }
+ }
+ }
+ NFTablesTablePanel.getInstance().setTables(tables);
+ } */
}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv4FamilyButton.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv4FamilyButton.java
new file mode 100644
index 0000000..266b6dd
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv4FamilyButton.java
@@ -0,0 +1,35 @@
+/**
+ * @author Aaron Moser
+ * @date 04.01.2024
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.NFTable.NFTFamilyPanel;
+
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+public class IPv4FamilyButton extends JButton implements ActionListener {
+ private static IPv4FamilyButton instance = null;
+
+ private IPv4FamilyButton() {
+ this.setText("IPv4");
+ this.addActionListener(this);
+ this.setPreferredSize(new Dimension(100,100));
+ }
+
+ public static IPv4FamilyButton getInstance() {
+ if (instance == null) {
+ instance = new IPv4FamilyButton();
+ }
+ return instance;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'actionPerformed'");
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv6FamilyButton.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv6FamilyButton.java
new file mode 100644
index 0000000..66efa13
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/IPv6FamilyButton.java
@@ -0,0 +1,35 @@
+/**
+ * @author Aaron Moser
+ * @date 04.01.2024
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.NFTable.NFTFamilyPanel;
+
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+public class IPv6FamilyButton extends JButton implements ActionListener {
+ private static IPv6FamilyButton instance = null;
+
+ private IPv6FamilyButton() {
+ this.setText("IPv6");
+ this.addActionListener(this);
+ this.setPreferredSize(new Dimension(100,100));
+ }
+
+ public static IPv6FamilyButton getInstance() {
+ if (instance == null) {
+ instance = new IPv6FamilyButton();
+ }
+ return instance;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'actionPerformed'");
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/InetFamilyButton.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/InetFamilyButton.java
new file mode 100644
index 0000000..f1178f7
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/InetFamilyButton.java
@@ -0,0 +1,35 @@
+/**
+ * @author Aaron Moser
+ * @date 04.01.2024
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.NFTable.NFTFamilyPanel;
+
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+public class InetFamilyButton extends JButton implements ActionListener {
+ private static InetFamilyButton instance = null;
+
+ private InetFamilyButton() {
+ this.setText("Inet");
+ this.addActionListener(this);
+ this.setPreferredSize(new Dimension(100,100));
+ }
+
+ public static InetFamilyButton getInstance() {
+ if (instance == null) {
+ instance = new InetFamilyButton();
+ }
+ return instance;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'actionPerformed'");
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/NFTFamilyPanel.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/NFTFamilyPanel.java
new file mode 100644
index 0000000..7341a39
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTFamilyPanel/NFTFamilyPanel.java
@@ -0,0 +1,71 @@
+/**
+ * @author Aaron Moser
+ * @date 31.12.2023
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.NFTable.NFTFamilyPanel;
+
+import javax.swing.*;
+
+import java.awt.*;
+
+public final class NFTFamilyPanel extends JPanel {
+ private static NFTFamilyPanel instance = null;
+
+ private final JLabel instruction;
+
+ private final JButton inetFamilyButton;
+ private final JButton ipv4FamilyButton;
+ private final JButton ipv6FamilyButton;
+
+ private NFTFamilyPanel() {
+ instruction = new JLabel("Waehlen Sie die Familie aus, deren Tabellen / Ketten / Regeln Sie anschauen / veraendern moechten.");
+
+ this.setLayout(new GridBagLayout());
+
+ this.addInstructions();
+
+ inetFamilyButton = InetFamilyButton.getInstance();
+ ipv4FamilyButton = IPv4FamilyButton.getInstance();
+ ipv6FamilyButton = IPv6FamilyButton.getInstance();
+
+ this.addFamilyButtons();
+ }
+
+ private void addInstructions() {
+ GridBagConstraints instructionConstraints = new GridBagConstraints();
+ instructionConstraints.gridx = 0;
+ instructionConstraints.gridy = 0;
+ instructionConstraints.anchor = GridBagConstraints.NORTHWEST;
+ instructionConstraints.fill = GridBagConstraints.HORIZONTAL;
+ instructionConstraints.weightx = 1;
+ instructionConstraints.insets = new Insets(0,0,0,0);
+ this.add(instruction, instructionConstraints);
+ }
+
+ private void addFamilyButtons() {
+ GridBagConstraints buttonPanelConstraints = new GridBagConstraints();
+ buttonPanelConstraints.gridx = 0;
+ buttonPanelConstraints.gridy = 1;
+ buttonPanelConstraints.anchor = GridBagConstraints.NORTHWEST;
+ buttonPanelConstraints.fill = GridBagConstraints.HORIZONTAL;
+ buttonPanelConstraints.weightx = 1;
+ buttonPanelConstraints.insets = new Insets(0,0,0,0);
+
+ JPanel familyButtonPanel = new JPanel();
+ familyButtonPanel.setLayout(new FlowLayout());
+
+ familyButtonPanel.add(inetFamilyButton);
+ familyButtonPanel.add(ipv4FamilyButton);
+ familyButtonPanel.add(ipv6FamilyButton);
+
+ this.add(familyButtonPanel, buttonPanelConstraints);
+ }
+
+ public static NFTFamilyPanel getInstance() {
+ if (instance == null) {
+ instance = new NFTFamilyPanel();
+ }
+ return instance;
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesChainPanel/NFTablesChainPanel.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesChainPanel/NFTablesChainPanel.java
index 879a989..b5e3fa4 100644
--- a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesChainPanel/NFTablesChainPanel.java
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesChainPanel/NFTablesChainPanel.java
@@ -1,12 +1,26 @@
/**
* @author Aaron Moser
* @date 30.12.2023
- * @lastChange 30.12.2023
+ * @lastChange 04.01.2024
*/
package gui.src.panels.ControllingPanel.NFTable.NFTablesChainPanel;
+import javax.swing.BoxLayout;
import javax.swing.JPanel;
-public class NFTablesChainPanel extends JPanel {
-
+public final class NFTablesChainPanel extends JPanel {
+ private static NFTablesChainPanel instance = null;
+
+ private NFTablesChainPanel() {
+ this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+
+
+ }
+
+ public static NFTablesChainPanel getInstance() {
+ if (instance == null) {
+ instance = new NFTablesChainPanel();
+ }
+ return instance;
+ }
}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesRulePanel/NFTablesRulePanel.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesRulePanel/NFTablesRulePanel.java
new file mode 100644
index 0000000..56bf857
--- /dev/null
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesRulePanel/NFTablesRulePanel.java
@@ -0,0 +1,26 @@
+/**
+ * @author Aaron Moser
+ * @date 04.01.2024
+ * @lastChange 04.01.2024
+ */
+package gui.src.panels.ControllingPanel.NFTable.NFTablesRulePanel;
+
+import javax.swing.BoxLayout;
+import javax.swing.JPanel;
+
+public final class NFTablesRulePanel extends JPanel {
+ private static NFTablesRulePanel instance = null;
+
+ private NFTablesRulePanel() {
+ this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+
+
+ }
+
+ public static NFTablesRulePanel getInstance() {
+ if (instance == null) {
+ instance = new NFTablesRulePanel();
+ }
+ return instance;
+ }
+}
diff --git a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesTablePanel/NFTablesTablePanel.java b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesTablePanel/NFTablesTablePanel.java
index 1be0caf..b1bcfc5 100644
--- a/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesTablePanel/NFTablesTablePanel.java
+++ b/src/main/java/gui/src/panels/ControllingPanel/NFTable/NFTablesTablePanel/NFTablesTablePanel.java
@@ -5,16 +5,25 @@
*/
package gui.src.panels.ControllingPanel.NFTable.NFTablesTablePanel;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.util.List;
+
import javax.swing.BoxLayout;
import javax.swing.JPanel;
public final class NFTablesTablePanel extends JPanel {
private static NFTablesTablePanel instance = null;
- private NFTablesTablePanel() {
- this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+ private JPanel tableListPanel = null;
-
+ private NFTablesTablePanel() {
+ setTables(null);
+ this.setLayout(new GridBagLayout());
+
+ GridBagConstraints tablesPanelConstraints = new GridBagConstraints();
+
+ this.add(tableListPanel, tablesPanelConstraints);
}
public static NFTablesTablePanel getInstance() {
@@ -23,4 +32,19 @@ public final class NFTablesTablePanel extends JPanel {
}
return instance;
}
+
+ public void setTables(List tables) {
+ tableListPanel = new JPanel();
+ tableListPanel.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+
+ if (tables != null) {
+
+ for (String table : tables) {
+ //tableListPanel.add();
+ }
+ } else {
+ //tableListPanel.add();
+ }
+
+ }
}
diff --git a/src/main/java/gui/src/panels/MonitoringPanel/ConnectionsLineChart/ConnectionsLineChartPanel.java b/src/main/java/gui/src/panels/MonitoringPanel/ConnectionsLineChart/ConnectionsLineChartPanel.java
index c1a9e7d..ead3b8a 100644
--- a/src/main/java/gui/src/panels/MonitoringPanel/ConnectionsLineChart/ConnectionsLineChartPanel.java
+++ b/src/main/java/gui/src/panels/MonitoringPanel/ConnectionsLineChart/ConnectionsLineChartPanel.java
@@ -41,7 +41,7 @@ public class ConnectionsLineChartPanel extends JPanel {
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
- MainFrame.getInstance().setPanel(null);
+ // MainFrame.getInstance().setPanel(null);
}
});
}
diff --git a/src/main/java/gui/src/panels/StatusPanel/ControllingButton.java b/src/main/java/gui/src/panels/StatusPanel/ControllingButton.java
index 30f7af9..631babd 100644
--- a/src/main/java/gui/src/panels/StatusPanel/ControllingButton.java
+++ b/src/main/java/gui/src/panels/StatusPanel/ControllingButton.java
@@ -11,20 +11,24 @@ import java.awt.event.ActionListener;
import javax.swing.JButton;
import gui.src.constants.GUIConstants.Panel;
-import gui.src.frames.MainFrame;
+import gui.src.interfaces.I_PanelChangeable;
public class ControllingButton extends JButton implements ActionListener {
private static ControllingButton instance = null;
- private ControllingButton() {
+ private I_PanelChangeable mainFrame = null;
+
+ private ControllingButton(I_PanelChangeable mainFrame) {
+ this.mainFrame = mainFrame;
+
this.setText("Controlling");
this.addActionListener(this);
}
- public static ControllingButton getInstance() {
+ public static ControllingButton getInstance(I_PanelChangeable mainFrame) {
if (instance == null) {
- instance = new ControllingButton();
+ instance = new ControllingButton(mainFrame);
}
return instance;
}
@@ -32,8 +36,8 @@ public class ControllingButton extends JButton implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
this.setEnabled(false);
- MonitoringButton.getInstance().setEnabled(true);
- MainFrame.getInstance().setPanel(Panel.ControllingPanel);
+ MonitoringButton.getInstance(null).setEnabled(true);
+ this.mainFrame.setPanel(Panel.ControllingPanel);
}
}
diff --git a/src/main/java/gui/src/panels/StatusPanel/MonitoringButton.java b/src/main/java/gui/src/panels/StatusPanel/MonitoringButton.java
index ca6b62e..eb02f51 100644
--- a/src/main/java/gui/src/panels/StatusPanel/MonitoringButton.java
+++ b/src/main/java/gui/src/panels/StatusPanel/MonitoringButton.java
@@ -12,19 +12,23 @@ import javax.swing.JButton;
import gui.src.constants.GUIConstants.Panel;
import gui.src.frames.MainFrame;
+import gui.src.interfaces.I_PanelChangeable;
public class MonitoringButton extends JButton implements ActionListener {
private static MonitoringButton instance = null;
- private MonitoringButton() {
+ private I_PanelChangeable mainFrame = null;
+
+ private MonitoringButton(I_PanelChangeable mainFrame) {
+ this.mainFrame = mainFrame;
this.setText("Monitoring");
this.addActionListener(this);
}
- public static MonitoringButton getInstance() {
+ public static MonitoringButton getInstance(I_PanelChangeable mainFrame) {
if (instance == null) {
- instance = new MonitoringButton();
+ instance = new MonitoringButton(mainFrame);
}
return instance;
}
@@ -32,8 +36,8 @@ public class MonitoringButton extends JButton implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
this.setEnabled(false);
- ControllingButton.getInstance().setEnabled(true);
- MainFrame.getInstance().setPanel(Panel.MonitoringPanel);
+ ControllingButton.getInstance(null).setEnabled(true);
+ mainFrame.setPanel(Panel.MonitoringPanel);
}
}
diff --git a/src/main/java/gui/src/panels/StatusPanel/NextButton.java b/src/main/java/gui/src/panels/StatusPanel/NextButton.java
new file mode 100644
index 0000000..957dfd8
--- /dev/null
+++ b/src/main/java/gui/src/panels/StatusPanel/NextButton.java
@@ -0,0 +1,30 @@
+package gui.src.panels.StatusPanel;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+import gui.src.panels.ControllingPanel.ControllingPanel;
+
+public class NextButton extends JButton implements ActionListener {
+ private static NextButton instance = null;
+
+ private NextButton() {
+ this.setText("->");
+ this.addActionListener(this);
+ }
+
+ public static NextButton getInstance() {
+ if (instance == null) {
+ instance = new NextButton();
+ }
+ return instance;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ControllingPanel.getInstance().nextButtonEvent();
+ }
+
+}
diff --git a/src/main/java/gui/src/panels/StatusPanel/PreviousButton.java b/src/main/java/gui/src/panels/StatusPanel/PreviousButton.java
new file mode 100644
index 0000000..6c90fa7
--- /dev/null
+++ b/src/main/java/gui/src/panels/StatusPanel/PreviousButton.java
@@ -0,0 +1,29 @@
+package gui.src.panels.StatusPanel;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+
+import gui.src.panels.ControllingPanel.ControllingPanel;
+
+public class PreviousButton extends JButton implements ActionListener {
+ private static PreviousButton instance = null;
+
+ private PreviousButton() {
+ this.setText("<-");
+ this.addActionListener(this);
+ }
+
+ public static PreviousButton getInstance() {
+ if (instance == null) {
+ instance = new PreviousButton();
+ }
+ return instance;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ControllingPanel.getInstance().previousButtonEvent();
+ }
+}
diff --git a/src/main/java/gui/src/panels/StatusPanel/StatusPanel.java b/src/main/java/gui/src/panels/StatusPanel/StatusPanel.java
index 3f054bd..4fbb7d6 100644
--- a/src/main/java/gui/src/panels/StatusPanel/StatusPanel.java
+++ b/src/main/java/gui/src/panels/StatusPanel/StatusPanel.java
@@ -6,6 +6,7 @@
package gui.src.panels.StatusPanel;
import gui.src.constants.GUIConstants;
+import gui.src.interfaces.I_PanelChangeable;
import javax.swing.*;
import java.awt.*;
@@ -13,38 +14,63 @@ import java.awt.*;
public class StatusPanel extends JPanel {
private static StatusPanel instance;
- private final JPanel flowPanel;
+ private final JPanel flowPanelWest;
+ private final JPanel flowPanelEast;
private final JLabel statusLabel;
private final JButton monitoringButton;
private final JButton controllingButton;
- private StatusPanel() {
+ private final JButton nextControllingButton;
+ private final JButton previousControllingButton;
+
+ private StatusPanel(I_PanelChangeable mainFrame) {
this.statusLabel = new JLabel("Status: Disconnected");
- this.monitoringButton = MonitoringButton.getInstance();
- this.controllingButton = ControllingButton.getInstance();
+ this.monitoringButton = MonitoringButton.getInstance(mainFrame);
+ this.controllingButton = ControllingButton.getInstance(mainFrame);
+
+ this.nextControllingButton = NextButton.getInstance();
+ this.previousControllingButton = PreviousButton.getInstance();
this.monitoringButton.setVisible(false);
this.controllingButton.setVisible(false);
- this.flowPanel = new JPanel();
- this.flowPanel.setLayout(new FlowLayout());
- this.flowPanel.add(this.statusLabel);
- this.flowPanel.add(this.monitoringButton);
- this.flowPanel.add(this.controllingButton);
+ this.nextControllingButton.setVisible(false);
+ this.previousControllingButton.setVisible(false);
+
+ this.flowPanelWest = new JPanel();
+ this.flowPanelWest.setLayout(new FlowLayout());
+ this.flowPanelWest.add(this.statusLabel);
+ this.flowPanelWest.add(this.monitoringButton);
+ this.flowPanelWest.add(this.controllingButton);
GridBagConstraints flowPanelConstraints = new GridBagConstraints();
flowPanelConstraints.anchor = GridBagConstraints.WEST;
- flowPanelConstraints.weightx = 1;
+ flowPanelConstraints.gridx = 0;
+ flowPanelConstraints.weightx = 0.5;
flowPanelConstraints.weighty = 1;
flowPanelConstraints.insets = new Insets(0, 0, 0, 0);
this.setLayout(new GridBagLayout());
- this.add(this.flowPanel, flowPanelConstraints);
+ this.add(this.flowPanelWest, flowPanelConstraints);
+
+ this.flowPanelEast = new JPanel();
+ this.flowPanelEast.setLayout(new FlowLayout());
+ this.flowPanelEast.add(this.previousControllingButton);
+ this.flowPanelEast.add(this.nextControllingButton);
+
+ GridBagConstraints flowPanelConstraintsEast = new GridBagConstraints();
+ flowPanelConstraintsEast.anchor = GridBagConstraints.EAST;
+ flowPanelConstraintsEast.gridx = 1;
+ flowPanelConstraintsEast.weightx = 0.5;
+ flowPanelConstraintsEast.weighty = 1;
+ flowPanelConstraintsEast.insets = new Insets(0, 0, 0, 0);
+ this.setLayout(new GridBagLayout());
+ this.add(this.flowPanelEast, flowPanelConstraintsEast);
}
- public static StatusPanel getInstance() {
+ public static StatusPanel getInstance(I_PanelChangeable mainFrame) {
if (null == instance) {
- instance = new StatusPanel();
+ instance = new StatusPanel(mainFrame);
}
return instance;
}
@@ -70,4 +96,9 @@ public class StatusPanel extends JPanel {
}break;
}
}
+
+ public void setPreviousNextButtonsVisible(boolean isVisble) {
+ this.previousControllingButton.setVisible(isVisble);
+ this.nextControllingButton.setVisible(isVisble);
+ }
}
diff --git a/src/main/java/main/src/Main.java b/src/main/java/main/src/Main.java
index ec0ea87..f910141 100644
--- a/src/main/java/main/src/Main.java
+++ b/src/main/java/main/src/Main.java
@@ -1,30 +1,91 @@
/**
* @author Aaron Moser
* @date 31.10.2023
+ * @lastCHange 06.01.2024
*/
package main.src;
-import controller.src.Controller;
import controller.src.ControllerThread;
-
+import controller.src.interfaces.I_Controller;
+import gui.src.I_View;
import gui.src.ViewThread;
-import model.src.ModelRepresentation;
+import model.src.I_Model;
+import model.src.Model;
-import queues.src.ControllerToViewQueue;
-import queues.src.ViewToControllerQueue;
+import presenter.src.PresenterThread;
+import presenter.src.interfaces.I_Presenter;
+
+import queues.src.Controller_To_Presenter_Queue;
+import queues.src.Presenter_To_Controller_Queue;
+import queues.src.Presenter_To_View_Queue;
+import queues.src.ViewEventManager_To_Controller_Queue;
+import queues.src.ViewEventManager_To_Presenter_Queue;
+import queues.src.View_To_ViewEventManager_Queue;
+
+import viewEventManager.src.ViewEventManagerThread;
+import viewEventManager.src.interfaces.I_ViewEventManager;
+
+import viewModel.src.enums.E_Language;
+import viewModel.src.enums.E_Status;
+import viewModel.src.informations.StatusPanel_Information;
+import viewModel.src.interfaces.I_ViewModel;
+import viewModel.src.models.ConnectToServerPanel_ViewModel;
+import viewModel.src.models.ControllingPanel_ViewModel;
+import viewModel.src.models.MonitoringPanel_ViewModel;
+import viewModel.src.models.StatusPanel_ViewModel;
+import viewModel.src.models.ViewModel;
public final class Main {
public static void main(String[] args) {
- ControllerToViewQueue.getInstance();
- ViewToControllerQueue.getInstance();
- ViewThread.getInstance().start();
+ Controller_To_Presenter_Queue controller_to_presenter_queue = new Controller_To_Presenter_Queue();
- ModelRepresentation model = new ModelRepresentation();
+ ViewEventManager_To_Controller_Queue viewEventManager_to_controller_queue = new ViewEventManager_To_Controller_Queue();
+ ViewEventManager_To_Presenter_Queue viewEventManager_to_presenter_queue = new ViewEventManager_To_Presenter_Queue();
- Controller controller = new ControllerThread(model);
+ Presenter_To_Controller_Queue presenter_to_controller_queue = new Presenter_To_Controller_Queue();
+ Presenter_To_View_Queue presenter_to_view_queue = new Presenter_To_View_Queue();
+
+ View_To_ViewEventManager_Queue view_to_viewEventManager_queue = new View_To_ViewEventManager_Queue();
+
+ I_Model model = new Model();
+
+ I_ViewModel viewModel = new ViewModel(
+ E_Language.German,
+ new StatusPanel_ViewModel(new StatusPanel_Information(E_Language.German, E_Status.Disconnected)),
+ new ConnectToServerPanel_ViewModel(E_Language.German),
+ new MonitoringPanel_ViewModel(E_Language.German),
+ new ControllingPanel_ViewModel(E_Language.German));
+
+ I_Presenter presenter = new PresenterThread(
+ model,
+ viewModel,
+ viewEventManager_to_presenter_queue,
+ presenter_to_controller_queue,
+ controller_to_presenter_queue,
+ presenter_to_view_queue);
+
+ I_Controller controller = new ControllerThread(
+ model,
+ viewEventManager_to_controller_queue,
+ controller_to_presenter_queue,
+ presenter_to_controller_queue);
+
+ I_ViewEventManager viewEventManager = new ViewEventManagerThread(
+ viewEventManager_to_controller_queue,
+ viewEventManager_to_presenter_queue,
+ view_to_viewEventManager_queue);
+
+ I_View view = new ViewThread(
+ viewModel,
+ presenter_to_view_queue,
+ view_to_viewEventManager_queue);
+
+ viewEventManager.start();
controller.start();
+ presenter.start();
+ view.start();
}
}
\ No newline at end of file
diff --git a/src/main/java/model/src/I_Model.java b/src/main/java/model/src/I_Model.java
new file mode 100644
index 0000000..c3114d2
--- /dev/null
+++ b/src/main/java/model/src/I_Model.java
@@ -0,0 +1,14 @@
+/**
+ * @author Aaron Moser
+ * @date 01.12.2023
+ */
+package model.src;
+
+import model.src.NFTable.NFTablesModel;
+
+public interface I_Model {
+ public int getFetchID();
+ public NetworkModel getNetworkModel();
+ public NFTablesModel getNFTablesModel();
+ public ConnectionModel getConnectionModel();
+}
diff --git a/src/main/java/model/src/Model.java b/src/main/java/model/src/Model.java
index 463a9cd..033d152 100644
--- a/src/main/java/model/src/Model.java
+++ b/src/main/java/model/src/Model.java
@@ -1,11 +1,42 @@
/**
* @author Aaron Moser
* @date 01.12.2023
+ * @lastChange 04.01.2024
*/
package model.src;
-public interface Model {
- public NetworkModel getNetworkModel();
- public NFTablesModel getNFTablesModel();
- public ConnectionModel getConnectionModel();
+import model.src.NFTable.NFTablesModel;
+
+public class Model implements I_Model {
+
+ private int actualFetchID = 0;
+ private NetworkModel networkModel;
+ private NFTablesModel nfTablesModel;
+ private ConnectionModel connectionModel;
+
+ public Model() {
+ this.networkModel = new NetworkModel();
+ this.nfTablesModel = NFTablesModel.getInstance();
+ this.connectionModel = new ConnectionModel();
+ }
+
+ @Override
+ public synchronized NetworkModel getNetworkModel() {
+ return this.networkModel;
+ }
+
+ @Override
+ public synchronized NFTablesModel getNFTablesModel() {
+ return this.nfTablesModel;
+ }
+
+ @Override
+ public synchronized ConnectionModel getConnectionModel() {
+ return this.connectionModel;
+ }
+
+ @Override
+ public int getFetchID() {
+ return this.actualFetchID;
+ }
}
diff --git a/src/main/java/model/src/ModelConstants.java b/src/main/java/model/src/ModelConstants.java
index 3157ba8..3cef736 100644
--- a/src/main/java/model/src/ModelConstants.java
+++ b/src/main/java/model/src/ModelConstants.java
@@ -4,6 +4,7 @@ public class ModelConstants {
public enum AccessModifier {
ReadAllEntries,
WriteEntry,
+ WriteEntries,
DeleteEntry,
DeleteAllEntries
}
diff --git a/src/main/java/model/src/ModelRepresentation.java b/src/main/java/model/src/ModelRepresentation.java
deleted file mode 100644
index 5d5de91..0000000
--- a/src/main/java/model/src/ModelRepresentation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 01.12.2023
- */
-package model.src;
-
-public class ModelRepresentation implements Model {
- private NetworkModel networkModel;
- private NFTablesModel nfTablesModel;
- private ConnectionModel connectionModel;
-
- public ModelRepresentation() {
- this.networkModel = new NetworkModel();
- this.nfTablesModel = new NFTablesModel();
- this.connectionModel = new ConnectionModel();
- }
-
- public synchronized NetworkModel getNetworkModel() {
- return this.networkModel;
- }
-
- public synchronized NFTablesModel getNFTablesModel() {
- return this.nfTablesModel;
- }
-
- public synchronized ConnectionModel getConnectionModel() {
- return this.connectionModel;
- }
-}
diff --git a/src/main/java/model/src/NFTable/NFTChain.java b/src/main/java/model/src/NFTable/NFTChain.java
new file mode 100644
index 0000000..228c727
--- /dev/null
+++ b/src/main/java/model/src/NFTable/NFTChain.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 05.01.2024
+ */
+package model.src.NFTable;
+
+public record NFTChain(String family, String name, String tableName, int handle, NFTExpression expr) {
+
+}
diff --git a/src/main/java/model/src/NFTable/NFTExpression.java b/src/main/java/model/src/NFTable/NFTExpression.java
new file mode 100644
index 0000000..b1e89ab
--- /dev/null
+++ b/src/main/java/model/src/NFTable/NFTExpression.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 05.01.2024
+ */
+package model.src.NFTable;
+
+public record NFTExpression(String action, String target) {
+
+}
diff --git a/src/main/java/model/src/NFTable/NFTRule.java b/src/main/java/model/src/NFTable/NFTRule.java
new file mode 100644
index 0000000..04181ca
--- /dev/null
+++ b/src/main/java/model/src/NFTable/NFTRule.java
@@ -0,0 +1,5 @@
+package model.src.NFTable;
+
+public record NFTRule(String family, String tableName, String chainName, int handle, NFTExpression expr) {
+
+}
diff --git a/src/main/java/model/src/NFTable/NFTable.java b/src/main/java/model/src/NFTable/NFTable.java
new file mode 100644
index 0000000..1fd859a
--- /dev/null
+++ b/src/main/java/model/src/NFTable/NFTable.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 05.01.2024
+ */
+package model.src.NFTable;
+
+public record NFTable(String family, String name, int handle) {
+
+}
diff --git a/src/main/java/model/src/NFTable/NFTablesModel.java b/src/main/java/model/src/NFTable/NFTablesModel.java
new file mode 100644
index 0000000..6ca3a1a
--- /dev/null
+++ b/src/main/java/model/src/NFTable/NFTablesModel.java
@@ -0,0 +1,99 @@
+/**
+ * @author Aaron Moser
+ * @date 01.12.2023
+ * @lastChange 05.01.2024
+ */
+package model.src.NFTable;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import model.src.ModelConstants.AccessModifier;
+
+public final class NFTablesModel {
+ private static NFTablesModel instance = null;
+
+ private LinkedList tables = null;
+ private HashMap> chains = null;
+ private HashMap> rules = null;
+
+ private NFTablesModel() {
+ this.tables = new LinkedList();
+ this.chains = new HashMap>();
+ this.rules = new HashMap>();
+ }
+
+ public static synchronized NFTablesModel getInstance() {
+ if (instance == null) {
+ instance = new NFTablesModel();
+ }
+ return instance;
+ }
+
+ public synchronized LinkedList accessTables(AccessModifier am, LinkedList newTables) {
+ switch (am) {
+ case AccessModifier.ReadAllEntries: {
+ return getTables();
+ }
+ case AccessModifier.WriteEntries: {
+ this.tables = new LinkedList(newTables);
+ }break;
+ default: {
+ // Do nothing in other cases.
+ }break;
+ }
+ return null;
+ }
+
+ private LinkedList getTables() {
+ return new LinkedList(this.tables);
+ }
+
+ public synchronized LinkedList accessChains(AccessModifier am, LinkedList newChains, String tableName) {
+ switch (am) {
+ case AccessModifier.ReadAllEntries: {
+ return getChains(tableName);
+ }
+ case AccessModifier.WriteEntries: {
+ this.chains.put(tableName, new LinkedList(newChains));
+ }break;
+ default: {
+ // Do nothing in other cases.
+ }break;
+ }
+ return null;
+ }
+
+ private LinkedList getChains(String table) {
+ LinkedList maybeChains = this.chains.get(table);
+ if (maybeChains != null) {
+ return new LinkedList(maybeChains);
+ } else {
+ return null;
+ }
+ }
+
+ public synchronized LinkedList accessRules(AccessModifier am, LinkedList newRules, String chainName) {
+ switch (am) {
+ case AccessModifier.ReadAllEntries: {
+ return getRules(chainName);
+ }
+ case AccessModifier.WriteEntries: {
+ this.rules.put(chainName, new LinkedList(newRules));
+ }break;
+ default: {
+ // Do nothing in other cases.
+ }break;
+ }
+ return null;
+ }
+
+ private LinkedList getRules(String chain) {
+ LinkedList maybeRules = this.rules.get(chain);
+ if (maybeRules != null) {
+ return new LinkedList(maybeRules);
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/model/src/NFTablesModel.java b/src/main/java/model/src/NFTablesModel.java
deleted file mode 100644
index e20dfc8..0000000
--- a/src/main/java/model/src/NFTablesModel.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 01.12.2023
- */
-package model.src;
-
-import controller.src.DataProcessing.nftablesProcessing.NFTableInformation;
-import model.src.ModelConstants.AccessModifier;
-
-public final class NFTablesModel {
- private NFTableInformation nfTableInformation = null;
-
- public NFTablesModel() {}
-
- public synchronized NFTableInformation accessNFTConfiguration(AccessModifier accessModifier, NFTableInformation nftInf) {
- switch (accessModifier) {
- case ReadAllEntries: {
- return new NFTableInformation(nfTableInformation);
- }//break;
- case WriteEntry: {
- this.nfTableInformation = new NFTableInformation(nftInf);
- }break;
- case DeleteAllEntries: {
- this.nfTableInformation = new NFTableInformation();
- }break;
- case DeleteEntry: // Intended fall through
- default: {
- }break;
- }
- return null;
- }
-}
diff --git a/src/main/java/presenter/src/PresenterThread.java b/src/main/java/presenter/src/PresenterThread.java
new file mode 100644
index 0000000..abda07d
--- /dev/null
+++ b/src/main/java/presenter/src/PresenterThread.java
@@ -0,0 +1,106 @@
+package presenter.src;
+
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import controller.src.events.UpdateViewModel;
+import controller.src.interfaces.I_ControllerEvent;
+import model.src.I_Model;
+import presenter.src.interfaces.I_Presenter;
+import queues.src.Controller_To_Presenter_Queue;
+import queues.src.Presenter_To_Controller_Queue;
+import queues.src.Presenter_To_View_Queue;
+import queues.src.ViewEventManager_To_Presenter_Queue;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+import viewEventManager.src.events.ZZ_General.ZZ_EmptyViewEvent;
+import viewEventManager.src.events.ZZ_General.ZZ_FetchCompleted;
+import viewModel.src.interfaces.I_ViewModel;
+
+public class PresenterThread extends Thread implements I_Presenter {
+ private I_Model model = null;
+ private I_ViewModel viewModel = null;
+
+ private ViewEventManager_To_Presenter_Queue viewEventManager_To_Presenter_Queue = null;
+ private Presenter_To_Controller_Queue presenter_To_Controller_Queue = null;
+ private Controller_To_Presenter_Queue controller_To_Presenter_Queue = null;
+ private Presenter_To_View_Queue presenter_To_View_Queue = null;
+
+ private Queue fetchQueue = new ConcurrentLinkedQueue();
+
+ public PresenterThread(
+ I_Model model,
+ I_ViewModel viewModel,
+ ViewEventManager_To_Presenter_Queue viewEventManager_To_Presenter_Queue,
+ Presenter_To_Controller_Queue presenter_To_Controller_Queue,
+ Controller_To_Presenter_Queue controller_To_Presenter_Queue,
+ Presenter_To_View_Queue presenter_To_View_Queue) {
+
+ this.model = model;
+ this.viewModel = viewModel;
+
+ this.viewEventManager_To_Presenter_Queue = viewEventManager_To_Presenter_Queue;
+ this.presenter_To_Controller_Queue = presenter_To_Controller_Queue;
+ this.controller_To_Presenter_Queue = controller_To_Presenter_Queue;
+ this.presenter_To_View_Queue = presenter_To_View_Queue;
+ }
+
+ @Override
+ public void run() {
+ I_ViewEvent viewEvent = new ZZ_EmptyViewEvent();
+
+ while (viewEvent.getEventType() != E_ViewEvent.ZZ_ExitApplication) {
+
+ I_ControllerEvent controllerEvent = controller_To_Presenter_Queue.poll();
+
+ handleControllerEvent(controllerEvent);
+
+ viewEvent = viewEventManager_To_Presenter_Queue.poll();
+
+ handleViewEvent(viewEvent);
+
+ if (viewEvent == null) {
+ viewEvent = new ZZ_EmptyViewEvent();
+ }
+ }
+ }
+
+ private void handleControllerEvent(I_ControllerEvent controllerEvent) {
+ if (controllerEvent != null) {
+ switch (controllerEvent.getEventType()) {
+ case ConnectToServerSuccessful: {
+
+ }break;
+ case UpdateViewModel: {
+ UpdateViewModel event = (UpdateViewModel)controllerEvent;
+ fetchQueue.add(event.fetchID());
+ // TODO update viewModel with data from model
+ }break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ private void handleViewEvent(I_ViewEvent viewEvent) {
+ if (viewEvent != null) {
+ switch (viewEvent.getEventType()) {
+ case AA_ConnectToServerButtonGotPressed: {
+
+ }break;
+ case ZZ_FetchCompleted: {
+ ZZ_FetchCompleted event = (ZZ_FetchCompleted)viewEvent;
+ if (event.fetchID() == fetchQueue.peek()) {
+ fetchQueue.poll();
+ } else {
+ // TODO error
+ }
+ }break;
+
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git a/src/main/java/presenter/src/enums/E_PresenterEvent.java b/src/main/java/presenter/src/enums/E_PresenterEvent.java
new file mode 100644
index 0000000..c08efb7
--- /dev/null
+++ b/src/main/java/presenter/src/enums/E_PresenterEvent.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 07.01.2024
+ * @lastChange 07.01.2024
+ */
+package presenter.src.enums;
+
+public enum E_PresenterEvent {
+ FetchData
+}
diff --git a/src/main/java/presenter/src/events/FetchData.java b/src/main/java/presenter/src/events/FetchData.java
new file mode 100644
index 0000000..3d11b38
--- /dev/null
+++ b/src/main/java/presenter/src/events/FetchData.java
@@ -0,0 +1,18 @@
+/**
+ * @author Aaron Moser
+ * @date 07.01.2024
+ * @lastChange 07.01.2024
+ */
+package presenter.src.events;
+
+import presenter.src.enums.E_PresenterEvent;
+import presenter.src.interfaces.I_PresenterEvent;
+
+public final record FetchData(int id) implements I_PresenterEvent {
+
+ @Override
+ public E_PresenterEvent getType() {
+ return E_PresenterEvent.FetchData;
+ }
+
+}
diff --git a/src/main/java/presenter/src/interfaces/I_Presenter.java b/src/main/java/presenter/src/interfaces/I_Presenter.java
new file mode 100644
index 0000000..19ec2fc
--- /dev/null
+++ b/src/main/java/presenter/src/interfaces/I_Presenter.java
@@ -0,0 +1,7 @@
+package presenter.src.interfaces;
+
+import gui.src.I_View;
+
+public interface I_Presenter {
+ public void start();
+}
diff --git a/src/main/java/presenter/src/interfaces/I_PresenterEvent.java b/src/main/java/presenter/src/interfaces/I_PresenterEvent.java
new file mode 100644
index 0000000..1faf9be
--- /dev/null
+++ b/src/main/java/presenter/src/interfaces/I_PresenterEvent.java
@@ -0,0 +1,7 @@
+package presenter.src.interfaces;
+
+import presenter.src.enums.E_PresenterEvent;
+
+public interface I_PresenterEvent {
+ public E_PresenterEvent getType();
+}
diff --git a/src/main/java/queues/src/ControllerToViewQueue.java b/src/main/java/queues/src/ControllerToViewQueue.java
deleted file mode 100644
index aff54f5..0000000
--- a/src/main/java/queues/src/ControllerToViewQueue.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 04.12.2023
- */
-package queues.src;
-
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import data.src.ControllerToView.ControllerToViewData;
-
-public class ControllerToViewQueue extends ConcurrentLinkedQueue {
- private static ControllerToViewQueue controllerToViewQueueInstance;
-
- public static ControllerToViewQueue getInstance() {
- if (null == controllerToViewQueueInstance) {
- controllerToViewQueueInstance = new ControllerToViewQueue();
- }
- return controllerToViewQueueInstance;
- }
-}
diff --git a/src/main/java/queues/src/Controller_To_Presenter_Queue.java b/src/main/java/queues/src/Controller_To_Presenter_Queue.java
new file mode 100644
index 0000000..4105912
--- /dev/null
+++ b/src/main/java/queues/src/Controller_To_Presenter_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import controller.src.interfaces.I_ControllerEvent;
+
+public class Controller_To_Presenter_Queue extends ConcurrentLinkedQueue {
+
+}
diff --git a/src/main/java/queues/src/Presenter_To_Controller_Queue.java b/src/main/java/queues/src/Presenter_To_Controller_Queue.java
new file mode 100644
index 0000000..36fbb23
--- /dev/null
+++ b/src/main/java/queues/src/Presenter_To_Controller_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import data.src.Presenter_To_Controller.Presenter_To_Controller_Data;
+
+public class Presenter_To_Controller_Queue extends ConcurrentLinkedQueue{
+
+}
diff --git a/src/main/java/queues/src/Presenter_To_View_Queue.java b/src/main/java/queues/src/Presenter_To_View_Queue.java
new file mode 100644
index 0000000..e88821d
--- /dev/null
+++ b/src/main/java/queues/src/Presenter_To_View_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.LinkedBlockingQueue;
+
+import data.src.Presenter_To_View.Presenter_To_View_Data;
+
+public class Presenter_To_View_Queue extends LinkedBlockingQueue {
+
+}
diff --git a/src/main/java/queues/src/ViewEventManager_To_Controller_Queue.java b/src/main/java/queues/src/ViewEventManager_To_Controller_Queue.java
new file mode 100644
index 0000000..3ab4206
--- /dev/null
+++ b/src/main/java/queues/src/ViewEventManager_To_Controller_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import viewEventManager.src.events.I_ViewEvent;
+
+public class ViewEventManager_To_Controller_Queue extends ConcurrentLinkedQueue {
+
+}
diff --git a/src/main/java/queues/src/ViewEventManager_To_Presenter_Queue.java b/src/main/java/queues/src/ViewEventManager_To_Presenter_Queue.java
new file mode 100644
index 0000000..b270b33
--- /dev/null
+++ b/src/main/java/queues/src/ViewEventManager_To_Presenter_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import viewEventManager.src.events.I_ViewEvent;
+
+public class ViewEventManager_To_Presenter_Queue extends ConcurrentLinkedQueue {
+
+}
diff --git a/src/main/java/queues/src/ViewToControllerQueue.java b/src/main/java/queues/src/ViewToControllerQueue.java
deleted file mode 100644
index cece276..0000000
--- a/src/main/java/queues/src/ViewToControllerQueue.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * @author Aaron Moser
- * @date 04.12.2023
- */
-package queues.src;
-
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import data.src.ViewToController.ViewToControllerData;
-
-/**
- *
- */
-public class ViewToControllerQueue extends ConcurrentLinkedQueue {
- private static ViewToControllerQueue viewToControllerQueueInstance;
-
- public static ViewToControllerQueue getInstance() {
- if (null == viewToControllerQueueInstance) {
- viewToControllerQueueInstance = new ViewToControllerQueue();
- }
- return viewToControllerQueueInstance;
- }
-}
diff --git a/src/main/java/queues/src/View_To_ViewEventManager_Queue.java b/src/main/java/queues/src/View_To_ViewEventManager_Queue.java
new file mode 100644
index 0000000..37b5d93
--- /dev/null
+++ b/src/main/java/queues/src/View_To_ViewEventManager_Queue.java
@@ -0,0 +1,9 @@
+package queues.src;
+
+import java.util.concurrent.LinkedBlockingQueue;
+
+import viewEventManager.src.events.I_ViewEvent;
+
+public class View_To_ViewEventManager_Queue extends LinkedBlockingQueue{
+
+}
diff --git a/src/main/java/viewEventManager/src/ViewEventManagerThread.java b/src/main/java/viewEventManager/src/ViewEventManagerThread.java
new file mode 100644
index 0000000..6c10780
--- /dev/null
+++ b/src/main/java/viewEventManager/src/ViewEventManagerThread.java
@@ -0,0 +1,44 @@
+package viewEventManager.src;
+
+import queues.src.ViewEventManager_To_Controller_Queue;
+import queues.src.ViewEventManager_To_Presenter_Queue;
+import queues.src.View_To_ViewEventManager_Queue;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+import viewEventManager.src.events.ZZ_General.ZZ_EmptyViewEvent;
+import viewEventManager.src.interfaces.I_ViewEventManager;
+
+public final class ViewEventManagerThread extends Thread implements I_ViewEventManager {
+
+ ViewEventManager_To_Controller_Queue viewEventManager_To_Controller_Queue = null;
+ ViewEventManager_To_Presenter_Queue viewEventManager_To_Presenter_Queue = null;
+ View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue = null;
+
+ public ViewEventManagerThread(
+ ViewEventManager_To_Controller_Queue viewEventManager_To_Controller_Queue,
+ ViewEventManager_To_Presenter_Queue viewEventManager_To_Presenter_Queue,
+ View_To_ViewEventManager_Queue view_To_ViewEventManager_Queue) {
+
+ this.viewEventManager_To_Controller_Queue = viewEventManager_To_Controller_Queue;
+ this.viewEventManager_To_Presenter_Queue = viewEventManager_To_Presenter_Queue;
+ this.view_To_ViewEventManager_Queue = view_To_ViewEventManager_Queue;
+ }
+
+ @Override
+ public void run() {
+ I_ViewEvent event = new ZZ_EmptyViewEvent();
+
+ while (event.getEventType() != E_ViewEvent.ZZ_ExitApplication) {
+ try {
+ I_ViewEvent newEvent = this.view_To_ViewEventManager_Queue.take();
+ viewEventManager_To_Controller_Queue.add(newEvent);
+ viewEventManager_To_Presenter_Queue.add(newEvent);
+ event = newEvent;
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+ }
+}
diff --git a/src/main/java/viewEventManager/src/data/AH_RuleData/AH_RuleData.java b/src/main/java/viewEventManager/src/data/AH_RuleData/AH_RuleData.java
new file mode 100644
index 0000000..9694bf3
--- /dev/null
+++ b/src/main/java/viewEventManager/src/data/AH_RuleData/AH_RuleData.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 05.01.2024
+ */
+package viewEventManager.src.data.AH_RuleData;
+
+public final record AH_RuleData(int id) {
+
+}
diff --git a/src/main/java/viewEventManager/src/events/AA_ConnectToServerPanelEvents/AA_ConnectToServerButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AA_ConnectToServerPanelEvents/AA_ConnectToServerButtonGotPressed.java
new file mode 100644
index 0000000..2f018bd
--- /dev/null
+++ b/src/main/java/viewEventManager/src/events/AA_ConnectToServerPanelEvents/AA_ConnectToServerButtonGotPressed.java
@@ -0,0 +1,16 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 07.01.2024
+ */
+package viewEventManager.src.events.AA_ConnectToServerPanelEvents;
+
+import viewEventManager.src.data.AA_ConnectToServerData.AA_ConnectToServerData;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+
+public final record AA_ConnectToServerButtonGotPressed(AA_ConnectToServerData connectToServerData) implements I_ViewEvent {
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AA_ConnectToServerButtonGotPressed;
+ }
+}
diff --git a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToControllingPanelButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToControllingPanelButtonGotPressed.java
index f8146f2..96ada97 100644
--- a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToControllingPanelButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToControllingPanelButtonGotPressed.java
@@ -1,17 +1,17 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AB_StatusPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AB_GoToControllingPanelButtonGotPressed() implements ViewEvent {
+public final record AB_GoToControllingPanelButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AB_GoToControllingPanelButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AB_GoToControllingPanelButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToMonitoringPanelButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToMonitoringPanelButtonGotPressed.java
index 4829667..551decb 100644
--- a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToMonitoringPanelButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToMonitoringPanelButtonGotPressed.java
@@ -1,17 +1,17 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AB_StatusPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AB_GoToMonitoringPanelButtonGotPressed() implements ViewEvent {
+public final record AB_GoToMonitoringPanelButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AB_GoToMonitoringPanelButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AB_GoToMonitoringPanelButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToNextPanelButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToNextPanelButtonGotPressed.java
index 05ec6d2..ae58eac 100644
--- a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToNextPanelButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToNextPanelButtonGotPressed.java
@@ -1,17 +1,17 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AB_StatusPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AB_GoToNextPanelButtonGotPressed() implements ViewEvent {
+public final record AB_GoToNextPanelButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AB_GoToNextPanelButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AB_GoToNextPanelButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToPreviousPanelButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToPreviousPanelButtonGotPressed.java
index b5c719d..bb311fd 100644
--- a/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToPreviousPanelButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AB_StatusPanelEvents/AB_GoToPreviousPanelButtonGotPressed.java
@@ -1,17 +1,17 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AB_StatusPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AB_GoToPreviousPanelButtonGotPressed() implements ViewEvent {
+public final record AB_GoToPreviousPanelButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AB_GoToPreviousPanelButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AB_GoToPreviousPanelButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_ActiveConnectionsPanelWasClicked.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_ActiveConnectionsPanelWasClicked.java
index e13a930..017ee53 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_ActiveConnectionsPanelWasClicked.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_ActiveConnectionsPanelWasClicked.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_ActiveConnectionsPanelWasClicked() implements ViewEvent {
+public final record AC_ActiveConnectionsPanelWasClicked() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_ActiveConnectionsPanelWasClicked;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_ActiveConnectionsPanelWasClicked;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_AlarmIDxGotPressed.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_AlarmIDxGotPressed.java
index 39ceea5..d37e1ad 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_AlarmIDxGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_AlarmIDxGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
import viewEventManager.src.data.AC_AlarmData.AC_AlarmData;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_AlarmIDxGotPressed(AC_AlarmData alarmData) implements ViewEvent {
+public final record AC_AlarmIDxGotPressed(AC_AlarmData alarmData) implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_AlarmIDxGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_AlarmIDxGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_LogsButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_LogsButtonGotPressed.java
index c29b2f3..1e197a1 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_LogsButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_LogsButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_LogsButtonGotPressed() implements ViewEvent {
+public final record AC_LogsButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_LogsButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_LogsButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_RequestsPanelWasClicked.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_RequestsPanelWasClicked.java
index c9f2506..03e4975 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_RequestsPanelWasClicked.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_RequestsPanelWasClicked.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_RequestsPanelWasClicked() implements ViewEvent {
+public final record AC_RequestsPanelWasClicked() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_RequestsPanelWasClicked;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_RequestsPanelWasClicked;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_SystemInformationPanelWasClicked.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_SystemInformationPanelWasClicked.java
index 1983620..a810790 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_SystemInformationPanelWasClicked.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_SystemInformationPanelWasClicked.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_SystemInformationPanelWasClicked() implements ViewEvent {
+public final record AC_SystemInformationPanelWasClicked() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_SystemInformationPanelWasClicked;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_SystemInformationPanelWasClicked;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_TopProtocolsCakePanelWasClicked.java b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_TopProtocolsCakePanelWasClicked.java
index cab9984..ab603ae 100644
--- a/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_TopProtocolsCakePanelWasClicked.java
+++ b/src/main/java/viewEventManager/src/events/AC_MonitoringPanelEvents/AC_TopProtocolsCakePanelWasClicked.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AC_MonitoringPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AC_TopProtocolsCakePanelWasClicked() implements ViewEvent {
+public final record AC_TopProtocolsCakePanelWasClicked() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AC_TopProtocolsCakePanelWasClicked;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AC_TopProtocolsCakePanelWasClicked;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_AddNewPortButoonGotPressed.java b/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_AddNewPortButoonGotPressed.java
index ff61087..fb48c72 100644
--- a/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_AddNewPortButoonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_AddNewPortButoonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AD_ControllingPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AD_AddNewPortButoonGotPressed() implements ViewEvent {
+public final record AD_AddNewPortButoonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AD_AddNewPortButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AD_AddNewPortButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_NFTablesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_NFTablesButtonGotPressed.java
index d42399c..d775a6f 100644
--- a/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_NFTablesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AD_ControllingPanelEvents/AD_NFTablesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AD_ControllingPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AD_NFTablesButtonGotPressed() implements ViewEvent {
+public final record AD_NFTablesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AD_NFTablesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AD_NFTablesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_DownloadConfigurationButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_DownloadConfigurationButtonGotPressed.java
index 777cddf..e6e9d90 100644
--- a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_DownloadConfigurationButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_DownloadConfigurationButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AE_NFTablesFamilyPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AE_DownloadConfigurationButtonGotPressed() implements ViewEvent {
+public final record AE_DownloadConfigurationButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AE_DownloadConfigurationButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AE_DownloadConfigurationButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv4FamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv4FamilyButtonGotPressed.java
index 32a4d18..7947f0e 100644
--- a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv4FamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv4FamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AE_NFTablesFamilyPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AE_IPv4FamilyButtonGotPressed() implements ViewEvent {
+public final record AE_IPv4FamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AE_IPv4FamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AE_IPv4FamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv6FamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv6FamilyButtonGotPressed.java
index 64fdadf..47a98c3 100644
--- a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv6FamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_IPv6FamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AE_NFTablesFamilyPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AE_IPv6FamilyButtonGotPressed() implements ViewEvent {
+public final record AE_IPv6FamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AE_IPv6FamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AE_IPv6FamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_InetFamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_InetFamilyButtonGotPressed.java
index afc6a0b..32264a6 100644
--- a/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_InetFamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AE_NFTablesFamilyPanelEvents/AE_InetFamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AE_NFTablesFamilyPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AE_InetFamilyButtonGotPressed() implements ViewEvent {
+public final record AE_InetFamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AE_InetFamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AE_InetFamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_DownloadTablesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_DownloadTablesButtonGotPressed.java
index 19dbaae..1b31817 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_DownloadTablesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_DownloadTablesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_DownloadTablesButtonGotPressed() implements ViewEvent {
+public final record AF_DownloadTablesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_DownloadTablesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_DownloadTablesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv4FamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv4FamilyButtonGotPressed.java
index 30feafa..bec01dd 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv4FamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv4FamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_IPv4FamilyButtonGotPressed() implements ViewEvent {
+public final record AF_IPv4FamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_IPv4FamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_IPv4FamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv6FamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv6FamilyButtonGotPressed.java
index 75db44e..934405c 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv6FamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_IPv6FamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_IPv6FamilyButtonGotPressed() implements ViewEvent {
+public final record AF_IPv6FamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_IPv6FamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_IPv6FamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_InetFamilyButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_InetFamilyButtonGotPressed.java
index e1e86a8..7088eca 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_InetFamilyButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_InetFamilyButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_InetFamilyButtonGotPressed() implements ViewEvent {
+public final record AF_InetFamilyButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_InetFamilyButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_InetFamilyButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_NewTableButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_NewTableButtonGotPressed.java
index 2371bbc..a9a18f9 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_NewTableButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_NewTableButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_NewTableButtonGotPressed() implements ViewEvent {
+public final record AF_NewTableButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_NewTableButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_NewTableButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_TableIDxGotPressed.java b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_TableIDxGotPressed.java
index 09c675f..b98753e 100644
--- a/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_TableIDxGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AF_NFTablesTablesPanelEvents/AF_TableIDxGotPressed.java
@@ -1,19 +1,19 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AF_NFTablesTablesPanelEvents;
import viewEventManager.src.data.AF_TableData.AF_TableData;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AF_TableIDxGotPressed(AF_TableData tableData) implements ViewEvent {
+public final record AF_TableIDxGotPressed(AF_TableData tableData) implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AF_TableIDxGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AF_TableIDxGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ApplyChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ApplyChangesButtonGotPressed.java
index e0ba92f..0dcbdcc 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ApplyChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ApplyChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_ApplyChangesButtonGotPressed() implements ViewEvent {
+public final record AG_ApplyChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_ApplyChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_ApplyChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ChainIDxGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ChainIDxGotPressed.java
index 030873e..ff7c9c3 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ChainIDxGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_ChainIDxGotPressed.java
@@ -1,19 +1,19 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
import viewEventManager.src.data.AG_ChainData.AG_ChainData;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_ChainIDxGotPressed(AG_ChainData chainData) implements ViewEvent {
+public final record AG_ChainIDxGotPressed(AG_ChainData chainData) implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_ChainIDxGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_ChainIDxGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DeleteTableButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DeleteTableButtonGotPressed.java
index 84afa6f..8d0da4e 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DeleteTableButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DeleteTableButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_DeleteTableButtonGotPressed() implements ViewEvent {
+public final record AG_DeleteTableButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_DeleteTableButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_DeleteTableButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DownloadTableButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DownloadTableButtonGotPressed.java
index b92cdac..6074e1b 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DownloadTableButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_DownloadTableButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_DownloadTableButtonGotPressed() implements ViewEvent {
+public final record AG_DownloadTableButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_DownloadTableButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_DownloadTableButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_NewChainButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_NewChainButtonGotPressed.java
index 8903be4..4947753 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_NewChainButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_NewChainButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_NewChainButtonGotPressed() implements ViewEvent {
+public final record AG_NewChainButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_NewChainButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_NewChainButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_RejectChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_RejectChangesButtonGotPressed.java
index 467e423..2312557 100644
--- a/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_RejectChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AG_NFTablesTablePanelEvent/AG_RejectChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AG_NFTablesTablePanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AG_RejectChangesButtonGotPressed() implements ViewEvent {
+public final record AG_RejectChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AG_RejectChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AG_RejectChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_ApplyChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_ApplyChangesButtonGotPressed.java
index e86c678..6eccb29 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_ApplyChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_ApplyChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_ApplyChangesButtonGotPressed() implements ViewEvent {
+public final record AH_ApplyChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_ApplyChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_ApplyChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DeleteChainButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DeleteChainButtonGotPressed.java
index 3f1929d..3b35171 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DeleteChainButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DeleteChainButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_DeleteChainButtonGotPressed() implements ViewEvent {
+public final record AH_DeleteChainButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_DeleteChainButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_DeleteChainButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DownloadChainButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DownloadChainButtonGotPressed.java
index effd176..ebf1a6b 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DownloadChainButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_DownloadChainButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_DownloadChainButtonGotPressed() implements ViewEvent {
+public final record AH_DownloadChainButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_DownloadChainButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_DownloadChainButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_NewRuleButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_NewRuleButtonGotPressed.java
index 22b84a5..a161330 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_NewRuleButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_NewRuleButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_NewRuleButtonGotPressed() implements ViewEvent {
+public final record AH_NewRuleButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_NewRuleButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_NewRuleButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RejectChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RejectChangesButtonGotPressed.java
index e5f1d86..2e65b46 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RejectChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RejectChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_RejectChangesButtonGotPressed() implements ViewEvent {
+public final record AH_RejectChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_RejectChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_RejectChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RuleIDxGotPressed.java b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RuleIDxGotPressed.java
index 723b356..e5df3d8 100644
--- a/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RuleIDxGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AH_NFTablesChainPanelEvent/AH_RuleIDxGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AH_NFTablesChainPanelEvent;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AH_RuleIDxGotPressed() implements ViewEvent {
+public final record AH_RuleIDxGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AH_RuleIDxGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AH_RuleIDxGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_ApplyChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_ApplyChangesButtonGotPressed.java
index 0f6b104..87b1bf7 100644
--- a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_ApplyChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_ApplyChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AI_NFTablesRulePanel;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AI_ApplyChangesButtonGotPressed() implements ViewEvent {
+public final record AI_ApplyChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AI_ApplyChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AI_ApplyChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DeleteRuleButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DeleteRuleButtonGotPressed.java
index 09c30b8..9cc67ec 100644
--- a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DeleteRuleButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DeleteRuleButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AI_NFTablesRulePanel;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AI_DeleteRuleButtonGotPressed() implements ViewEvent {
+public final record AI_DeleteRuleButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AI_DeleteRuleButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AI_DeleteRuleButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DownloadRuleButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DownloadRuleButtonGotPressed.java
index 37af1f6..9c74eaf 100644
--- a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DownloadRuleButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_DownloadRuleButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AI_NFTablesRulePanel;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AI_DownloadRuleButtonGotPressed() implements ViewEvent {
+public final record AI_DownloadRuleButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AI_DownloadRuleButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AI_DownloadRuleButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_RejectChangesButtonGotPressed.java b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_RejectChangesButtonGotPressed.java
index 5c32f1d..fd7b354 100644
--- a/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_RejectChangesButtonGotPressed.java
+++ b/src/main/java/viewEventManager/src/events/AI_NFTablesRulePanel/AI_RejectChangesButtonGotPressed.java
@@ -1,18 +1,18 @@
/**
* @author Aaron Moser
* @date 05.01.2024
- * @lastChange 05.01.2024
+ * @lastChange 07.01.2024
*/
package viewEventManager.src.events.AI_NFTablesRulePanel;
-import viewEventManager.src.events.EViewEvent;
-import viewEventManager.src.events.ViewEvent;
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
-public final record AI_RejectChangesButtonGotPressed() implements ViewEvent {
+public final record AI_RejectChangesButtonGotPressed() implements I_ViewEvent {
@Override
- public EViewEvent getEventType() {
- return EViewEvent.AI_RejectChangesButtonGotPressed;
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.AI_RejectChangesButtonGotPressed;
}
}
diff --git a/src/main/java/viewEventManager/src/events/E_ViewEvent.java b/src/main/java/viewEventManager/src/events/E_ViewEvent.java
new file mode 100644
index 0000000..6ba3238
--- /dev/null
+++ b/src/main/java/viewEventManager/src/events/E_ViewEvent.java
@@ -0,0 +1,72 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 07.01.2024
+ */
+package viewEventManager.src.events;
+
+import viewEventManager.src.events.ZZ_General.ZZ_FetchCompleted;
+
+public enum E_ViewEvent {
+ // Connect To Server Panel
+ AA_ConnectToServerButtonGotPressed,
+
+ // Status Panel
+ AB_GoToMonitoringPanelButtonGotPressed,
+ AB_GoToControllingPanelButtonGotPressed,
+ AB_GoToPreviousPanelButtonGotPressed,
+ AB_GoToNextPanelButtonGotPressed,
+
+ // Monitoring Panel
+ AC_AlarmIDxGotPressed,
+ AC_ActiveConnectionsPanelWasClicked,
+ AC_SystemInformationPanelWasClicked,
+ AC_RequestsPanelWasClicked,
+ AC_TopProtocolsCakePanelWasClicked,
+ AC_LogsButtonGotPressed,
+
+ // Controlling Panel
+ AD_NFTablesButtonGotPressed,
+ AD_AddNewPortButtonGotPressed,
+
+ // NFTables Family Panel
+ AE_DownloadConfigurationButtonGotPressed,
+ AE_InetFamilyButtonGotPressed,
+ AE_IPv4FamilyButtonGotPressed,
+ AE_IPv6FamilyButtonGotPressed,
+
+ // NFTables Tables Panel
+ AF_DownloadTablesButtonGotPressed,
+ AF_InetFamilyButtonGotPressed,
+ AF_IPv4FamilyButtonGotPressed,
+ AF_IPv6FamilyButtonGotPressed,
+ AF_NewTableButtonGotPressed,
+ AF_TableIDxGotPressed,
+
+ // NFTables Table Panel
+ AG_DownloadTableButtonGotPressed,
+ AG_NewChainButtonGotPressed,
+ AG_ChainIDxGotPressed,
+ AG_ApplyChangesButtonGotPressed,
+ AG_DeleteTableButtonGotPressed,
+ AG_RejectChangesButtonGotPressed,
+
+ // NFTables Chain Panel
+ AH_DownloadChainButtonGotPressed,
+ AH_NewRuleButtonGotPressed,
+ AH_RuleIDxGotPressed,
+ AH_ApplyChangesButtonGotPressed,
+ AH_DeleteChainButtonGotPressed,
+ AH_RejectChangesButtonGotPressed,
+
+ // NFTables Rule Panel
+ AI_DownloadRuleButtonGotPressed,
+ AI_ApplyChangesButtonGotPressed,
+ AI_DeleteRuleButtonGotPressed,
+ AI_RejectChangesButtonGotPressed,
+
+ // General
+ ZZ_FetchCompleted,
+ ZZ_ExitApplication,
+ ZZ_None
+}
\ No newline at end of file
diff --git a/src/main/java/viewEventManager/src/events/I_ViewEvent.java b/src/main/java/viewEventManager/src/events/I_ViewEvent.java
new file mode 100644
index 0000000..083f640
--- /dev/null
+++ b/src/main/java/viewEventManager/src/events/I_ViewEvent.java
@@ -0,0 +1,10 @@
+/**
+ * @author Aaron Moser
+ * @date 05.01.2024
+ * @lastChange 07.01.2024
+ */
+package viewEventManager.src.events;
+
+public interface I_ViewEvent {
+ public E_ViewEvent getEventType();
+}
diff --git a/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_EmptyViewEvent.java b/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_EmptyViewEvent.java
new file mode 100644
index 0000000..0736510
--- /dev/null
+++ b/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_EmptyViewEvent.java
@@ -0,0 +1,13 @@
+package viewEventManager.src.events.ZZ_General;
+
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+
+public final record ZZ_EmptyViewEvent() implements I_ViewEvent {
+
+ @Override
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.ZZ_None;
+ }
+
+}
diff --git a/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_FetchCompleted.java b/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_FetchCompleted.java
new file mode 100644
index 0000000..e694ff8
--- /dev/null
+++ b/src/main/java/viewEventManager/src/events/ZZ_General/ZZ_FetchCompleted.java
@@ -0,0 +1,13 @@
+package viewEventManager.src.events.ZZ_General;
+
+import viewEventManager.src.events.E_ViewEvent;
+import viewEventManager.src.events.I_ViewEvent;
+
+public final record ZZ_FetchCompleted(int fetchID) implements I_ViewEvent {
+
+ @Override
+ public E_ViewEvent getEventType() {
+ return E_ViewEvent.ZZ_FetchCompleted;
+ }
+
+}
diff --git a/src/main/java/viewEventManager/src/interfaces/I_ViewEventManager.java b/src/main/java/viewEventManager/src/interfaces/I_ViewEventManager.java
new file mode 100644
index 0000000..f596faa
--- /dev/null
+++ b/src/main/java/viewEventManager/src/interfaces/I_ViewEventManager.java
@@ -0,0 +1,5 @@
+package viewEventManager.src.interfaces;
+
+public interface I_ViewEventManager {
+ public void start();
+}
diff --git a/src/main/java/viewModel/src/models/StatusPanel_ViewModel.java b/src/main/java/viewModel/src/models/StatusPanel_ViewModel.java
new file mode 100644
index 0000000..739d899
--- /dev/null
+++ b/src/main/java/viewModel/src/models/StatusPanel_ViewModel.java
@@ -0,0 +1,49 @@
+/**
+ * @author Aaron Moser
+ * @date 06.01.2024
+ * @lastChange 06.01.2024
+ */
+package viewModel.src.models;
+
+import viewModel.src.constants.StatusPanel_Constants;
+import viewModel.src.enums.E_StatusPanel_TranslationField;
+import viewModel.src.informations.StatusPanel_Information;
+import viewModel.src.interfaces.I_StatusPanel_ViewModel;
+
+public final record StatusPanel_ViewModel(StatusPanel_Information information) implements I_StatusPanel_ViewModel {
+
+ private String getTranslation(int field) {
+ return StatusPanel_Constants.getTranslation(information.language().ordinal(), field);
+ }
+
+ @Override
+ public String get_StatusLabel_Text() {
+ return getTranslation(E_StatusPanel_TranslationField.Connection_status.ordinal());
+ }
+
+ @Override
+ public String get_ConnectionStatusLabel_Text() {
+ return getTranslation(information.status().ordinal() + E_StatusPanel_TranslationField.Connected.ordinal());
+ }
+
+ @Override
+ public String get_MonitoringPanelButton_Text() {
+ return getTranslation(E_StatusPanel_TranslationField.Monitoring.ordinal());
+ }
+
+ @Override
+ public String get_ControllingPanelButton_Text() {
+ return getTranslation(E_StatusPanel_TranslationField.Controlling.ordinal());
+ }
+
+ @Override
+ public String get_PreviousPanelButton_Text() {
+ return getTranslation(E_StatusPanel_TranslationField.Previous.ordinal());
+ }
+
+ @Override
+ public String get_NextPanelButton_Text() {
+ return getTranslation(E_StatusPanel_TranslationField.Next.ordinal());
+ }
+
+}
diff --git a/src/main/java/viewModel/src/models/ViewModel.java b/src/main/java/viewModel/src/models/ViewModel.java
index 7714272..476de6b 100644
--- a/src/main/java/viewModel/src/models/ViewModel.java
+++ b/src/main/java/viewModel/src/models/ViewModel.java
@@ -13,12 +13,25 @@ import viewModel.src.interfaces.I_MonitoringPanel_ViewModel;
import viewModel.src.interfaces.I_StatusPanel_ViewModel;
import viewModel.src.interfaces.I_ViewModel;
-public final record ViewModel(
- E_Language language,
- I_StatusPanel_ViewModel statusPanel_ViewModel,
- I_ConnectToServerPanel_ViewModel connectToServerPanel_ViewModel,
- I_MonitoringPanel_ViewModel monitoringPanel_ViewModel,
- I_ControllingPanel_ViewModel controllingPanel_ViewModel) implements I_ViewModel {
+public final class ViewModel implements I_ViewModel {
+ E_Language language = E_Language.German;
+ I_StatusPanel_ViewModel statusPanel_ViewModel = null;
+ I_ConnectToServerPanel_ViewModel connectToServerPanel_ViewModel = null;
+ I_MonitoringPanel_ViewModel monitoringPanel_ViewModel = null;
+ I_ControllingPanel_ViewModel controllingPanel_ViewModel = null;
+
+ public ViewModel(
+ E_Language language,
+ I_StatusPanel_ViewModel statusPanel_ViewModel,
+ I_ConnectToServerPanel_ViewModel connectToServerPanel_ViewModel,
+ I_MonitoringPanel_ViewModel monitoringPanel_ViewModel,
+ I_ControllingPanel_ViewModel controllingPanel_ViewModel) {
+ this.language = language;
+ this.statusPanel_ViewModel = statusPanel_ViewModel;
+ this.connectToServerPanel_ViewModel = connectToServerPanel_ViewModel;
+ this.monitoringPanel_ViewModel = monitoringPanel_ViewModel;
+ this.controllingPanel_ViewModel = controllingPanel_ViewModel;
+ }
@Override
public String get_Language_Text() {