Browse Source

:bug: Forgot to add the handler for ripple in MFXIconWrapper, adapt test to detect ripple generation

Signed-off-by: Alessadro Parisi <alessandro.parisi406@gmail.com>
Alessadro Parisi 2 years ago
parent
commit
b06c0a2a14

+ 9 - 6
modules/components/src/test/java/unit/buttons/TestButton.java

@@ -46,17 +46,20 @@ public class TestButton {
 	}
 	}
 
 
 	@Test
 	@Test
-	void testSizes(FxRobot robot) throws InterruptedException {
+	void testSizes(FxRobot robot) {
 		// Test Pref
 		// Test Pref
-		button.setMaxSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
+		robot.interact(() -> button.setMaxSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE));
 		assertEquals(snappedBoundWidth(button), button.getWidth());
 		assertEquals(snappedBoundWidth(button), button.getWidth());
 		assertEquals(snappedBoundHeight(button), button.getHeight());
 		assertEquals(snappedBoundHeight(button), button.getHeight());
 
 
 		// Test max
 		// Test max
-		button.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
-		button.applyCss();
-		button.layout();
-		Toolkit.getToolkit().requestNextPulse();
+		robot.interact(() -> {
+			button.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
+			button.applyCss();
+			button.layout();
+			button.requestLayout();
+			Toolkit.getToolkit().requestNextPulse();
+		});
 		assertEquals(100.0, button.getWidth());
 		assertEquals(100.0, button.getWidth());
 		assertEquals(100.0, button.getHeight());
 		assertEquals(100.0, button.getHeight());
 	}
 	}

+ 5 - 4
modules/resources/src/main/java/io/github/palexdev/mfxresources/fonts/MFXIconWrapper.java

@@ -92,6 +92,10 @@ public class MFXIconWrapper extends StackPane {
 			manageChildren();
 			manageChildren();
 		});
 		});
 		size.addListener((observable, oldValue, newValue) -> setPrefSize(newValue.doubleValue(), oldValue.doubleValue()));
 		size.addListener((observable, oldValue, newValue) -> setPrefSize(newValue.doubleValue(), oldValue.doubleValue()));
+		rHandler = e -> {
+			if (e.getButton() == MouseButton.PRIMARY)
+				rg.generateRipple(e);
+		};
 	}
 	}
 
 
 	/**
 	/**
@@ -128,10 +132,7 @@ public class MFXIconWrapper extends StackPane {
 
 
 		rg = new MFXCircleRippleGenerator(this);
 		rg = new MFXCircleRippleGenerator(this);
 		rg.setRipplePositionFunction(positionFunction);
 		rg.setRipplePositionFunction(positionFunction);
-		rHandler = e -> {
-			if (e.getButton() == MouseButton.PRIMARY)
-				rg.generateRipple(e);
-		};
+		addEventHandler(MouseEvent.MOUSE_PRESSED, rHandler);
 		manageChildren();
 		manageChildren();
 		setEnableRipple(true);
 		setEnableRipple(true);
 		return this;
 		return this;

+ 0 - 49
modules/resources/src/main/resources/io/github/palexdev/mfxresources/sass/md3/mfx-light.css

@@ -1,49 +0,0 @@
-/****************************************************************************************************
- * Elevated Buttons
- ****************************************************************************************************/
-.mfx-button.elevated {
-	-fx-font-family: "Roboto Medium";
-	-fx-font-weight: 500;
-	-fx-font-size: 14px;
-	-fx-line-spacing: 20px;
-	-fx-text-fill: #6750A4;
-	-fx-background-color: #f7f2fa;
-	-fx-background-radius: 20px;
-	-fx-pref-height: 40px;
-	-fx-padding: 0px 24px 0px 24px;
-	-fx-graphic-text-gap: 8px;
-}
-
-.mfx-button.elevated:with-icon-left {
-	-fx-padding: 0px 16px 0px 24px;
-}
-
-.mfx-button.elevated:with-icon-right {
-	-fx-padding: 0px 24px 0px 16px;
-}
-
-.mfx-button.elevated .mfx-font-icon {
-	-mfx-color: #6750A4;
-	-mfx-size: 18px;
-}
-
-.mfx-button.elevated:disabled {
-	-fx-background-color: rgba(28, 27, 31, 0.12);
-	-fx-text-fill: rgba(28, 27, 31, 0.38);
-}
-
-.mfx-button.elevated:disabled .mfx-font-icon {
-	-mfx-color: rgba(28, 27, 31, 0.38);
-}
-
-.mfx-button.elevated:hover {
-	-fx-background-color: #e8e0f0;
-}
-
-.mfx-button.elevated:focused {
-	-fx-background-color: #e6dff0;
-}
-
-.mfx-button.elevated:pressed {
-	-fx-background-color: #e6dff0;
-}

+ 9 - 1
modules/resources/src/test/java/interactive/IconsTests.java

@@ -41,9 +41,13 @@ import org.testfx.api.FxRobot;
 import org.testfx.api.FxToolkit;
 import org.testfx.api.FxToolkit;
 import org.testfx.framework.junit5.ApplicationExtension;
 import org.testfx.framework.junit5.ApplicationExtension;
 import org.testfx.framework.junit5.Start;
 import org.testfx.framework.junit5.Start;
+import org.testfx.util.WaitForAsyncUtils;
 
 
 import java.util.Optional;
 import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.atomic.AtomicReference;
 
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
@@ -186,7 +190,7 @@ public class IconsTests {
 	}
 	}
 
 
 	@Test
 	@Test
-	void testWrap(FxRobot robot) throws InterruptedException {
+	void testWrap(FxRobot robot) throws InterruptedException, TimeoutException {
 		StackPane root = setupStage();
 		StackPane root = setupStage();
 		MFXIconWrapper wrapper = new MFXFontIcon(FontAwesomeSolid.CIRCLE.getDescription(), 64.0).wrap();
 		MFXIconWrapper wrapper = new MFXFontIcon(FontAwesomeSolid.CIRCLE.getDescription(), 64.0).wrap();
 		robot.interact(() -> root.getChildren().setAll(wrapper));
 		robot.interact(() -> root.getChildren().setAll(wrapper));
@@ -209,15 +213,19 @@ public class IconsTests {
 		));
 		));
 		Thread.sleep(sleep);
 		Thread.sleep(sleep);
 
 
+		AtomicBoolean ripple = new AtomicBoolean(false);
 		robot.interact(() -> {
 		robot.interact(() -> {
 			wrapper.getIcon().setDescription(FontAwesomeRegular.SQUARE.getDescription());
 			wrapper.getIcon().setDescription(FontAwesomeRegular.SQUARE.getDescription());
 			wrapper.setStyle("-mfx-enable-ripple: true;\n-mfx-round: true;\n");
 			wrapper.setStyle("-mfx-enable-ripple: true;\n-mfx-round: true;\n");
 		});
 		});
 		wrapper.getRippleGenerator().setRippleRadius(128.0);
 		wrapper.getRippleGenerator().setRippleRadius(128.0);
+		wrapper.getRippleGenerator().setOnAnimationFinished(e -> ripple.set(true));
 		assertNotNull(wrapper.getClip());
 		assertNotNull(wrapper.getClip());
 		assertEquals(2, wrapper.getChildren().size());
 		assertEquals(2, wrapper.getChildren().size());
 		robot.clickOn(wrapper);
 		robot.clickOn(wrapper);
+		WaitForAsyncUtils.waitFor(1, TimeUnit.SECONDS, CompletableFuture.supplyAsync(ripple::get));
 		Thread.sleep(sleep);
 		Thread.sleep(sleep);
+		assertTrue(ripple.get());
 
 
 		robot.interact(() -> wrapper.setStyle(null));
 		robot.interact(() -> wrapper.setStyle(null));
 		assertNull(wrapper.getClip());
 		assertNull(wrapper.getClip());