From 45af7dd84819c735e9b604442b3f3c884cd0cab9 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Thu, 3 Dec 2020 20:24:35 +0100 Subject: [PATCH] Show playlist item error in playlist settings --- .../option/pad/PlaylistTabViewController.java | 8 ++++++++ .../java/de/tobias/playpad/pad/content/Playlistable.java | 3 +++ .../plugin/content/pad/ContentPlayerPadContent.scala | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java index 6abd741f..0a80e87d 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java @@ -10,6 +10,7 @@ import de.tobias.playpad.layout.desktop.listener.PadNewContentListener; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.content.PadContentFactory; import de.tobias.playpad.pad.content.PadContentRegistry; +import de.tobias.playpad.pad.content.Playlistable; import de.tobias.playpad.pad.mediapath.MediaPath; import de.tobias.playpad.viewcontroller.PadSettingsTabViewController; import javafx.beans.binding.Bindings; @@ -65,8 +66,15 @@ public class PlaylistTabViewController extends PadSettingsTabViewController { super.updateItem(item, empty); if (!empty) { setText(item.getFileName()); + final Playlistable playlist = (Playlistable) pad.getContent(); + if (!playlist.isLoaded(item)) { + setGraphic(new FontIcon(FontAwesomeType.WARNING)); + } else { + setGraphic(null); + } } else { setText(""); + setGraphic(null); } } }); diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java index ffb6d4ba..6373d324 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/Playlistable.java @@ -1,5 +1,6 @@ package de.tobias.playpad.pad.content; +import de.tobias.playpad.pad.mediapath.MediaPath; import javafx.beans.property.IntegerProperty; public interface Playlistable { @@ -8,4 +9,6 @@ public interface Playlistable { IntegerProperty currentPlayingMediaIndexProperty(); void next(); + + boolean isLoaded(MediaPath mediaPath); } diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala index 23cc16ac..7261d359 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala @@ -172,6 +172,12 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte mediaPlayers.isNotEmpty && !mediaPlayers.stream().anyMatch(player => player.mediaPlayer.getStatus == MediaPlayer.Status.UNKNOWN) } + override def isLoaded(mediaPath: MediaPath): Boolean = mediaPlayers.stream() + .filter(item => item.path == mediaPath) + .findFirst() + .map(container => container.mediaPlayer.getStatus != MediaPlayer.Status.UNKNOWN) + .get() + /** * Load media files. */ -- GitLab