From 84a9e9d718ac95423ffcab78ea9dd8b374e2ef3b Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Tue, 23 Nov 2021 21:54:24 +0100
Subject: [PATCH] #173 - Use ids for zones and selection in pad settings

---
 .../plugin/content/pad/ContentPlayerPadContent.scala  | 11 ++++++-----
 ...ontentPlayerPadContentSettingsViewController.scala |  2 +-
 .../settings/ContentPlayerPluginConfiguration.scala   |  5 +++--
 3 files changed, 10 insertions(+), 8 deletions(-)

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 39d2762c..215e2d23 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
@@ -7,7 +7,7 @@ import de.tobias.playpad.pad.fade.{Fadeable, LinearFadeController}
 import de.tobias.playpad.pad.mediapath.MediaPath
 import de.tobias.playpad.pad.{Pad, PadStatus}
 import de.tobias.playpad.plugin.content.ContentPluginMain
-import de.tobias.playpad.plugin.content.settings.{Zone, ContentPlayerPluginConfiguration}
+import de.tobias.playpad.plugin.content.settings.{ContentPlayerPluginConfiguration, Zone}
 import de.tobias.playpad.plugin.content.util._
 import de.tobias.playpad.profile.Profile
 import javafx.application.Platform
@@ -19,6 +19,7 @@ import nativecontentplayerwindows.ContentPlayer
 
 import java.nio.file.Files
 import java.util
+import java.util.UUID
 import java.util.stream.Collectors
 import scala.jdk.CollectionConverters._
 
@@ -281,10 +282,10 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte
 		val zoneConfiguration = Profile.currentProfile().getCustomSettings(ContentPluginMain.zoneConfigurationKey).asInstanceOf[ContentPlayerPluginConfiguration]
 
 		val customSettings = pad.getPadSettings.getCustomSettings
-		val selectedZoneNames = customSettings.getOrDefault(
+		val selectedZoneIds = customSettings.getOrDefault(
 			ContentPlayerPadContentFactory.zones,
-			zoneConfiguration.zones.stream().map(zone => zone.getName).collect(Collectors.toList())
-		).asInstanceOf[util.List[String]]
-		zoneConfiguration.zones.asScala.filter(zone => selectedZoneNames.contains(zone.getName)).toSeq
+			zoneConfiguration.zones.stream().map(zone => zone.id).collect(Collectors.toList())
+		).asInstanceOf[util.List[UUID]]
+		zoneConfiguration.zones.asScala.filter(zone => selectedZoneIds.contains(zone.id)).toSeq
 	}
 }
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentSettingsViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentSettingsViewController.scala
index f59d502c..4419b1e1 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentSettingsViewController.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContentSettingsViewController.scala
@@ -57,7 +57,7 @@ class ContentPlayerPadContentSettingsViewController(val pad: Pad) extends PadSet
 		val customSettings = pad.getPadSettings.getCustomSettings
 		customSettings.put(ContentPlayerPadContentFactory.lastFrame, lastFrameCheckbox.isSelected)
 
-		val selectedZoneNames = zoneListView.getCheckModel.getCheckedItems.asScala.map(zone => zone.getName)
+		val selectedZoneNames = zoneListView.getCheckModel.getCheckedItems.asScala.map(zone => zone.id)
 		customSettings.put(ContentPlayerPadContentFactory.zones, new util.ArrayList(selectedZoneNames.asJavaCollection))
 	}
 
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
index 3580f588..febbe097 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
@@ -1,8 +1,7 @@
 package de.tobias.playpad.plugin.content.settings
 
 import java.util
-import java.util.{List => JavaList}
-
+import java.util.{UUID, List => JavaList}
 import de.thecodelabs.storage.settings.annotation.{FilePath, Key}
 import de.tobias.playpad.Displayable
 import javafx.beans.property.{SimpleStringProperty, StringProperty}
@@ -20,6 +19,8 @@ class ContentPlayerPluginConfiguration {
 }
 
 class Zone extends Displayable {
+	@Key
+	var id: UUID = UUID.randomUUID()
 	@Key
 	private var name: String = _
 	@Key
-- 
GitLab