From dd76ae1f042ece43e14d46247cf396e4ef3cb187 Mon Sep 17 00:00:00 2001 From: Siphalor Date: Fri, 10 Jul 2020 16:21:10 +0200 Subject: [PATCH] Scaling-image-thonk --- .../java/de/siphalor/was/WhatAStorage.java | 4 +- .../was/visual/jfx/ScalingImagePane.java | 36 ++++++ .../was/visual/jfx/StorageSlotController.java | 7 +- src/main/resources/assets/jfx/main.css | 15 ++- .../resources/assets/jfx/storage_slot.fxml | 109 ++++++++---------- 5 files changed, 103 insertions(+), 68 deletions(-) create mode 100644 src/main/java/de/siphalor/was/visual/jfx/ScalingImagePane.java diff --git a/src/main/java/de/siphalor/was/WhatAStorage.java b/src/main/java/de/siphalor/was/WhatAStorage.java index 8c14ab7..e312d68 100644 --- a/src/main/java/de/siphalor/was/WhatAStorage.java +++ b/src/main/java/de/siphalor/was/WhatAStorage.java @@ -101,8 +101,8 @@ public class WhatAStorage { } public void loadGame() { - questGenerator = questManager.get("test"); - //questGenerator = new RandomQuestGenerator(); + //questGenerator = questManager.get("test"); + questGenerator = new RandomQuestGenerator(); quests.clear(); storage = new Storage(GRID_SIZE, GRID_SIZE, GRID_SIZE); balance = new Balance(); diff --git a/src/main/java/de/siphalor/was/visual/jfx/ScalingImagePane.java b/src/main/java/de/siphalor/was/visual/jfx/ScalingImagePane.java new file mode 100644 index 0000000..3851c8d --- /dev/null +++ b/src/main/java/de/siphalor/was/visual/jfx/ScalingImagePane.java @@ -0,0 +1,36 @@ +package de.siphalor.was.visual.jfx; + +import javafx.beans.property.ObjectProperty; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +public class ScalingImagePane extends ScrollPane { + private final ImageView imageView; + + public ScalingImagePane() { + setHbarPolicy(ScrollBarPolicy.NEVER); + setVbarPolicy(ScrollBarPolicy.NEVER); + setFocusTraversable(false); + getStyleClass().add("edge-to-edge"); + + imageView = new ImageView(); + imageView.setPreserveRatio(true); + imageView.setSmooth(true); + imageView.fitWidthProperty().bind(widthProperty()); + imageView.fitHeightProperty().bind(heightProperty()); + + setContent(imageView); + } + + public Image getImage() { + return imageView.getImage(); + } + public void setImage(Image image) { + imageView.setImage(image); + } + + public ObjectProperty imageProperty() { + return imageView.imageProperty(); + } +} diff --git a/src/main/java/de/siphalor/was/visual/jfx/StorageSlotController.java b/src/main/java/de/siphalor/was/visual/jfx/StorageSlotController.java index 55b37f1..b1cdfdc 100644 --- a/src/main/java/de/siphalor/was/visual/jfx/StorageSlotController.java +++ b/src/main/java/de/siphalor/was/visual/jfx/StorageSlotController.java @@ -5,7 +5,6 @@ import javafx.fxml.FXML; import javafx.scene.Parent; import javafx.scene.control.Label; import javafx.scene.image.Image; -import javafx.scene.image.ImageView; import javafx.scene.input.*; @SuppressWarnings("unused") @@ -16,13 +15,13 @@ public class StorageSlotController { @FXML private Parent slot; - public ImageView slot0; + public ScalingImagePane slot0; public Label slot0Title; - public ImageView slot1; + public ScalingImagePane slot1; public Label slot1Title; - public ImageView slot2; + public ScalingImagePane slot2; public Label slot2Title; public StorageSlotController(int x, int y) { diff --git a/src/main/resources/assets/jfx/main.css b/src/main/resources/assets/jfx/main.css index 4c37320..2228248 100644 --- a/src/main/resources/assets/jfx/main.css +++ b/src/main/resources/assets/jfx/main.css @@ -12,7 +12,14 @@ Button.red:pressed { } ScrollPane { - -fx-background-color: inherit; + -fx-background-insets: 0; +} + +ScalingImagePane { + -fx-background-color: transparent; +} +ScalingImagePane > .viewport { + -fx-background-color: transparent; } Label.red { @@ -81,12 +88,12 @@ Label.green { -fx-background-color: #dddddd; } -#storage-grid > * { - -fx-background-color: #ffffff; -} #storage-grid > .drop-hover { -fx-background-color: #eeeeee; } .storage-slot-item-title { + -fx-padding: 0 0 0 5; -fx-end-margin: 10; } +.storage-slot-item-image { +} diff --git a/src/main/resources/assets/jfx/storage_slot.fxml b/src/main/resources/assets/jfx/storage_slot.fxml index f6d4c70..89188ef 100644 --- a/src/main/resources/assets/jfx/storage_slot.fxml +++ b/src/main/resources/assets/jfx/storage_slot.fxml @@ -1,62 +1,55 @@ + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +