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

#173 - Use ids for zones and selection in pad settings

parent d931feab
No related branches found
No related tags found
No related merge requests found
......@@ -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
}
}
......@@ -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))
}
......
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment