Improve layout of portrait image table cell
This commit is contained in:
parent
cdf32d8437
commit
6c1c10a791
|
@ -1,7 +1,10 @@
|
||||||
package ctbrec.ui.tabs.recorded;
|
package ctbrec.ui.tabs.recorded;
|
||||||
|
|
||||||
|
import javafx.geometry.Insets;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.shape.Rectangle;
|
||||||
|
|
||||||
public class ImageTableCell extends ClickableTableCell<Image> {
|
public class ImageTableCell extends ClickableTableCell<Image> {
|
||||||
|
|
||||||
|
@ -13,19 +16,36 @@ public class ImageTableCell extends ClickableTableCell<Image> {
|
||||||
imageView.setPreserveRatio(true);
|
imageView.setPreserveRatio(true);
|
||||||
imageView.prefHeight(64);
|
imageView.prefHeight(64);
|
||||||
imageView.setFitHeight(64);
|
imageView.setFitHeight(64);
|
||||||
|
|
||||||
|
|
||||||
|
setPadding(new Insets(5));
|
||||||
setGraphic(imageView);
|
setGraphic(imageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void requestLayout() {
|
public void requestLayout() {
|
||||||
double columnWidth = getTableColumn().getWidth();
|
TableColumn<?, ?> tc = getTableColumn();
|
||||||
imageView.prefHeight(columnWidth);
|
if (tc != null) {
|
||||||
imageView.setFitHeight(columnWidth);
|
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();
|
super.requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateItem(Image image, boolean empty) {
|
protected void updateItem(Image image, boolean empty) {
|
||||||
imageView.setImage(empty ? null : image);
|
imageView.setImage(empty ? null : image);
|
||||||
|
super.requestLayout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue