diff --git a/graphical-app/pom.xml b/graphical-app/pom.xml
index 284adfd..c994893 100644
--- a/graphical-app/pom.xml
+++ b/graphical-app/pom.xml
@@ -47,6 +47,11 @@
validatorfx
0.5.1
+
+ org.json
+ json
+ 20240303
+
diff --git a/graphical-app/src/main/java/fr/emiko/graphicalapp/HelloController.java b/graphical-app/src/main/java/fr/emiko/graphicalapp/HelloController.java
index c134554..2c99a19 100644
--- a/graphical-app/src/main/java/fr/emiko/graphicalapp/HelloController.java
+++ b/graphical-app/src/main/java/fr/emiko/graphicalapp/HelloController.java
@@ -1,5 +1,13 @@
package fr.emiko.graphicalapp;
+import fr.emiko.graphicsElement.Line;
+import fr.emiko.net.DrawClient;
+import fr.emiko.net.DrawServer;
+import fr.emiko.net.Event;
+import fr.emiko.net.User;
+import javafx.beans.binding.Bindings;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
@@ -7,26 +15,32 @@ import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
-import javafx.scene.control.Label;
+import javafx.scene.control.*;
import javafx.scene.canvas.GraphicsContext;
-import javafx.scene.control.MenuItem;
-import javafx.scene.control.ScrollPane;
-import javafx.scene.control.Slider;
+import javafx.scene.effect.BoxBlur;
import javafx.scene.input.*;
+import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
+import javafx.scene.layout.Priority;
import javafx.scene.paint.Color;
import fr.emiko.graphicsElement.Stroke;
import javafx.scene.robot.Robot;
import javafx.scene.transform.Scale;
import javafx.stage.Modality;
import javafx.stage.Stage;
+import org.json.JSONObject;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.net.URL;
-import java.util.ResourceBundle;
-import java.util.Vector;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class HelloController implements Initializable {
+ private final Pattern hostPortPattern = Pattern.compile("^([-.a-zA-Z0-9]+)(?::([0-9]{1,5}))?$");
public Canvas drawingCanvas;
public MenuItem saveButton;
public MenuItem loadButton;
@@ -36,13 +50,30 @@ public class HelloController implements Initializable {
public ScrollPane scrollPane;
public Label brushSizeLabel;
public Pane pane;
+ public MenuItem hostButton;
+ public MenuItem joinButton;
+ public MenuItem disconnectButton;
+ public SplitPane mainPane;
+ public MenuItem stopHostButton;
+ public ColorPicker colorPicker;
+ public ListView layerListView;
+ public Button addLayerButton;
+ public Button removeLayerButton;
private double posX = 0;
private double posY = 0;
private double mouseX = 0;
private double mouseY = 0;
private Vector strokes = new Vector<>();
- private Vector> lastSaved = new Vector<>();
- private Vector> lines = new Vector<>();
+ private Vector lastSaved = new Vector<>();
+ private Vector lines = new Vector<>();
+ private User user;
+ private boolean connected;
+ private DrawClient client;
+ private ToggleButton hostButtonToggle = new ToggleButton();
+ private DrawServer server;
+ private Canvas currentLayer;
+ private ObservableList