diff --git a/PlayWall/src/main/resources/lang/_de.properties b/PlayWall/src/main/resources/lang/_de.properties index 3761ad40f81ac16680cb603ae2896b17f730b701..5659469960a8fb5226e22da2c1d3e406d41a382c 100755 --- a/PlayWall/src/main/resources/lang/_de.properties +++ b/PlayWall/src/main/resources/lang/_de.properties @@ -210,7 +210,8 @@ Trigger.Cart.Name=Kacheln Trigger.Volume.Name=Lautst\u00E4rke # TriggerPoint - Enum TriggerPoint.START=Start -TriggerPoint.EOF_STOP=Ende/Stop +TriggerPoint.STOP=Stop +TriggerPoint.EOF=Ende (EoF) # Drag and Drop Mode DnDMode.Replace=Ersetzen DnDMode.Duplicate=Duplizieren diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/PadSettingsSerializer.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/PadSettingsSerializer.java index c4a44e1d72c09c8ae1ae8bdd3103f4f68447045f..f3fc932cdbf7cce0760bea4f78bb7955214e8451 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/PadSettingsSerializer.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/PadSettingsSerializer.java @@ -1,5 +1,6 @@ package de.tobias.playpad.pad; +import de.thecodelabs.logger.Logger; import de.thecodelabs.storage.settings.UserDefaults; import de.tobias.playpad.design.modern.model.ModernCartDesign; import de.tobias.playpad.design.modern.serializer.ModernCartDesignSerializer; @@ -92,9 +93,13 @@ public class PadSettingsSerializer { Element triggersElement = settingsElement.element(TRIGGERS_ELEMENT); if (triggersElement != null) { for (Element triggerElement : triggersElement.elements(TRIGGER_ELEMENT)) { - Trigger trigger = new Trigger(); - trigger.load(triggerElement); - padSettings.getTriggers().put(trigger.getTriggerPoint(), trigger); + try { + Trigger trigger = new Trigger(); + trigger.load(triggerElement); + padSettings.getTriggers().put(trigger.getTriggerPoint(), trigger); + } catch (IllegalArgumentException e) { + Logger.error(e); + } } } padSettings.updateTrigger(); // Add missing trigger points diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java index 56eb71c98416217a5bd385a176f4690b084aa86d..5ed71ddb3703d706c5591e14ded194d1481df576 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java @@ -15,7 +15,7 @@ import javafx.util.Duration; public class PadTriggerDurationListener implements ChangeListener<Duration> { - private Pad pad; + private final Pad pad; public PadTriggerDurationListener(Pad pad) { this.pad = pad; @@ -37,7 +37,7 @@ public class PadTriggerDurationListener implements ChangeListener<Duration> { Trigger startTrigger = padSettings.getTrigger(TriggerPoint.START); startTrigger.handle(pad, newValue, pad.getProject(), mainViewController, currentProfile); - Trigger endTrigger = padSettings.getTrigger(TriggerPoint.EOF_STOP); + Trigger endTrigger = padSettings.getTrigger(TriggerPoint.EOF); endTrigger.handle(pad, leftTime, pad.getProject(), mainViewController, currentProfile); } } diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerStatusListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerStatusListener.java index 4517436191751b721ca5cc1ee98b18254fc2a196..f7edfbdf7c483255dc437116d980f14832e59d42 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerStatusListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/trigger/PadTriggerStatusListener.java @@ -14,7 +14,7 @@ import javafx.util.Duration; public class PadTriggerStatusListener implements ChangeListener<PadStatus> { - private Pad pad; + private final Pad pad; public PadTriggerStatusListener(Pad pad) { this.pad = pad; @@ -28,10 +28,10 @@ public class PadTriggerStatusListener implements ChangeListener<PadStatus> { // Execute Trigger if (newValue == PadStatus.PLAY) { // TRIGGER FÜR START executeTrigger(padSettings.getTriggers().get(TriggerPoint.START)); - } else if (newValue == PadStatus.STOP || (oldValue == PadStatus.PLAY && newValue == PadStatus.READY)) { // TRIGGER FÜR STOP - executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF_STOP)); + } else if (newValue == PadStatus.STOP) { // TRIGGER FÜR STOP + executeTrigger(padSettings.getTriggers().get(TriggerPoint.STOP)); } else if (oldValue == PadStatus.PLAY && newValue == PadStatus.READY && pad.isEof()) { // TRIGGER FÜR EOF - executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF_STOP)); + executeTrigger(padSettings.getTriggers().get(TriggerPoint.EOF)); } } else { pad.setIgnoreTrigger(false); diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java index 2f65d793a5a5e39a17060ed14d72f6d2b0cfe773..fcfb8301d15073275508a66799bdc0f2a20244f1 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/Trigger.java @@ -71,7 +71,7 @@ public class Trigger { try { triggerPoint = TriggerPoint.valueOf(element.attributeValue(POINT_ATTR)); } catch (Exception e) { - Logger.error(e); + throw new IllegalArgumentException("Trigger Point " + element.attributeValue(POINT_ATTR) + " not exists"); } for (Element itemElement : element.elements(ITEM_ELEMENT)) { @@ -108,7 +108,9 @@ public class Trigger { for (TriggerItem item : items) { if (triggerPoint == TriggerPoint.START) { handleStartPoint(pad, duration, project, mainViewController, currentProfile, item); - } else if ((triggerPoint == TriggerPoint.EOF_STOP)) { + } else if (triggerPoint == TriggerPoint.STOP) { + handleEndPoint(pad, duration, project, mainViewController, currentProfile, item); + } else if (triggerPoint == TriggerPoint.EOF) { handleEndPoint(pad, duration, project, mainViewController, currentProfile, item); } } @@ -126,7 +128,7 @@ public class Trigger { private void handleStartPoint(Pad pad, Duration duration, Project project, IMainViewController mainViewController, Profile currentProfile, TriggerItem item) { if (pad.getStatus() == PadStatus.PLAY) { - // Mitten drin, wenn die Zeit die gepsiel wurde größer ist als die gesetzte und noch der Trigger noch nicht ausgeführt + // Mitten drin, wenn die Zeit die gespiel wurde größer ist als die gesetzte und noch der Trigger noch nicht ausgeführt // wurde (null) if ((item.getPerformedAt() == null && item.getDurationFromPoint().lessThan(duration)) // Wenn der Trigger am Anfang ist diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/TriggerPoint.java b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/TriggerPoint.java index 30730e5b61922655bbd49ab38a8b6f735967738a..c25fb939321d8b292cf5db86ea7bd7cf3ee7c10d 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/tigger/TriggerPoint.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/tigger/TriggerPoint.java @@ -3,6 +3,7 @@ package de.tobias.playpad.tigger; public enum TriggerPoint { START, - EOF_STOP + STOP, + EOF }