diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/PlayerSettings.fxml b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ZoneSettings.fxml similarity index 100% rename from PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/PlayerSettings.fxml rename to PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ZoneSettings.fxml diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPluginMain.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPluginMain.scala index 8b265b0361ba00776a68d98787ca08e9de09c5d1..f0c2c1de0a0e5e2d033b8db275f40899b580d4d4 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPluginMain.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/ContentPluginMain.scala @@ -5,7 +5,7 @@ import de.thecodelabs.storage.settings.{Storage, StorageTypes} import de.thecodelabs.utils.util.Localization import de.tobias.playpad.PlayPadPlugin import de.tobias.playpad.plugin.content.player.ContentPlayerViewController -import de.tobias.playpad.plugin.content.settings.{PlayerInstanceConfiguration, PlayerInstanceSettingsViewController} +import de.tobias.playpad.plugin.content.settings.{ZoneConfiguration, ZoneSettingsViewController} import de.tobias.playpad.plugin.{Module, PlayPadPluginStub} import javafx.application.Platform @@ -26,7 +26,7 @@ class ContentPluginMain extends PlayPadPluginStub { ContentPluginMain.playerViewController.showStage() }) - PlayPadPlugin.getInstance().addGlobalSettingsTab(() => new PlayerInstanceSettingsViewController) + PlayPadPlugin.getInstance().addGlobalSettingsTab(() => new ZoneSettingsViewController) } override def shutdown(): Unit = { @@ -38,5 +38,5 @@ class ContentPluginMain extends PlayPadPluginStub { object ContentPluginMain { var playerViewController: ContentPlayerViewController = _ - lazy val configuration: PlayerInstanceConfiguration = Storage.load(StorageTypes.JSON, classOf[PlayerInstanceConfiguration]) + lazy val configuration: ZoneConfiguration = Storage.load(StorageTypes.JSON, classOf[ZoneConfiguration]) } \ No newline at end of file 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 b15b2603c73f25a2ad25e1d679fc319eac49e2f9..210e3d5b2535661ff06aed843b1eae4aef2a0184 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 @@ -10,7 +10,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.PlayerInstance +import de.tobias.playpad.plugin.content.settings.Zone import de.tobias.playpad.plugin.content.util._ import de.tobias.playpad.volume.VolumeManager import javafx.application.Platform @@ -291,12 +291,12 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte pad.getPadSettings.getCustomSettings.getOrDefault(ContentPlayerPadContentFactory.lastFrame, false).asInstanceOf[Boolean] } - def getSelectedZones: Seq[PlayerInstance] = { + def getSelectedZones: Seq[Zone] = { val customSettings = pad.getPadSettings.getCustomSettings val selectedZoneNames = customSettings.getOrDefault( ContentPlayerPadContentFactory.zones, - ContentPluginMain.configuration.instances.stream().map(zone => zone.getName).collect(Collectors.toList()) + ContentPluginMain.configuration.zones.stream().map(zone => zone.getName).collect(Collectors.toList()) ).asInstanceOf[util.List[String]] - ContentPluginMain.configuration.instances.asScala.filter(zone => selectedZoneNames.contains(zone.getName)).toSeq + ContentPluginMain.configuration.zones.asScala.filter(zone => selectedZoneNames.contains(zone.getName)).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 71272073ef36a7b23f2979cf223e02b73c82da06..08670f34922ee0e5c7566e164270aa96bdbb9622 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 @@ -5,7 +5,7 @@ import java.util import de.thecodelabs.utils.util.Localization import de.tobias.playpad.pad.Pad import de.tobias.playpad.plugin.content.ContentPluginMain -import de.tobias.playpad.plugin.content.settings.PlayerInstance +import de.tobias.playpad.plugin.content.settings.Zone import de.tobias.playpad.viewcontroller.PadSettingsTabViewController import javafx.beans.binding.Bindings import javafx.fxml.FXML @@ -19,7 +19,7 @@ class ContentPlayerPadContentSettingsViewController(val pad: Pad) extends PadSet @FXML var lastFrameCheckbox: CheckBox = _ @FXML - var zoneListView: CheckListView[PlayerInstance] = _ + var zoneListView: CheckListView[Zone] = _ @FXML var addAllZonesButton: Button = _ @@ -30,7 +30,7 @@ class ContentPlayerPadContentSettingsViewController(val pad: Pad) extends PadSet override def init(): Unit = { - zoneListView.getItems.addAll(ContentPluginMain.configuration.instances) + zoneListView.getItems.addAll(ContentPluginMain.configuration.zones) addAllZonesButton.disableProperty().bind(Bindings.equal(Bindings.size(zoneListView.getCheckModel.getCheckedIndices), zoneListView.getItems.size())) removeAllZonesButton.disableProperty().bind(Bindings.isEmpty(zoneListView.getCheckModel.getCheckedIndices)) diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/ContentPlayerViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/ContentPlayerViewController.scala index 01a3e3bd82ad941c7f0a3bfa9ca08ca24e4a801f..4fd71e5744f1e817686af3e8a2ba51df81aa0a9f 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/ContentPlayerViewController.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/ContentPlayerViewController.scala @@ -3,7 +3,7 @@ package de.tobias.playpad.plugin.content.player import de.thecodelabs.logger.Logger import de.thecodelabs.utils.ui.NVC import de.thecodelabs.utils.ui.size.IgnoreStageSizing -import de.tobias.playpad.plugin.content.settings.{PlayerInstance, PlayerInstanceConfiguration} +import de.tobias.playpad.plugin.content.settings.{Zone, ZoneConfiguration} import de.tobias.playpad.project.page.PadIndex import javafx.geometry.Insets import javafx.scene.layout._ @@ -35,32 +35,32 @@ class ContentPlayerViewController extends NVC { stage.getScene.setFill(Color.BLACK) } - def showMediaPlayer(padIndex: PadIndex, mediaPlayer: MediaPlayer, zones: Seq[PlayerInstance]): Unit = { + def showMediaPlayer(padIndex: PadIndex, mediaPlayer: MediaPlayer, zones: Seq[Zone]): Unit = { val iterator = this.mediaStacks.iterator while (iterator.hasNext) { val mediaPlayerStack = iterator.next() - if (zones.contains(mediaPlayerStack.playerInstance)) { + if (zones.contains(mediaPlayerStack.zone)) { mediaPlayerStack.showMediaPlayer(padIndex, mediaPlayer) } } } - def disconnectMediaPlayer(mediaPlayer: MediaPlayer, zones: Seq[PlayerInstance]): Unit = { + def disconnectMediaPlayer(mediaPlayer: MediaPlayer, zones: Seq[Zone]): Unit = { val iterator = this.mediaStacks.iterator while (iterator.hasNext) { val mediaPlayerStack = iterator.next() - if (zones.contains(mediaPlayerStack.playerInstance)) { + if (zones.contains(mediaPlayerStack.zone)) { mediaPlayerStack.disconnectMediaPlayer(mediaPlayer) } } } - def configurePlayers(configuration: PlayerInstanceConfiguration): Unit = { + def configurePlayers(configuration: ZoneConfiguration): Unit = { val parent = getParent.asInstanceOf[Pane] parent.getChildren.clear() mediaStacks.clear() - configuration.instances.forEach(player => { + configuration.zones.forEach(player => { val mediaPlayerStack = new MediaPlayerStack(player) mediaStacks.addOne(mediaPlayerStack) parent.getChildren.add(mediaPlayerStack) @@ -70,9 +70,9 @@ class ContentPlayerViewController extends NVC { val stage = container.getStage import scala.jdk.CollectionConverters._ - val instances = configuration.instances.asScala - val maxWidth = instances.map(player => player.x + player.width).max - val maxHeight = instances.map(player => player.y + player.height).max + val zones = configuration.zones.asScala + val maxWidth = zones.map(player => player.x + player.width).max + val maxHeight = zones.map(player => player.y + player.height).max stage.setX(0) stage.setY(0) @@ -81,24 +81,24 @@ class ContentPlayerViewController extends NVC { }) } - def addActivePadToList(padIndex: PadIndex, zones: Seq[PlayerInstance]): Unit = getMediaStacks(zones) + def addActivePadToList(padIndex: PadIndex, zones: Seq[Zone]): Unit = getMediaStacks(zones) .foreach(mediaStack => mediaStack.addActivePad(padIndex)) - def removeActivePadFromList(padIndex: PadIndex, zones: Seq[PlayerInstance]): Unit = getMediaStacks(zones) + def removeActivePadFromList(padIndex: PadIndex, zones: Seq[Zone]): Unit = getMediaStacks(zones) .foreach(mediaStack => mediaStack.removeActivePad(padIndex)) - def highlight(zone: PlayerInstance, on: Boolean): Unit = { + def highlight(zone: Zone, on: Boolean): Unit = { getMediaStack(zone).head.highlight(on) } - def setFadeValue(mediaPlayer: MediaPlayer, zones: Seq[PlayerInstance], value: Double): Unit = getMediaStacks(zones) + def setFadeValue(mediaPlayer: MediaPlayer, zones: Seq[Zone], value: Double): Unit = getMediaStacks(zones) .foreach(mediaStack => mediaStack.setFadeValue(mediaPlayer, value)) - private def getMediaStack(zone: PlayerInstance): ListBuffer[MediaPlayerStack] = { + private def getMediaStack(zone: Zone): ListBuffer[MediaPlayerStack] = { getMediaStacks(List(zone)) } - private def getMediaStacks(zones: Seq[PlayerInstance]): ListBuffer[MediaPlayerStack] = { - mediaStacks.filter(mediaPlayer => zones.contains(mediaPlayer.playerInstance)) + private def getMediaStacks(zones: Seq[Zone]): ListBuffer[MediaPlayerStack] = { + mediaStacks.filter(mediaPlayer => zones.contains(mediaPlayer.zone)) } } diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/MediaPlayerStack.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/MediaPlayerStack.scala index 9ddf783e9b58a6af4ce7fc0a7deb06348512ca7a..15d3872130e3fe4b1d32c3ff3d67f11329a70c6d 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/MediaPlayerStack.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/player/MediaPlayerStack.scala @@ -3,7 +3,7 @@ package de.tobias.playpad.plugin.content.player import java.util.stream.Collectors import de.thecodelabs.logger.Logger -import de.tobias.playpad.plugin.content.settings.PlayerInstance +import de.tobias.playpad.plugin.content.settings.Zone import de.tobias.playpad.project.page.PadIndex import javafx.geometry.Insets import javafx.scene.layout.{Background, BackgroundFill, CornerRadii, StackPane} @@ -13,17 +13,17 @@ import javafx.scene.paint.Color import scala.collection.mutable import scala.collection.mutable.ListBuffer -class MediaPlayerStack(val playerInstance: PlayerInstance) extends StackPane { +class MediaPlayerStack(val zone: Zone) extends StackPane { private var activePlayers: ListBuffer[PadIndex] = ListBuffer.empty val mediaViews: mutable.Map[MediaPlayer, MediaView] = new mutable.HashMap[MediaPlayer, MediaView]() - setLayoutX(playerInstance.x) - setLayoutY(playerInstance.y) - setMinWidth(playerInstance.width) - setMaxWidth(playerInstance.width) - setMinHeight(playerInstance.height) - setMaxHeight(playerInstance.height) + setLayoutX(zone.x) + setLayoutY(zone.y) + setMinWidth(zone.width) + setMaxWidth(zone.width) + setMinHeight(zone.height) + setMaxHeight(zone.height) def addActivePad(padIndex: PadIndex): Unit = activePlayers.addOne(padIndex) @@ -32,8 +32,8 @@ class MediaPlayerStack(val playerInstance: PlayerInstance) extends StackPane { def showMediaPlayer(padIndex: PadIndex, mediaPlayer: MediaPlayer): Unit = { if (!mediaViews.contains(mediaPlayer)) { val mediaView = new MediaView(mediaPlayer) - mediaView.setFitWidth(playerInstance.width) - mediaView.setFitHeight(playerInstance.height) + mediaView.setFitWidth(zone.width) + mediaView.setFitHeight(zone.height) mediaViews.put(mediaPlayer, mediaView) } diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceConfiguration.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ZoneConfiguration.scala similarity index 83% rename from PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceConfiguration.scala rename to PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ZoneConfiguration.scala index 6e163ff317babe69c1a265319de553952c045b88..956a0183c9eafa8245a6565558bf85aeaa176e4c 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceConfiguration.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ZoneConfiguration.scala @@ -8,12 +8,12 @@ import de.tobias.playpad.Displayable import javafx.beans.property.{SimpleStringProperty, StringProperty} @FilePath("players.json") -class PlayerInstanceConfiguration { +class ZoneConfiguration { @Key - var instances: JavaList[PlayerInstance] = new util.ArrayList[PlayerInstance]() + var zones: JavaList[Zone] = new util.ArrayList[Zone]() } -class PlayerInstance extends Displayable { +class Zone extends Displayable { @Key private var name: String = _ @Key @@ -39,6 +39,5 @@ class PlayerInstance extends Displayable { _displayProperty } - override def toString: String = name } 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/ZoneSettingsViewController.scala similarity index 65% rename from PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/PlayerInstanceSettingsViewController.scala rename to PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ZoneSettingsViewController.scala index 9c25380007f198c5e05f4abf1cd2af779b36bb3b..137a12fac7a5b7680dcf867ea26b6f8aae8b79c2 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/ZoneSettingsViewController.scala @@ -11,10 +11,10 @@ import javafx.application.Platform import javafx.fxml.FXML import javafx.scene.control.{Button, ListCell, ListView, TextField} -class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewController with IGlobalReloadTask { +class ZoneSettingsViewController extends GlobalSettingsTabViewController with IGlobalReloadTask { @FXML - var listView: ListView[PlayerInstance] = _ + var listView: ListView[Zone] = _ @FXML var nameTextField: TextField = _ @@ -32,11 +32,11 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll @FXML var removeButton: Button = _ - load("view", "PlayerSettings", Localization.getBundle) + load("view", "ZoneSettings", Localization.getBundle) override def init(): Unit = { - listView.setCellFactory((_: ListView[PlayerInstance]) => new ListCell[PlayerInstance] { - override def updateItem(item: PlayerInstance, empty: Boolean): Unit = { + listView.setCellFactory((_: ListView[Zone]) => new ListCell[Zone] { + override def updateItem(item: Zone, empty: Boolean): Unit = { super.updateItem(item, empty) if (!empty) { textProperty().bind(item.displayProperty()) @@ -50,11 +50,11 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll val playerViewController = ContentPluginMain.playerViewController if (oldValue != null) { - saveSettingsToPlayerInstance(oldValue) + saveSettingsToZone(oldValue) playerViewController.highlight(oldValue, on = false) } if (newValue != null) { - showSettingsOfPlayerInstance(newValue) + showSettingsOfZone(newValue) playerViewController.highlight(newValue, on = true) } else { clearTextFields() @@ -62,20 +62,20 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll }) } - private def saveSettingsToPlayerInstance(playerInstance: PlayerInstance): Unit = { - playerInstance.setName(nameTextField.getText) - playerInstance.x = xTextField.getText.toDouble - playerInstance.y = yTextField.getText.toDouble - playerInstance.width = widthTextField.getText.toDouble - playerInstance.height = heightTextField.getText.toDouble + private def saveSettingsToZone(zone: Zone): Unit = { + zone.setName(nameTextField.getText) + zone.x = xTextField.getText.toDouble + zone.y = yTextField.getText.toDouble + zone.width = widthTextField.getText.toDouble + zone.height = heightTextField.getText.toDouble } - private def showSettingsOfPlayerInstance(playerInstance: PlayerInstance): Unit = { - nameTextField.setText(playerInstance.getName) - xTextField.setText(playerInstance.x.toInt.toString) - yTextField.setText(playerInstance.y.toInt.toString) - widthTextField.setText(playerInstance.width.toInt.toString) - heightTextField.setText(playerInstance.height.toInt.toString) + private def showSettingsOfZone(zone: Zone): Unit = { + nameTextField.setText(zone.getName) + xTextField.setText(zone.x.toInt.toString) + yTextField.setText(zone.y.toInt.toString) + widthTextField.setText(zone.width.toInt.toString) + heightTextField.setText(zone.height.toInt.toString) } private def clearTextFields(): Unit = { @@ -89,10 +89,10 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll // Actions @FXML def onAddHandle(): Unit = { - val newConfiguration = new PlayerInstance + val newConfiguration = new Zone newConfiguration.setName(Localization.getString("plugin.content.player.settings.default_name")) - ContentPluginMain.configuration.instances.add(newConfiguration) + ContentPluginMain.configuration.zones.add(newConfiguration) listView.getItems.add(newConfiguration) } @@ -101,18 +101,18 @@ class PlayerInstanceSettingsViewController extends GlobalSettingsTabViewControll val selectedItem = listView.getSelectionModel.getSelectedItem if (selectedItem != null) { listView.getItems.remove(selectedItem) - ContentPluginMain.configuration.instances.remove(selectedItem) + ContentPluginMain.configuration.zones.remove(selectedItem) } } override def loadSettings(settings: GlobalSettings): Unit = { - listView.getItems.setAll(ContentPluginMain.configuration.instances) + listView.getItems.setAll(ContentPluginMain.configuration.zones) } override def saveSettings(settings: GlobalSettings): Unit = { val selectedItem = listView.getSelectionModel.getSelectedItem if (selectedItem != null) { - saveSettingsToPlayerInstance(selectedItem) + saveSettingsToZone(selectedItem) } Storage.save(StorageTypes.JSON, ContentPluginMain.configuration)