diff --git a/PlayWall/pom.xml b/PlayWall/pom.xml index cca1c6cabf4a29b2bbfd982cc044df07c2cf0f4a..24cc1a15f8759ec2b78741d0c2732800b0dce091 100644 --- a/PlayWall/pom.xml +++ b/PlayWall/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallDesktop</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWall</artifactId> diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/dialog/project/ProjectExportDialog.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/dialog/project/ProjectExportDialog.java index 15212f59ccb7aac5218b85752f47b1a44496c4c2..2bb7eb49594abb3139977c69b9fdbf365cec57c1 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/dialog/project/ProjectExportDialog.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/dialog/project/ProjectExportDialog.java @@ -54,6 +54,7 @@ public class ProjectExportDialog extends NVC implements ProjectExporterDelegate NVCStage nvcStage = applyViewControllerToStage(); nvcStage.initOwner(owner); + addCloseKeyShortcut(nvcStage::close); busyView = new BusyView(this); } @@ -83,6 +84,7 @@ public class ProjectExportDialog extends NVC implements ProjectExporterDelegate String extensionName = Localization.getString(Strings.FILE_FILTER_ZIP); ExtensionFilter extensionFilter = new ExtensionFilter(extensionName, PlayPadMain.ZIP_TYPE); chooser.getExtensionFilters().add(extensionFilter); + chooser.setInitialFileName(String.format("%s.zip", projectRef.getName())); File file = chooser.showSaveDialog(getContainingWindow()); if (file != null) { diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java index f3ebf8e5c579a4bbd2e160dd23d71b373a445f9c..fd2bb3bcd7679c4e777a0b103866730733932f86 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/global/UpdateTabViewController.java @@ -5,8 +5,10 @@ import de.thecodelabs.utils.application.ApplicationInfo; import de.thecodelabs.utils.application.ApplicationUtils; import de.thecodelabs.utils.threading.Worker; import de.thecodelabs.utils.util.Localization; +import de.thecodelabs.versionizer.config.Artifact; import de.thecodelabs.versionizer.model.Version; import de.thecodelabs.versionizer.service.UpdateService; +import de.thecodelabs.versionizer.service.VersionTokenizer; import de.tobias.playpad.PlayPad; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.Strings; @@ -22,6 +24,8 @@ import javafx.fxml.FXML; import javafx.scene.control.*; import java.io.IOException; +import java.util.Map; +import java.util.stream.Collectors; public class UpdateTabViewController extends GlobalSettingsTabViewController { @@ -99,10 +103,16 @@ public class UpdateTabViewController extends GlobalSettingsTabViewController { // Search for updates updateService.fetchCurrentVersion(); + // Filter remote versions that are newer then local version + final Map<Artifact, Version> remoteVersions = updateService.getRemoteVersions(); + final Map<Artifact, Version> availableUpdates = remoteVersions.entrySet().stream() + .filter(entry -> entry.getValue().isNewerThen(VersionTokenizer.getVersion(entry.getKey()))) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + Platform.runLater(() -> { openUpdateList.setPlaceholder(placeholderLabel); - openUpdateList.getItems().setAll(updateService.getRemoteVersions().values()); + openUpdateList.getItems().setAll(availableUpdates.values()); updateButton.setDisable(openUpdateList.getItems().isEmpty()); }); }); diff --git a/PlayWall/src/main/scala/de/tobias/playpad/initialize/OpenLastDocumentTask.scala b/PlayWall/src/main/scala/de/tobias/playpad/initialize/OpenLastDocumentTask.scala index 6d03affb29feefe2543ea12fa07314bdd9215a72..c518daba0cd81d8a5465ee35f2f89b8d7d51c978 100644 --- a/PlayWall/src/main/scala/de/tobias/playpad/initialize/OpenLastDocumentTask.scala +++ b/PlayWall/src/main/scala/de/tobias/playpad/initialize/OpenLastDocumentTask.scala @@ -5,6 +5,7 @@ import java.util.UUID import de.thecodelabs.utils.application import de.tobias.playpad.PlayPadImpl import de.tobias.playpad.project.ref.ProjectReferenceManager +import javafx.application.Platform class OpenLastDocumentTask extends PlayPadInitializeTask { override def name(): String = "Open Last Document" @@ -13,7 +14,7 @@ class OpenLastDocumentTask extends PlayPadInitializeTask { if (instance.getGlobalSettings.isOpenLastDocument) { val value = app.getUserDefaults.getData("project").asInstanceOf[UUID] if (value != null) { - instance.openProject(ProjectReferenceManager.getProject(value), null) + Platform.runLater(() => instance.openProject(ProjectReferenceManager.getProject(value), null)) throw new PlayPadInitializeAbortException(this) } } diff --git a/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala b/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala index ff86099670aaf4222298b81d1ff7afc6b344a1b7..3c78ccb991a479e5df94f17e0b0efd6320d2f1fb 100644 --- a/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala +++ b/PlayWall/src/main/scala/de/tobias/playpad/initialize/VersionizerSetupTask.scala @@ -18,6 +18,7 @@ class VersionizerSetupTask extends PlayPadInitializeTask { val versionizerItem = new VersionizerItem(repository, SystemUtils.getRunPath.toString) val updateService = UpdateService.startVersionizer(versionizerItem, UpdateService.Strategy.JAR, UpdateService.InteractionType.GUI) + updateService.addArtifact(artifact, SystemUtils.getRunPath) updateService.setRepositoryType(globalSettings.getUpdateChannel) instance.setUpdateService(updateService) diff --git a/PlayWallComponents/pom.xml b/PlayWallComponents/pom.xml index ee6a60650ec904e91bf03aab7664557879e48130..8255854a4e9bcc1818325791480025f7c986899a 100644 --- a/PlayWallComponents/pom.xml +++ b/PlayWallComponents/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallDesktop</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallComponents</artifactId> diff --git a/PlayWallCore/pom.xml b/PlayWallCore/pom.xml index 96ddeb79b523ed5841a1565e6ef2c4bf33b3a044..e67cab87688db9199336ac24c2ae2eeef1b95d4e 100644 --- a/PlayWallCore/pom.xml +++ b/PlayWallCore/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallDesktop</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallCore</artifactId> diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java index 882aa5c0f6fb3da0e81e180dd2eff5a45cb11f7b..f0ea7b10a3a826fcc3c1fa104c978859abd93270 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/listener/PadStatusControlListener.java @@ -1,5 +1,6 @@ package de.tobias.playpad.pad.listener; +import de.thecodelabs.logger.Logger; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.PadSettings; @@ -28,7 +29,12 @@ public class PadStatusControlListener implements ChangeListener<PadStatus> { PadSettings padSettings = pad.getPadSettings(); ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings(); - PlayPadPlugin.getInstance().getPadListener().forEach(listener -> listener.onStatusChange(pad, newValue)); + try { + PlayPadPlugin.getInstance().getPadListener().forEach(listener -> listener.onStatusChange(pad, newValue)); + } catch (Exception e) { + Logger.error(e); + } + if (newValue == PadStatus.PLAY) { if (pad.getContent() != null) { diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java b/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java index 53e53c759b44d1faed8da6b5ee671a4444992d7e..bc6a22572672b49a3332c397b36e3ab3e8d78095 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java @@ -152,7 +152,7 @@ public abstract class MenuToolbarViewController extends NVC { public abstract void loadKeybinding(KeyCollection keys); public void setKeyBindingForMenu(MenuItem menuItem, Key key) { - if (key != null && !key.getKeyCode().isEmpty()) { + if (key != null && key.getKey() != null && !key.getKeyCode().isEmpty()) { KeyCombination keyCode = KeyCombination.valueOf(key.getKeyCode()); menuItem.setAccelerator(keyCode); } diff --git a/PlayWallPlugins/PlayWallPluginAwake/pom.xml b/PlayWallPlugins/PlayWallPluginAwake/pom.xml index 0b75388b2ab9faa42936b8e4bb2309ed2ad6ac40..cb3dbbeb28f61c8ac707469d868668a619cacac8 100644 --- a/PlayWallPlugins/PlayWallPluginAwake/pom.xml +++ b/PlayWallPlugins/PlayWallPluginAwake/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallPluginAwake</artifactId> diff --git a/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml b/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml index 2f684d16bd6f27bf97a0fe1285fb81cf5fd5dac8..cebe9054491c6ba5099becc2fe22746b20c9cf10 100644 --- a/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml +++ b/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallPluginEqualizer</artifactId> diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml b/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml index f1c9f0194a904834ccd797601f47f8a3f57c5270..462ebbb0940db9795b7b37df8fa82ef406deefa6 100644 --- a/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml +++ b/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallPluginLaunchpad</artifactId> diff --git a/PlayWallPlugins/PlayWallPluginMedia/pom.xml b/PlayWallPlugins/PlayWallPluginMedia/pom.xml index d5f6d3fd27513fd1353c526155279ff694bc9983..1f07572948fe8bb067aa93d88652775b5e6fa5a8 100644 --- a/PlayWallPlugins/PlayWallPluginMedia/pom.xml +++ b/PlayWallPlugins/PlayWallPluginMedia/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <artifactId>PlayWallPluginMedia</artifactId> diff --git a/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml b/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml index 37ae3f2dc0e501acddd346ec5c2ab0aff044ac16..e93171580e491aa2caf95879ca88ae83a957c363 100644 --- a/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml +++ b/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <properties> diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml b/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml index 8aed454d716696eca879c7ab1a2e116fec8fde17..2c8220a869b9f36c7bf3a01d99bcdbb8e25e16d8 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallPlugins</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/LogSeason.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/LogSeason.java index 0390a6715894332672ea3ee5a810168b2f4b6f43..a037825f965c689a95e9f7970c0d2b0595a3c0a1 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/LogSeason.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/log/LogSeason.java @@ -1,5 +1,6 @@ package de.tobias.playpad.plugin.playout.log; +import de.thecodelabs.logger.Logger; import de.thecodelabs.utils.threading.Worker; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.mediapath.MediaPath; @@ -36,7 +37,11 @@ public class LogSeason { } public void createProjectSnapshot(Project project) { - Worker.runLater(() -> project.getPads().parallelStream().forEach(this::addLogItem)); + Worker.runLater(() -> { + Logger.info("Start creating project snapshot for PlayoutLog session"); + project.getPads().parallelStream().forEach(this::addLogItem); + Logger.info("Finish creating project snapshot for PlayoutLog session"); + }); } public void addLogItem(Pad pad) { diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/MainViewControllerListener.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/MainViewControllerListener.java index 25925457e94eb9cbe3a89c2d1d0f32fdac06c50d..58ad0c82a9b55ab115806436d7ebb9a937205312 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/MainViewControllerListener.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/MainViewControllerListener.java @@ -6,6 +6,7 @@ import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.plugin.MainWindowListener; import de.tobias.playpad.plugin.playout.PlayoutLogPlugin; import de.tobias.playpad.plugin.playout.Strings; +import de.tobias.playpad.settings.keys.Key; import de.tobias.playpad.settings.keys.KeyCollection; import de.tobias.playpad.view.main.MenuType; import de.tobias.playpad.viewcontroller.main.IMainViewController; @@ -39,7 +40,11 @@ public class MainViewControllerListener implements MainWindowListener { public void loadMenuKeyBinding() { final KeyCollection keyCollection = PlayPadPlugin.getInstance().getGlobalSettings().getKeyCollection(); final MenuToolbarViewController menuToolbarController = PlayPadPlugin.getInstance().getMainViewController().getMenuToolbarController(); - menuToolbarController.setKeyBindingForMenu(menuItem, keyCollection.getKey(PlayoutLogPlugin.KEY_COLLECTION_PLAYOUT)); + + final Key key = keyCollection.getKey(PlayoutLogPlugin.KEY_COLLECTION_PLAYOUT); + if (key != null) { + menuToolbarController.setKeyBindingForMenu(menuItem, key); + } menuItem.setDisable(false); } diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java index 479c4e5f6620f30c1277cd5a71dcba24f606056f..8c41721716cbbaff7e531a4e80a070af407de353 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java @@ -146,6 +146,7 @@ public class PlayoutLogViewController extends NVC { FileChooser fileChooser = new FileChooser(); FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter("PDF", "*.pdf"); fileChooser.getExtensionFilters().add(extensionFilter); + fileChooser.setInitialFileName(String.format("%s.pdf", season.getName())); File file = fileChooser.showSaveDialog(getContainingWindow()); if (file != null) { @@ -163,6 +164,7 @@ public class PlayoutLogViewController extends NVC { FileChooser fileChooser = new FileChooser(); FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter("CSV", "*.csv"); fileChooser.getExtensionFilters().add(extensionFilter); + fileChooser.setInitialFileName("PlayoutLog.csv"); File file = fileChooser.showSaveDialog(getContainingWindow()); if (file == null) { diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml b/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml index e806e6397201734c6cce3b69e58ed5de4889969f..954d89a3daf11281c1d875cf92e7ee4d3fe99ef8 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml +++ b/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>PlayWallPlugins</artifactId> <groupId>de.tobias.playpad</groupId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala index 35c391df6113a4621a22e58d0b51078b54e185f4..2eb1c9a7579ed7a3b0e3f5a3abceeacdf219753b 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala @@ -1,14 +1,20 @@ package de.tobias.playpad.plugin.api import de.thecodelabs.logger.Logger -import de.thecodelabs.plugins.{Plugin, PluginDescriptor} +import de.thecodelabs.plugins.{PluginArtifact, PluginDescriptor} import de.tobias.playpad.PlayPadPlugin import de.tobias.playpad.plugin.api.websocket.WebSocketHandler import de.tobias.playpad.plugin.api.websocket.listener.{PadStatusListener, ProjectListener} +import de.tobias.playpad.plugin.{Module, PlayPadPluginStub} import spark.Spark -class WebApiPlugin extends Plugin { - override def startup(pluginDescriptor: PluginDescriptor): Unit = { +class WebApiPlugin extends PlayPadPluginStub with PluginArtifact { + + private var module: Module = _ + + override def startup(descriptor: PluginDescriptor): Unit = { + module = new Module(descriptor.getName, descriptor.getArtifactId) + PlayPadPlugin.getInstance().addPadListener(new PadStatusListener) PlayPadPlugin.getInstance().addGlobalListener(new ProjectListener) @@ -24,4 +30,6 @@ class WebApiPlugin extends Plugin { Spark.stop() } + + override def getModule: Module = module } diff --git a/PlayWallPlugins/pom.xml b/PlayWallPlugins/pom.xml index 6707940ede504d7c632906e0d0b24f603cba0a62..3245fcfb3328b8db5ba1b8301e1799d9cd4eaecd 100644 --- a/PlayWallPlugins/pom.xml +++ b/PlayWallPlugins/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallDesktop</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/pom.xml b/pom.xml index 0c64706ede144c84101f32b34fcc26f4fb2bd99a..9305af30f032cd380407e7b938e0a1e867b34539 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ <groupId>de.tobias.playpad</groupId> <artifactId>PlayWallDesktop</artifactId> - <version>7.0.0</version> + <version>7.0.1</version> <packaging>pom</packaging> <properties>