diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/ImageTableCell.java b/client/src/main/java/ctbrec/ui/tabs/recorded/ImageTableCell.java index 030d5c0b..2c0c5b5a 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/ImageTableCell.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/ImageTableCell.java @@ -1,7 +1,10 @@ package ctbrec.ui.tabs.recorded; +import javafx.geometry.Insets; +import javafx.scene.control.TableColumn; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.shape.Rectangle; public class ImageTableCell extends ClickableTableCell { @@ -13,19 +16,36 @@ public class ImageTableCell extends ClickableTableCell { imageView.setPreserveRatio(true); imageView.prefHeight(64); imageView.setFitHeight(64); + + + setPadding(new Insets(5)); setGraphic(imageView); } @Override public void requestLayout() { - double columnWidth = getTableColumn().getWidth(); - imageView.prefHeight(columnWidth); - imageView.setFitHeight(columnWidth); + TableColumn tc = getTableColumn(); + if (tc != null) { + double columnWidth = getTableColumn().getWidth(); + Insets pd = getPadding(); + var height = columnWidth - pd.getTop() - pd.getBottom(); + var width = columnWidth - pd.getLeft() - pd.getRight() - 3; + imageView.prefHeight(height); + imageView.setFitHeight(height); + imageView.prefWidth(width); + imageView.setFitWidth(width); + + var clip = new Rectangle(width, height); + clip.setArcHeight(10); + clip.arcWidthProperty().bind(clip.arcHeightProperty()); + imageView.setClip(clip); + } super.requestLayout(); } @Override protected void updateItem(Image image, boolean empty) { imageView.setImage(empty ? null : image); + super.requestLayout(); } }