diff --git a/src/main/java/it/unibo/view/LogView.java b/src/main/java/it/unibo/view/LogView.java index 5e073af..3c159e3 100644 --- a/src/main/java/it/unibo/view/LogView.java +++ b/src/main/java/it/unibo/view/LogView.java @@ -1,32 +1,36 @@ package it.unibo.view; -import it.unibo.controller.main.MainController; -import javafx.scene.control.Label; +import javafx.beans.property.ReadOnlyStringWrapper; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; +/** + * View of the log. + */ +public class LogView extends TableView { + private final TableColumn player = new TableColumn<>("Player Name"); + private final TableColumn message = new TableColumn<>("Message"); -public class LogView extends TableView{ - - MainController controller; - final TableColumn player = new TableColumn<>("Player Name"); - final TableColumn log = new TableColumn<>("Message"); - - - + /** + * Constructor. + */ public LogView() { - draw(); - } - - public void draw(){ + player.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().playerName())); + message.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue().message())); super.getChildren().clear(); super.getColumns().add(player); - super.getColumns().add(log); - super.setPlaceholder(new Label("")); + super.getColumns().add(message); + super.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); } - public void update(String playerName, String message){ - super.getItems().set(0, playerName); - super.getItems().set(1, message); + /** + * Update the log, adding a new message. + * + * @param playerName the player name + * @param message the message + */ + public void update(String playerName, String message) { + System.out.println("LogView: " + playerName + " " + message); + super.getItems().add(0, new MessageView(playerName, message)); } } diff --git a/src/main/java/it/unibo/view/Menu.java b/src/main/java/it/unibo/view/Menu.java index f55e09a..e4dfdd4 100644 --- a/src/main/java/it/unibo/view/Menu.java +++ b/src/main/java/it/unibo/view/Menu.java @@ -94,8 +94,6 @@ public Scene getScene() throws IOException { final TableColumn playerName = new TableColumn<>("Player Name"); final int maxTableHeight = 140; final int maxTableWidth = 300; - final int minTableHeight = 0; - final int minTableWidth = 300; final int childrenSpacing = 5; final int maxTextAreaHeight = 200; final int maxTextAreaWidth = 200; @@ -103,7 +101,6 @@ public Scene getScene() throws IOException { playerName.setCellValueFactory(param -> new ReadOnlyStringWrapper(param.getValue())); tableView.getColumns().add(playerName); tableView.setMaxSize(maxTableWidth, maxTableHeight); - tableView.setMinSize(minTableWidth, minTableHeight); playButton.setOnMouseClicked(e -> { if (players.size() >= 1) { @@ -133,7 +130,7 @@ public Scene getScene() throws IOException { final Background background = new Background(backgroundImage); tableView.setItems(players); - playerName.prefWidthProperty().bind(tableView.widthProperty()); + tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); textField.setPromptText("Insert player name"); textField.setMaxSize(maxTextAreaWidth, maxTextAreaHeight); playBox.getChildren().addAll(textField, addButton, tableView, playButton); diff --git a/src/main/java/it/unibo/view/MessageView.java b/src/main/java/it/unibo/view/MessageView.java new file mode 100644 index 0000000..7a6fe1d --- /dev/null +++ b/src/main/java/it/unibo/view/MessageView.java @@ -0,0 +1,4 @@ +package it.unibo.view; + +public final record MessageView(String playerName, String message) { +}