diff --git a/plugins/nf-console/build.gradle b/plugins/nf-console/build.gradle index 9ea3f11230..fad348d4aa 100644 --- a/plugins/nf-console/build.gradle +++ b/plugins/nf-console/build.gradle @@ -42,6 +42,7 @@ dependencies { // this is required by 'groovy-console' api("com.github.javaparser:javaparser-core:3.25.8") + testImplementation(testFixtures(project(":nextflow"))) testImplementation project(':nextflow') testImplementation "org.apache.groovy:groovy:4.0.21" testImplementation "org.apache.groovy:groovy-nio:4.0.21" diff --git a/plugins/nf-console/src/main/nextflow/ui/console/ConsoleRunner.groovy b/plugins/nf-console/src/main/nextflow/ui/console/ConsoleRunner.groovy index c26fab72c3..9e4537c8ed 100644 --- a/plugins/nf-console/src/main/nextflow/ui/console/ConsoleRunner.groovy +++ b/plugins/nf-console/src/main/nextflow/ui/console/ConsoleRunner.groovy @@ -16,6 +16,8 @@ package nextflow.ui.console import javax.swing.UIManager +import java.awt.Taskbar +import java.awt.Toolkit import groovy.util.logging.Slf4j import nextflow.cli.CliOptions @@ -53,8 +55,9 @@ class ConsoleRunner implements ConsoleExtension { //when starting via main set the look and feel to system UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) + loadDockIcon() - def console = new Nextflow(ConsoleRunner.getClassLoader()) + final console = new Nextflow(ConsoleRunner.getClassLoader()) console.useScriptClassLoaderForScriptExecution = true console.run() if (args.length == 2) @@ -64,6 +67,23 @@ class ConsoleRunner implements ConsoleExtension { catch( IOException e ) { log.warn("Can't open script file: ${args[1]}" ) } + } + static void loadDockIcon() { + final URL imageResource = ConsoleRunner.getResource("/nextflow-icon.png"); + final defaultToolkit = Toolkit.getDefaultToolkit() + final image = defaultToolkit.getImage(imageResource) + final taskbar = Taskbar.getTaskbar() + try { + //set icon for mac os (and other systems which do support this method) + taskbar.setIconImage(image) + } + catch (final UnsupportedOperationException e) { + log.debug("The os does not support: 'taskbar.setIconImage'") + } + catch (final SecurityException e) { + log.debug("There was a security exception for: 'taskbar.setIconImage'") + } } + } diff --git a/plugins/nf-console/src/main/nextflow/ui/console/Nextflow.groovy b/plugins/nf-console/src/main/nextflow/ui/console/Nextflow.groovy index 2cc0a319a6..152880352a 100644 --- a/plugins/nf-console/src/main/nextflow/ui/console/Nextflow.groovy +++ b/plugins/nf-console/src/main/nextflow/ui/console/Nextflow.groovy @@ -21,9 +21,9 @@ import javax.swing.filechooser.FileFilter import java.nio.file.Path import java.nio.file.Paths -import groovy.transform.ThreadInterrupt import groovy.console.ui.Console import groovy.console.ui.OutputTransforms +import groovy.transform.ThreadInterrupt import groovy.util.logging.Slf4j import nextflow.NextflowMeta import nextflow.Session @@ -53,7 +53,7 @@ class Nextflow extends Console { frame( title: TITLE, //location: [100,100], // in groovy 2.0 use platform default location - iconImage: imageIcon('/nextflow_icon_48x48.png').image, + iconImage: imageIcon('/nextflow-icon.png').image, defaultCloseOperation: JFrame.DISPOSE_ON_CLOSE, ) { try { @@ -73,7 +73,6 @@ class Nextflow extends Console { Nextflow(ClassLoader loader) { super(loader, new ScriptBinding()) this.scriptConfig = createScriptConfig() - NextflowMeta.instance.enableDsl2() } diff --git a/plugins/nf-console/src/resources/nextflow-icon.png b/plugins/nf-console/src/resources/nextflow-icon.png new file mode 100644 index 0000000000..46afa9035f Binary files /dev/null and b/plugins/nf-console/src/resources/nextflow-icon.png differ diff --git a/plugins/nf-console/src/resources/nextflow_icon_48x48.png b/plugins/nf-console/src/resources/nextflow_icon_48x48.png deleted file mode 100644 index 5049f59d0e..0000000000 Binary files a/plugins/nf-console/src/resources/nextflow_icon_48x48.png and /dev/null differ diff --git a/plugins/nf-console/src/test/nextflow/ui/console/ConsoleRunnerTest.groovy b/plugins/nf-console/src/test/nextflow/ui/console/ConsoleRunnerTest.groovy new file mode 100644 index 0000000000..6c8ef9832d --- /dev/null +++ b/plugins/nf-console/src/test/nextflow/ui/console/ConsoleRunnerTest.groovy @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2020-2021. Seqera Labs, S.L. + * + * All Rights reserved + * + */ + +package nextflow.ui.console + +import spock.lang.Specification + +/** + * + * @author Paolo Di Tommaso + */ +class ConsoleRunnerTest extends Specification{ + + def 'should load nextflow icon' () { + expect: + ConsoleRunner.getResource("/nextflow-icon.png") + } + +}