diff --git a/.idea/misc.xml b/.idea/misc.xml index 8f099dcf1c0f4d54403502bdf9db55780d811921..ca57f98e5686aa62d0af34128539b5e49bdf8acc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -33,7 +33,6 @@ <option name="ignoredFiles"> <set> <option value="$PROJECT_DIR$/PlayWall/PlayWallComponents/pom.xml" /> - <option value="$PROJECT_DIR$/PlayWallPlugins/PlayWallPluginContentPlayer/pom.xml" /> </set> </option> </component> diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/lang/base_de.properties b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/lang/base_de.properties index 58bf57c629aa5b0b1e09b9aac76dc4c26cc8f562..f349884fe1a09c06e16bd93793838ac6430afbb8 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/lang/base_de.properties +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/lang/base_de.properties @@ -13,3 +13,5 @@ plugin.content.player.settings.default_name=Zone plugin.content.pad.settings.lastFrame.label=Letztes Frame halten plugin.content.pad.settings.lastFrame.checkbox=Aktiv plugin.content.pad.settings.zone=Zonen +plugin.content.pad.settings.zone.addAll=Alle anw\u00E4hlen +plugin.content.pad.settings.zone.removeAll=Alle abw\u00E4hlen diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ContentPadSettings.fxml b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ContentPadSettings.fxml index ed8e5457f5d60106737401ecf2e1974858d7fb52..ef7651ce6ef54224d0b8acc1efa5c699b97d6f61 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ContentPadSettings.fxml +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/view/ContentPadSettings.fxml @@ -1,11 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <?import javafx.geometry.Insets?> -<?import javafx.scene.control.CheckBox?> -<?import javafx.scene.control.Label?> +<?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import org.controlsfx.control.CheckListView?> -<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> +<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"> <children> <VBox layoutX="237.0" layoutY="-18.0" spacing="14.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> @@ -18,7 +17,13 @@ <HBox spacing="14.0"> <children> <Label alignment="CENTER_RIGHT" prefWidth="150.0" text="%plugin.content.pad.settings.zone" /> - <CheckListView prefHeight="150.0" fx:id="zoneListView" /> + <CheckListView fx:id="zoneListView" prefHeight="150.0" /> + <VBox spacing="14.0"> + <children> + <Button fx:id="addAllZonesButton" onAction="#onAddAllZonesHandler" mnemonicParsing="false" text="%plugin.content.pad.settings.zone.addAll" /> + <Button fx:id="removeAllZonesButton" onAction="#onRemoveAllZonesHandler" mnemonicParsing="false" text="%plugin.content.pad.settings.zone.removeAll" /> + </children> + </VBox> </children> </HBox> </children> 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 7b847d5fc44cf600ee74a641368f789b6a3cd45f..71272073ef36a7b23f2979cf223e02b73c82da06 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 @@ -7,8 +7,9 @@ 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.viewcontroller.PadSettingsTabViewController +import javafx.beans.binding.Bindings import javafx.fxml.FXML -import javafx.scene.control.CheckBox +import javafx.scene.control.{Button, CheckBox} import org.controlsfx.control.CheckListView import scala.jdk.CollectionConverters._ @@ -20,11 +21,19 @@ class ContentPlayerPadContentSettingsViewController(val pad: Pad) extends PadSet @FXML var zoneListView: CheckListView[PlayerInstance] = _ + @FXML + var addAllZonesButton: Button = _ + @FXML + var removeAllZonesButton: Button = _ + load("view", "ContentPadSettings", Localization.getBundle) override def init(): Unit = { zoneListView.getItems.addAll(ContentPluginMain.configuration.instances) + + addAllZonesButton.disableProperty().bind(Bindings.equal(Bindings.size(zoneListView.getCheckModel.getCheckedIndices), zoneListView.getItems.size())) + removeAllZonesButton.disableProperty().bind(Bindings.isEmpty(zoneListView.getCheckModel.getCheckedIndices)) } override def getName: String = Localization.getString("plugin.content.player.settings") @@ -50,4 +59,14 @@ class ContentPlayerPadContentSettingsViewController(val pad: Pad) extends PadSet val selectedZoneNames = zoneListView.getCheckModel.getCheckedItems.asScala.map(zone => zone.getName) customSettings.put(ContentPlayerPadContentFactory.zones, new util.ArrayList(selectedZoneNames.asJavaCollection)) } + + @FXML + def onAddAllZonesHandler(): Unit = { + zoneListView.getCheckModel.checkAll() + } + + @FXML + def onRemoveAllZonesHandler(): Unit = { + zoneListView.getCheckModel.clearChecks() + } }