Skip to content
Snippets Groups Projects
Commit 023e4e37 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Only show available trigger points

parent da8894ef
No related branches found
No related tags found
No related merge requests found
......@@ -48,11 +48,13 @@ public class TriggerPadTabViewController extends PadSettingsTabViewController im
// Sort the types for the tree view
for (TriggerPoint point : TriggerPoint.values()) {
if (point.isAvailable(pad)) {
Trigger trigger = triggers.get(point);
TreeItem<TriggerDisplayable> triggerItem = new TreeItem<>(new TriggerDisplayable(trigger));
rootItem.getChildren().add(triggerItem);
}
}
treeView.setRoot(rootItem);
}
......
package de.tobias.playpad.tigger;
import de.tobias.playpad.pad.Pad;
import de.tobias.playpad.pad.content.Playlistable;
import java.util.function.Predicate;
public enum TriggerPoint {
START(true),
STOP(false),
EOF(true),
PLAYLIST_NEXT(false);
START(true, pad -> !(pad.getContent() instanceof Playlistable)),
STOP(false, pad -> !(pad.getContent() instanceof Playlistable)),
EOF(true, pad -> !(pad.getContent() instanceof Playlistable)),
PLAYLIST_NEXT(false, pad -> pad.getContent() instanceof Playlistable);
/**
* Defines if a trigger can be run after, before a certain event.
*/
private final boolean timeAppendable;
private final Predicate<Pad> availablePredicate;
TriggerPoint(boolean timeAppendable) {
TriggerPoint(boolean timeAppendable, Predicate<Pad> availablePredicate) {
this.timeAppendable = timeAppendable;
this.availablePredicate = availablePredicate;
}
public boolean isTimeAppendable() {
return timeAppendable;
}
public Predicate<Pad> getAvailablePredicate() {
return availablePredicate;
}
public boolean isAvailable(Pad pad) {
return availablePredicate.test(pad);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment