diff --git a/ChatApp/app/build.gradle b/ChatApp/app/build.gradle index 185cd9c..5c8657b 100644 --- a/ChatApp/app/build.gradle +++ b/ChatApp/app/build.gradle @@ -34,7 +34,7 @@ java { } javafx { - modules = ['javafx.graphics', 'javafx.controls', 'javafx.fxml' ] + modules = [ 'javafx.graphics', 'javafx.controls', 'javafx.fxml' ] } application { @@ -75,4 +75,11 @@ tasks.register("client", JavaExec) { mainClass.set("ChatAppClient") classpath = sourceSets.main.runtimeClasspath standardInput = System.in +} + +tasks.register("serverGUI", JavaExec) { + group = "ChatAppGUI" + description = "Runs a GUI for the server" + mainClass.set('server.ServerGUI') + classpath = sourceSets.main.runtimeClasspath } \ No newline at end of file diff --git a/ChatApp/app/src/main/java/network/IPAddressFinder.java b/ChatApp/app/src/main/java/network/IPAddressFinder.java new file mode 100644 index 0000000..4f83368 --- /dev/null +++ b/ChatApp/app/src/main/java/network/IPAddressFinder.java @@ -0,0 +1,35 @@ +package network; + +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.net.InetAddress; + +public class IPAddressFinder { + public static String findIPAddress(){ + try { + Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); + + while (networkInterfaces.hasMoreElements()) { + NetworkInterface networkInterface = networkInterfaces.nextElement(); + + Enumeration inetAddresses = networkInterface.getInetAddresses(); + + while (inetAddresses.hasMoreElements()) { + InetAddress inetAddress = inetAddresses.nextElement(); + + if (!inetAddress.isLoopbackAddress()) { + String ip = inetAddress.getHostAddress(); + + if (ip.startsWith("192.168")) { + return ip; + } + } + } + } + } catch (SocketException e) { + e.printStackTrace(); + } + return "Not Found"; + } +} \ No newline at end of file diff --git a/ChatApp/app/src/main/java/server/ServerGUI.java b/ChatApp/app/src/main/java/server/ServerGUI.java new file mode 100644 index 0000000..217eca0 --- /dev/null +++ b/ChatApp/app/src/main/java/server/ServerGUI.java @@ -0,0 +1,34 @@ +package server; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.stage.Stage; +import javafx.stage.Screen; + +import java.io.IOException; + +public class ServerGUI extends Application { + @Override + public void start(Stage stage) throws IOException { + FXMLLoader fxmlLoader = new FXMLLoader(ServerGUI.class.getResource("hello-view.fxml")); + Scene scene = new Scene(fxmlLoader.load(), 400, 240); + + double screenWidth = Screen.getPrimary().getVisualBounds().getWidth(); + double screenHeight = Screen.getPrimary().getVisualBounds().getHeight(); + + double xPos = screenWidth / 2 - scene.getWidth() / 2; + double yPos = screenHeight / 2 - scene.getHeight() / 2; + + scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm()); + stage.setTitle("Server"); + stage.setScene(scene); + stage.setX(xPos); + stage.setY(yPos); + stage.show(); + } + + public static void main(String[] args) { + launch(); + } +} diff --git a/ChatApp/app/src/main/java/server/ServerGUIController.java b/ChatApp/app/src/main/java/server/ServerGUIController.java new file mode 100644 index 0000000..d22bd2e --- /dev/null +++ b/ChatApp/app/src/main/java/server/ServerGUIController.java @@ -0,0 +1,17 @@ +package server; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import network.IPAddressFinder; + +import java.net.UnknownHostException; + +public class ServerGUIController { + @FXML + private Label IPAddress; + + public void initialize() throws UnknownHostException { + IPAddress.setText("IP Address: " + IPAddressFinder.findIPAddress()); + IPAddress.getStyleClass().add("address"); + } +} diff --git a/ChatApp/app/src/main/resources/server/style.css b/ChatApp/app/src/main/resources/server/style.css new file mode 100644 index 0000000..fe6bb5e --- /dev/null +++ b/ChatApp/app/src/main/resources/server/style.css @@ -0,0 +1,10 @@ +.root{ + -fx-background-color: darkblue; + -fx-text-fill: blue; + -fx-font-weight: bold; +} + +.address { + -fx-text-fill: white; + -fx-font-size: 25px; +} \ No newline at end of file diff --git a/ChatApp/build.gradle b/ChatApp/build.gradle deleted file mode 100644 index e69de29..0000000 diff --git a/ChatApp/gradle.properties b/ChatApp/gradle.properties index a17d436..2c51bf6 100644 --- a/ChatApp/gradle.properties +++ b/ChatApp/gradle.properties @@ -1,6 +1,6 @@ # This file was generated by the Gradle 'init' task. # https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties -org.gradle.configuration-cache=true +org.gradle.configuration-cache=false org.gradle.console=plain org.gradle.logging.level=quiet \ No newline at end of file