From eed532670f4c4acbf08d7ec29f38cf9c93d34457 Mon Sep 17 00:00:00 2001
From: Peter <pt033@hdm-stuttgart.de>
Date: Mon, 11 Dec 2023 13:00:11 +0100
Subject: [PATCH] fix(ui): fix button getting smaller when moving mouse too
 quickly #14

---
 .../Controller/ButtonTransition.java          | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java

diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java
new file mode 100644
index 00000000..2af6c6d6
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java
@@ -0,0 +1,29 @@
+package de.hdm_stuttgart.battlearena.Controller;
+
+import javafx.animation.ScaleTransition;
+import javafx.scene.control.Button;
+import javafx.scene.control.skin.ButtonSkin;
+import javafx.util.Duration;
+
+public class ButtonTransition extends ButtonSkin {
+    public ButtonTransition(Button button) {
+        super(button);
+//        set transition for mouse hovering over button
+        final ScaleTransition fadeIn = new ScaleTransition(Duration.millis(150));
+        fadeIn.setNode(button);
+        fadeIn.setToX(1.1);
+        fadeIn.setToY(1.1);
+        button.setOnMouseEntered(e -> fadeIn.playFromStart());
+
+//        set transition for mouse exiting buttonButtonTransitionScale
+        final ScaleTransition fadeOut = new ScaleTransition(Duration.millis(150));
+        fadeOut.setNode(button);
+        fadeOut.setToX(1.0);
+        fadeOut.setToY(1.0);
+        button.setOnMouseExited(e -> fadeOut.playFromStart());
+
+        button.setScaleX(1.0);
+        button.setScaleY(1.0);
+    }
+}
+
-- 
GitLab