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