From 0d9e2b8c2f04d64b225d2a0976573bf5a11c9a48 Mon Sep 17 00:00:00 2001
From: Alexis Durgnat <alexis.durgnat@etu.hesge.ch>
Date: Sun, 3 Feb 2019 01:32:20 +0100
Subject: [PATCH] image added to chat message

---
 .../ch/hepia/ui/MainWindowController.java     |  41 +++++++++---------
 src/main/resources/img/bubble.png             | Bin 0 -> 16015 bytes
 2 files changed, 21 insertions(+), 20 deletions(-)
 create mode 100644 src/main/resources/img/bubble.png

diff --git a/src/main/java/ch/hepia/ui/MainWindowController.java b/src/main/java/ch/hepia/ui/MainWindowController.java
index 20d2a8a..9e1a5ba 100644
--- a/src/main/java/ch/hepia/ui/MainWindowController.java
+++ b/src/main/java/ch/hepia/ui/MainWindowController.java
@@ -16,8 +16,10 @@ import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.Node;
 import javafx.scene.canvas.Canvas;
+import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.control.*;
 import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
 import javafx.scene.input.KeyCode;
 import javafx.scene.layout.Background;
 import javafx.scene.paint.Color;
@@ -31,9 +33,7 @@ import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.ResourceBundle;
-import javafx.scene.image.Image;
 import javafx.scene.layout.Pane;
-import javafx.scene.layout.StackPane;
 
 public class MainWindowController implements Initializable {
 
@@ -111,32 +111,33 @@ public class MainWindowController implements Initializable {
      */
     private void drawConnection(Connection connection, int x, int y){
         List<Section> sections = connection.getSections();
-        connectionCanvas.getGraphicsContext2D().setFill(Color.RED);
-        connectionCanvas.getGraphicsContext2D().fillText(sections.get(0).getDeparture().getLocation().getName(), x, y - 20);
-        connectionCanvas.getGraphicsContext2D().setFill(Color.BLACK);
-        connectionCanvas.getGraphicsContext2D().fillText(sections.get(0).getDeparture().getDepartureTime().toString(), x, y - 40);
-        connectionCanvas.getGraphicsContext2D().setFill(Color.RED);
-        connectionCanvas.getGraphicsContext2D().fillOval(x - 5, y - 5, 10, 10);
-        connectionCanvas.getGraphicsContext2D().strokeLine(x, y, x + 622 / (sections.size() + 1), y);
+        GraphicsContext gcx = connectionCanvas.getGraphicsContext2D();
+        gcx.setFill(Color.RED);
+        gcx.fillText(sections.get(0).getDeparture().getLocation().getName(), x, y - 20);
+        gcx.setFill(Color.BLACK);
+        gcx.fillText(sections.get(0).getDeparture().getDepartureTime().toString(), x, y - 40);
+        gcx.setFill(Color.RED);
+        gcx.fillOval(x - 5, y - 5, 10, 10);
+        gcx.strokeLine(x, y, x + 622 / (sections.size() + 1), y);
 		for (int i = 0; i < sections.size(); i++){
-			connectionCanvas.getGraphicsContext2D().strokeLine(
+			gcx.strokeLine(
                     x + (622 / (sections.size() + 1)) * (i + 1), y, 622 / (sections.size()), y);
-            connectionCanvas.getGraphicsContext2D().setFill(Color.RED);
-            connectionCanvas.getGraphicsContext2D().fillOval(x + (622 / (sections.size() + 1)) * (i + 1) - 5, y - 5, 10, 10);
+            gcx.setFill(Color.RED);
+            gcx.fillOval(x + (622 / (sections.size() + 1)) * (i + 1) - 5, y - 5, 10, 10);
             
-			connectionCanvas.getGraphicsContext2D().fillText(sections.get(i).getArrival().getLocation().getName(),
+			gcx.fillText(sections.get(i).getArrival().getLocation().getName(),
                     x + (622 / (sections.size() + 1)) * (i + 1), y - 20);
-            connectionCanvas.getGraphicsContext2D().setFill(Color.BLACK);
-			connectionCanvas.getGraphicsContext2D().fillText(sections.get(i).getArrival().getArrivalTime().toString(),
+            gcx.setFill(Color.BLACK);
+			gcx.fillText(sections.get(i).getArrival().getArrivalTime().toString(),
                     x + (622 / (sections.size() + 1)) * (i + 1), y - 40);
             Journey jrn = sections.get(i).getJourney();
             String transportType = "MARCHE";
             if (!(jrn instanceof Journey.EmptyJourney)) {
                 transportType = jrn.getCategory() + ", " + jrn.getNumber();
             }
-            connectionCanvas.getGraphicsContext2D().setFill(Color.BLUE);
-            connectionCanvas.getGraphicsContext2D().fillText(transportType, x + (622 / (sections.size() + 1)) * (i), y - 55);
-            connectionCanvas.getGraphicsContext2D().setFill(Color.RED);    
+            gcx.setFill(Color.BLUE);
+            gcx.fillText(transportType, x + (622 / (sections.size() + 1)) * (i), y - 55);
+            gcx.setFill(Color.RED);    
 		}
     }
 
@@ -147,13 +148,13 @@ public class MainWindowController implements Initializable {
     private void drawMessage(User user, String message){
         Pane p = new Pane();
         p.setMaxWidth(326);
-
+        Image lblImg = new Image(Main.class.getResourceAsStream("/img/bubble.png"));
         Label msg = new Label();
         msg.setWrapText(true);
         msg.setStyle("-fx-padding: 8px");
         msg.setText(message);
         msg.setMaxWidth(310);
-
+        msg.setGraphic(new ImageView(lblImg));
         p.getChildren().add(msg);
         insertMessageIntoQueue();
         chatContainer.getChildren().add(p);
diff --git a/src/main/resources/img/bubble.png b/src/main/resources/img/bubble.png
new file mode 100644
index 0000000000000000000000000000000000000000..98fcb6b83c43d21ba51d30df9f40b1b90c43769c
GIT binary patch
literal 16015
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
SEiY?8Nzc>O&t;ucLK6VH&GOU$

literal 0
HcmV?d00001

-- 
GitLab