Fixed padding of status icon and implemented Tooltip

Additionally added commentary in MessageListCell.
This commit is contained in:
delvh 2020-06-27 18:27:13 +02:00
parent 25b9103e23
commit e6ac95ac14

View File

@ -4,12 +4,11 @@ import java.time.format.DateTimeFormatter;
import java.util.Map; import java.util.Map;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.scene.control.Label; import javafx.scene.control.*;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.stage.PopupWindow.AnchorLocation;
import envoy.data.Message; import envoy.data.Message;
import envoy.data.Message.MessageStatus; import envoy.data.Message.MessageStatus;
@ -51,16 +50,26 @@ public class MessageListCell extends ListCell<Message> {
setText(null); setText(null);
setGraphic(null); setGraphic(null);
} else { } else {
// Creating the underlying VBox, the dateLabel and the textLabel
final var cell = new VBox(new Label(dateFormat.format(message.getCreationDate()))); final var cell = new VBox(new Label(dateFormat.format(message.getCreationDate())));
final var textLabel = new Label(message.getText()); final var textLabel = new Label(message.getText());
textLabel.setWrapText(true); textLabel.setWrapText(true);
cell.getChildren().add(textLabel); cell.getChildren().add(textLabel);
// Setting the message status icon and background color
if (message.getRecipientID() != client.getID()) { if (message.getRecipientID() != client.getID()) {
cell.getChildren().add(new Label("", new ImageView(statusImages.get(message.getStatus())))); final var statusIcon = new Label("", new ImageView(statusImages.get(message.getStatus())));
statusIcon.setPadding(new Insets(1, 0, 5, 5));
cell.getChildren().add(statusIcon);
cell.getStyleClass().add("own-message"); cell.getStyleClass().add("own-message");
} else cell.getStyleClass().add("received-message"); } else cell.getStyleClass().add("received-message");
// Adjusting height and weight of the cell to the corresponding ListView
cell.paddingProperty().setValue(new Insets(5, 20, 5, 20)); cell.paddingProperty().setValue(new Insets(5, 20, 5, 20));
cell.prefWidthProperty().bind(listView.widthProperty().subtract(40)); cell.prefWidthProperty().bind(listView.widthProperty().subtract(40));
// Creating the Tooltip to deselect a message
final var tooltip = new Tooltip("You can select a message by clicking on it \nand deselect it by pressing \"ctrl\" and clicking on it");
tooltip.setWrapText(true);
tooltip.setAnchorLocation(AnchorLocation.WINDOW_TOP_LEFT);
setTooltip(tooltip);
setGraphic(cell); setGraphic(cell);
} }
} }