From 279b41517af6b30c7c5919758daac5fa1559968a Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 12 Dec 2021 17:58:28 +0100 Subject: [PATCH] #157 - created explicit design handler for warnings --- .../design/ModernDesignProviderImpl.java | 11 +++++++++- .../pad/listener/PadPositionListener.java | 6 +++--- .../design/ModernCartDesignHandlerImpl.scala | 16 ++------------- .../ModernGlobalDesignHandlerImpl.scala | 15 +------------- .../ModernWarningDesignHandlerImpl.scala | 20 +++++++++++++++++++ .../playpad/design/ModernDesignProvider.java | 3 +++ .../modern/ModernCartDesignHandler.java | 4 ++-- .../modern/ModernGlobalDesignHandler.java | 3 ++- ...t.java => ModernWarningDesignHandler.java} | 11 ++++++---- 9 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 PlayWall/src/main/scala/de/tobias/playpad/design/ModernWarningDesignHandlerImpl.scala rename PlayWallCore/src/main/java/de/tobias/playpad/design/modern/{ModernDesignHandlerParent.java => ModernWarningDesignHandler.java} (89%) diff --git a/PlayWall/src/main/java/de/tobias/playpad/design/ModernDesignProviderImpl.java b/PlayWall/src/main/java/de/tobias/playpad/design/ModernDesignProviderImpl.java index 48e5588b..9e96bcc9 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/design/ModernDesignProviderImpl.java +++ b/PlayWall/src/main/java/de/tobias/playpad/design/ModernDesignProviderImpl.java @@ -2,13 +2,22 @@ package de.tobias.playpad.design; import de.tobias.playpad.design.modern.ModernCartDesignHandler; import de.tobias.playpad.design.modern.ModernGlobalDesignHandler; +import de.tobias.playpad.design.modern.ModernWarningDesignHandler; public class ModernDesignProviderImpl implements ModernDesignProvider { - + private ModernWarningDesignHandler warningHandler; private ModernCartDesignHandler cartDesignHandler; private ModernGlobalDesignHandler globalDesignHandler; + @Override + public ModernWarningDesignHandler warning() { + if (warningHandler == null) { + warningHandler = new ModernWarningDesignHandlerImpl(); + } + return warningHandler; + } + @Override public ModernGlobalDesignHandler global() { if (globalDesignHandler == null) { diff --git a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java index e14523b6..e325c787 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java +++ b/PlayWall/src/main/java/de/tobias/playpad/pad/listener/PadPositionListener.java @@ -4,6 +4,7 @@ import de.tobias.playpad.PlayPadMain; import de.tobias.playpad.action.actions.CartAction; import de.tobias.playpad.design.ModernDesignProvider; import de.tobias.playpad.design.modern.ModernGlobalDesignHandler; +import de.tobias.playpad.design.modern.ModernWarningDesignHandler; import de.tobias.playpad.design.modern.model.ModernCartDesign; import de.tobias.playpad.design.modern.model.ModernGlobalDesign; import de.tobias.playpad.pad.Pad; @@ -111,8 +112,7 @@ public class PadPositionListener implements Runnable, IPadPositionListener { final ModernDesignProvider modernDesign = PlayPadMain.getProgramInstance().getModernDesign(); - final ModernGlobalDesignHandler handler = modernDesign.global(); - + final ModernWarningDesignHandler handler = modernDesign.warning(); handler.handleWarning(globalDesign, cartDesign, controller, warningDuration); } @@ -133,7 +133,7 @@ public class PadPositionListener implements Runnable, IPadPositionListener { final ModernDesignProvider modernDesign = PlayPadMain.getProgramInstance().getModernDesign(); - final ModernGlobalDesignHandler handler = modernDesign.global(); + final ModernWarningDesignHandler handler = modernDesign.warning(); handler.stopWarning(controller); controller.getView().setStyle(""); } diff --git a/PlayWall/src/main/scala/de/tobias/playpad/design/ModernCartDesignHandlerImpl.scala b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernCartDesignHandlerImpl.scala index 7d966d51..df9c1917 100644 --- a/PlayWall/src/main/scala/de/tobias/playpad/design/ModernCartDesignHandlerImpl.scala +++ b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernCartDesignHandlerImpl.scala @@ -1,12 +1,10 @@ package de.tobias.playpad.design import de.thecodelabs.utils.application.ApplicationUtils -import de.tobias.playpad.design.modern.model.{ModernCartDesign, ModernGlobalDesign} +import de.tobias.playpad.design.modern.model.ModernCartDesign import de.tobias.playpad.design.modern.{ModernCartDesignHandler, ModernColor} -import de.tobias.playpad.pad.viewcontroller.AbstractPadViewController -import de.tobias.playpad.util.{FadeableColor, Minifier} +import de.tobias.playpad.util.Minifier import de.tobias.playpad.view.PseudoClasses -import javafx.util.Duration import org.springframework.expression.ExpressionParser import org.springframework.expression.common.TemplateParserContext import org.springframework.expression.spel.standard.SpelExpressionParser @@ -54,14 +52,4 @@ class ModernCartDesignHandlerImpl extends ModernCartDesignHandler { context.setVariables(values.asJava) expressionParser.parseExpression(string, new TemplateParserContext("${", "}")).getValue(context, classOf[String]) } - - override def performWarning(design: ModernGlobalDesign, fadeStartColor: FadeableColor, fadeStopColor: FadeableColor, controller: AbstractPadViewController, warningDuration: Duration): Unit = { - if(design.isWarnAnimation) { - ModernDesignAnimator.animateWarn(controller, fadeStartColor, fadeStopColor, warningDuration) - } else { - ModernDesignAnimator.warnFlash(controller) - } - } - - override def stopWarning(controller: AbstractPadViewController): Unit = ModernDesignAnimator.stopAnimation(controller) } diff --git a/PlayWall/src/main/scala/de/tobias/playpad/design/ModernGlobalDesignHandlerImpl.scala b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernGlobalDesignHandlerImpl.scala index ab88fb9b..2f36bbb6 100644 --- a/PlayWall/src/main/scala/de/tobias/playpad/design/ModernGlobalDesignHandlerImpl.scala +++ b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernGlobalDesignHandlerImpl.scala @@ -4,16 +4,13 @@ import de.thecodelabs.utils.application.ApplicationUtils import de.thecodelabs.utils.application.container.PathType import de.tobias.playpad.design.modern.model.{ModernCartDesign, ModernGlobalDesign} import de.tobias.playpad.design.modern.{ModernColor, ModernGlobalDesignHandler} -import de.tobias.playpad.pad.content.play.Durationable -import de.tobias.playpad.pad.viewcontroller.AbstractPadViewController import de.tobias.playpad.project.Project -import de.tobias.playpad.util.{FadeableColor, Minifier} +import de.tobias.playpad.util.Minifier import de.tobias.playpad.view.{ColorPickerView, PseudoClasses} import de.tobias.playpad.viewcontroller.main.IMainViewController import de.tobias.playpad.{DisplayableColor, PlayPadMain} import javafx.scene.paint.Color import javafx.stage.Stage -import javafx.util.Duration import org.springframework.expression.ExpressionParser import org.springframework.expression.common.TemplateParserContext import org.springframework.expression.spel.standard.SpelExpressionParser @@ -90,16 +87,6 @@ class ModernGlobalDesignHandlerImpl extends ModernGlobalDesignHandler with Color expressionParser.parseExpression(string, new TemplateParserContext("${", "}")).getValue(context, classOf[String]) } - override def performWarning(design: ModernGlobalDesign, fadeStartColor: FadeableColor, fadeStopColor: FadeableColor, controller: AbstractPadViewController, warningDuration: Duration): Unit = { - if(design.isWarnAnimation) { - ModernDesignAnimator.animateWarn(controller, fadeStartColor, fadeStopColor, warningDuration) - } else { - ModernDesignAnimator.warnFlash(controller) - } - } - - override def stopWarning(controller: AbstractPadViewController): Unit = ModernDesignAnimator.stopAnimation(controller) - override def getColorInterface(onSelection: Consumer[DisplayableColor]) = new ColorPickerView(null, ModernColor.values.asInstanceOf[Array[DisplayableColor]], onSelection) override def setColor(design: ModernCartDesign, color: DisplayableColor): Unit = { diff --git a/PlayWall/src/main/scala/de/tobias/playpad/design/ModernWarningDesignHandlerImpl.scala b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernWarningDesignHandlerImpl.scala new file mode 100644 index 00000000..5e288d06 --- /dev/null +++ b/PlayWall/src/main/scala/de/tobias/playpad/design/ModernWarningDesignHandlerImpl.scala @@ -0,0 +1,20 @@ +package de.tobias.playpad.design + +import de.tobias.playpad.design.modern.ModernWarningDesignHandler +import de.tobias.playpad.design.modern.model.ModernGlobalDesign +import de.tobias.playpad.pad.viewcontroller.AbstractPadViewController +import de.tobias.playpad.util.FadeableColor +import javafx.util.Duration + +class ModernWarningDesignHandlerImpl extends ModernWarningDesignHandler { + + override def performWarning(design: ModernGlobalDesign, fadeStartColor: FadeableColor, fadeStopColor: FadeableColor, controller: AbstractPadViewController, warningDuration: Duration): Unit = { + if (design.isWarnAnimation) { + ModernDesignAnimator.animateWarn(controller, fadeStartColor, fadeStopColor, warningDuration) + } else { + ModernDesignAnimator.warnFlash(controller) + } + } + + override def stopWarning(controller: AbstractPadViewController): Unit = ModernDesignAnimator.stopAnimation(controller) +} diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/design/ModernDesignProvider.java b/PlayWallCore/src/main/java/de/tobias/playpad/design/ModernDesignProvider.java index dac6d57a..08c41f82 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/design/ModernDesignProvider.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/design/ModernDesignProvider.java @@ -2,9 +2,12 @@ package de.tobias.playpad.design; import de.tobias.playpad.design.modern.ModernCartDesignHandler; import de.tobias.playpad.design.modern.ModernGlobalDesignHandler; +import de.tobias.playpad.design.modern.ModernWarningDesignHandler; public interface ModernDesignProvider { + ModernWarningDesignHandler warning(); + ModernGlobalDesignHandler global(); ModernCartDesignHandler cart(); diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernCartDesignHandler.java b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernCartDesignHandler.java index a2eae3f8..7f7afe2d 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernCartDesignHandler.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernCartDesignHandler.java @@ -2,7 +2,7 @@ package de.tobias.playpad.design.modern; import de.tobias.playpad.design.modern.model.ModernCartDesign; -public interface ModernCartDesignHandler extends ModernDesignHandlerParent { - +public interface ModernCartDesignHandler +{ String generateCss(ModernCartDesign design, String classSuffix, boolean flat); } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernGlobalDesignHandler.java b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernGlobalDesignHandler.java index db2ed86b..826e3409 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernGlobalDesignHandler.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernGlobalDesignHandler.java @@ -5,7 +5,8 @@ import de.tobias.playpad.project.Project; import de.tobias.playpad.viewcontroller.main.IMainViewController; import javafx.stage.Stage; -public interface ModernGlobalDesignHandler extends ModernDesignHandlerParent { +public interface ModernGlobalDesignHandler +{ void applyStyleSheet(Stage stage); diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernDesignHandlerParent.java b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernWarningDesignHandler.java similarity index 89% rename from PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernDesignHandlerParent.java rename to PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernWarningDesignHandler.java index 3f4d1069..f365d231 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernDesignHandlerParent.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/design/modern/ModernWarningDesignHandler.java @@ -8,18 +8,20 @@ import de.tobias.playpad.pad.viewcontroller.AbstractPadViewController; import de.tobias.playpad.util.FadeableColor; import javafx.util.Duration; -public interface ModernDesignHandlerParent +public interface ModernWarningDesignHandler { default void handleWarning(ModernGlobalDesign globalDesign, ModernCartDesign cartDesign, AbstractPadViewController controller, Duration warningDuration) { ModernColor backgroundColor = globalDesign.getBackgroundColor(); ModernColor playColor = globalDesign.getPlayColor(); - if(cartDesign.isEnableCustomBackgroundColor()) { + if(cartDesign.isEnableCustomBackgroundColor()) + { backgroundColor = cartDesign.getBackgroundColor(); } - if(cartDesign.isEnableCustomPlayColor()) { + if(cartDesign.isEnableCustomPlayColor()) + { playColor = cartDesign.getPlayColor(); } @@ -49,6 +51,7 @@ public interface ModernDesignHandlerParent */ void performWarning(ModernGlobalDesign design, FadeableColor fadeStartColor, FadeableColor fadeStopColor, AbstractPadViewController controller, Duration duration); - default void stopWarning(AbstractPadViewController controller) { + default void stopWarning(AbstractPadViewController controller) + { } } -- GitLab