From 84107cab9924b8cc1d2e1073c750471a3f3ef2fb Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Mon, 30 Nov 2020 20:29:40 +0100
Subject: [PATCH] Highlight player zone on settings selection

---
 .../content/ContentPlayerViewController.scala  | 18 ++++++++++++++++--
 .../PlayerInstanceSettingsViewController.scala |  4 ++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala
index 2a504412..f24e07c0 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPlayerViewController.scala
@@ -26,8 +26,10 @@ class ContentPlayerViewController extends NVC {
 
 		setLayoutX(playerInstance.x)
 		setLayoutY(playerInstance.y)
-		setWidth(playerInstance.width)
-		setHeight(playerInstance.height)
+		setMinWidth(playerInstance.width)
+		setMaxWidth(playerInstance.width)
+		setMinHeight(playerInstance.height)
+		setMaxHeight(playerInstance.height)
 
 		def addActivePad(padIndex: PadIndex): Unit = activePlayers.addOne(padIndex)
 
@@ -56,6 +58,14 @@ class ContentPlayerViewController extends NVC {
 			}
 		}
 
+		def highlight(on: Boolean): Unit = {
+			if (on) {
+				setBackground(new Background(new BackgroundFill(Color.RED, CornerRadii.EMPTY, Insets.EMPTY)))
+			} else {
+				setBackground(null)
+			}
+		}
+
 		override def toString: String = f"MediaPlayerStack: ${getChildren.stream().map(view => f"MediaView: ${view.getUserData}").collect(Collectors.joining(", "))}"
 	}
 
@@ -131,4 +141,8 @@ class ContentPlayerViewController extends NVC {
 	def removeActivePadFromList(padIndex: PadIndex, zones: Seq[PlayerInstance]): Unit = mediaPlayers
 		.filter(mediaPlayer => zones.contains(mediaPlayer.playerInstance))
 		.foreach(mediaPlayer => mediaPlayer.removeActivePad(padIndex))
+
+	def highlight(zone: PlayerInstance, on: Boolean): Unit = {
+		mediaPlayers.filter(mediaPlayer => zone == mediaPlayer.playerInstance).head.highlight(on)
+	}
 }
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceSettingsViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceSettingsViewController.scala
index d185990d..9c253800 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceSettingsViewController.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceSettingsViewController.scala
@@ -47,11 +47,15 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll
 			}
 		})
 		listView.getSelectionModel.selectedItemProperty().addListener((_, oldValue, newValue) => {
+			val playerViewController = ContentPluginMain.playerViewController
+
 			if (oldValue != null) {
 				saveSettingsToPlayerInstance(oldValue)
+				playerViewController.highlight(oldValue, on = false)
 			}
 			if (newValue != null) {
 				showSettingsOfPlayerInstance(newValue)
+				playerViewController.highlight(newValue, on = true)
 			} else {
 				clearTextFields()
 			}
-- 
GitLab