diff --git a/.gitignore b/.gitignore index 1a26a7589e5250a64526897d7b52a94455384951..9d5e2adf2559faf63c3ad3f92c26e7d181ddb5f1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,36 @@ -*.jar -.idea/ -.settings/ -bin/ -build/ target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/ +*.iws *.iml -*.eml +*.ipr + +### Eclipse ### +.apt_generated .classpath +.factorypath .project -export.jardesc +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +**/.DS_Store +Icon? \ No newline at end of file diff --git a/pom.xml b/pom.xml index a1bb3d30e845f7d550677877165c026470c63842..75212a4af4d807b4adf90d8378ba9418c3a4aeff 100644 --- a/pom.xml +++ b/pom.xml @@ -7,13 +7,11 @@ <parent> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>pom-icy</artifactId> - <version>2.2.0</version> + <version>3.0.0-a.1</version> </parent> <artifactId>protocols</artifactId> - <version>4.0.0</version> - - <packaging>jar</packaging> + <version>4.0.0-a.1</version> <name>Protocols</name> <description> @@ -21,6 +19,10 @@ </description> <dependencies> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>kernel-extensions</artifactId> + </dependency> <dependency> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>ezplug</artifactId> @@ -35,7 +37,7 @@ <repositories> <repository> <id>icy</id> - <url>https://icy-nexus.pasteur.fr/repository/Icy/</url> + <url>https://nexus-icy.pasteur.cloud/repository/icy/</url> </repository> </repositories> </project> \ No newline at end of file diff --git a/src/main/java/plugins/adufour/blocks/lang/Batch.java b/src/main/java/plugins/adufour/blocks/lang/Batch.java index b0b88c01e059e6e809cb30d5bafa8a25468008ad..b0e01a2f28921610b9af9d6323b54586f6de6d9f 100644 --- a/src/main/java/plugins/adufour/blocks/lang/Batch.java +++ b/src/main/java/plugins/adufour/blocks/lang/Batch.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/lang/Block.java b/src/main/java/plugins/adufour/blocks/lang/Block.java index 933bc5865d546ee72399a40bb70e9976c4a0cd6a..7a2b6b517b1f3bd4dac0d901929a1dd34921d313 100644 --- a/src/main/java/plugins/adufour/blocks/lang/Block.java +++ b/src/main/java/plugins/adufour/blocks/lang/Block.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ package plugins.adufour.blocks.lang; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; import plugins.adufour.blocks.util.VarList; /** diff --git a/src/main/java/plugins/adufour/blocks/lang/BlockDescriptor.java b/src/main/java/plugins/adufour/blocks/lang/BlockDescriptor.java index 2ed032f0c0b2009ff20430b8907b6bce82daf161..c8c4521274dfc0b9f081476f19a524d5a3c8049f 100644 --- a/src/main/java/plugins/adufour/blocks/lang/BlockDescriptor.java +++ b/src/main/java/plugins/adufour/blocks/lang/BlockDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,16 +18,17 @@ package plugins.adufour.blocks.lang; -import icy.file.xml.XMLPersistent; -import icy.gui.plugin.PluginErrorReport; -import icy.network.NetworkUtil; -import icy.plugin.PluginDescriptor; -import icy.plugin.PluginInstaller; -import icy.plugin.PluginRepositoryLoader; -import icy.plugin.abstract_.Plugin; -import icy.util.ClassUtil; -import icy.util.StringUtil; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.common.reflect.ClassUtil; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; +import org.bioimageanalysis.icy.extension.plugin.PluginInstaller; +import org.bioimageanalysis.icy.extension.plugin.PluginRepositoryLoader; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.plugin.PluginErrorReport; +import org.bioimageanalysis.icy.io.xml.XMLPersistent; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import org.w3c.dom.Element; import org.w3c.dom.Node; import plugins.adufour.blocks.tools.Display; @@ -604,8 +605,7 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, final String blockType = XMLUtil.getAttributeValue(blockNode, "blockType", null); try { - final Class<? extends Block> blockClass = installRequiredBlock( - XMLUtil.getAttributeValue(blockNode, "className", null), blockType); + final Class<? extends Block> blockClass = installRequiredBlock(XMLUtil.getAttributeValue(blockNode, "className", null), blockType); block = blockClass.getDeclaredConstructor().newInstance(); @@ -632,11 +632,12 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, final Var<?> var = inputVars.get(uid); if (var == null) { - if (noWarnings) { + /*if (noWarnings) { System.err.println("Error(s) while loading protocol:"); noWarnings = false; } - System.err.println(new NoSuchVariableException(this, uid).getMessage()); + System.err.println(new NoSuchVariableException(this, uid).getMessage());*/ + IcyLogger.warn(BlockDescriptor.class, new NoSuchVariableException(this, uid), "Error while loading protocol."); continue; } @@ -669,11 +670,12 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, final Var<?> var = outputVars.get(uid); if (var == null) { - if (noWarnings) { + /*if (noWarnings) { System.err.println("Error(s) while loading protocol:"); noWarnings = false; } - System.err.println(new NoSuchVariableException(this, uid).getMessage()); + System.err.println(new NoSuchVariableException(this, uid).getMessage());*/ + IcyLogger.warn(BlockDescriptor.class, new NoSuchVariableException(this, uid), "Error while loading protocol."); continue; } @@ -698,7 +700,7 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, throw new BlocksException("Cannot create block (" + e1.getMessage() + ") => class not found", true); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { - e.printStackTrace(); + IcyLogger.error(BlockDescriptor.class, e, e.getLocalizedMessage()); } return noWarnings; @@ -802,11 +804,10 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, newBlock = blockClass.getDeclaredConstructor().newInstance(); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e1) { - e1.printStackTrace(); + IcyLogger.error(BlockDescriptor.class, e1, e1.getLocalizedMessage()); } - cpy = (newBlock instanceof WorkFlow ? ((WorkFlow) newBlock).getBlockDescriptor() - : new BlockDescriptor(-1, newBlock)); + cpy = (newBlock instanceof WorkFlow ? ((WorkFlow) newBlock).getBlockDescriptor() : new BlockDescriptor(-1, newBlock)); cpy.setDefinedName(getDefinedName()); cpy.setLocation(getLocation().x + 12, getLocation().y + 12); @@ -950,24 +951,28 @@ public class BlockDescriptor implements Runnable, VarListener, VarListListener, private static void cloneLinks(final Iterable<Link<?>> iterable, final Map<BlockDescriptor, BlockDescriptor> copies, final WorkFlow dest) { for (final Link<?> l : iterable) { if (l.srcBlock.getBlock() instanceof Loop || l.dstBlock.getBlock() instanceof Loop) { - System.err.println("Warning : cannot copy a link to a loop variable"); + IcyLogger.warn(BlockDescriptor.class, "Cannot copy a link to a loop variable."); continue; } if (l.srcBlock.getBlock() instanceof WorkFlow || l.dstBlock.getBlock() instanceof WorkFlow) { - System.err.println("Warning : cannot copy a link to an exposed variable"); + IcyLogger.warn(BlockDescriptor.class, "Cannot copy a link to an exposed variable."); continue; } try { - dest.addLink(copies.get(l.srcBlock), + dest.addLink( + copies.get(l.srcBlock), copies.get(l.srcBlock).inputVars.get(l.srcBlock.inputVars.getID(l.srcVar)), copies.get(l.dstBlock), - copies.get(l.dstBlock).inputVars.get(l.dstBlock.inputVars.getID(l.dstVar))); + copies.get(l.dstBlock).inputVars.get(l.dstBlock.inputVars.getID(l.dstVar)) + ); } catch (final NoSuchVariableException nsve) { - dest.addLink(copies.get(l.srcBlock), + dest.addLink( + copies.get(l.srcBlock), copies.get(l.srcBlock).outputVars.get(l.srcBlock.outputVars.getID(l.srcVar)), copies.get(l.dstBlock), - copies.get(l.dstBlock).inputVars.get(l.dstBlock.inputVars.getID(l.dstVar))); + copies.get(l.dstBlock).inputVars.get(l.dstBlock.inputVars.getID(l.dstVar)) + ); } } } diff --git a/src/main/java/plugins/adufour/blocks/lang/FileBatch.java b/src/main/java/plugins/adufour/blocks/lang/FileBatch.java index cdf415b1e5f0f29db11b01c1d788c5b06dcc1fad..356ecf8e558896d7b332d714b9bcbd86d3971e20 100644 --- a/src/main/java/plugins/adufour/blocks/lang/FileBatch.java +++ b/src/main/java/plugins/adufour/blocks/lang/FileBatch.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.blocks.lang; -import icy.file.FileUtil; -import icy.gui.frame.progress.AnnounceFrame; -import icy.main.Icy; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.gui.frame.progress.AnnounceFrame; +import org.bioimageanalysis.icy.io.FileUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/lang/Link.java b/src/main/java/plugins/adufour/blocks/lang/Link.java index 0c8373dbee66247aac3b23197036dacc9a577b23..1ed8952c05f474e3e77cdb934c427b95f662d4eb 100644 --- a/src/main/java/plugins/adufour/blocks/lang/Link.java +++ b/src/main/java/plugins/adufour/blocks/lang/Link.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,9 @@ package plugins.adufour.blocks.lang; -import icy.file.xml.XMLPersistent; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.io.xml.XMLPersistent; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import org.w3c.dom.Element; import org.w3c.dom.Node; import plugins.adufour.blocks.util.BlocksException; @@ -86,7 +87,7 @@ public class Link<T> implements XMLPersistent { theSrcVar = theSrcBlock.inputVars.get(srcVarID); if (theSrcVar == null) { - System.err.println("Cannot create a link from variable " + srcVarID + " (from block " + theSrcBlock + ")"); + IcyLogger.error(Link.class, "Cannot create a link from variable " + srcVarID + " (from block " + theSrcBlock + ")"); return false; } diff --git a/src/main/java/plugins/adufour/blocks/lang/Loop.java b/src/main/java/plugins/adufour/blocks/lang/Loop.java index fdbcbe2992a723e8eea000698a0e2c5984d390c2..c47164869c7cf955b1a479067933229d69c745a0 100644 --- a/src/main/java/plugins/adufour/blocks/lang/Loop.java +++ b/src/main/java/plugins/adufour/blocks/lang/Loop.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.lang; -import icy.system.IcyHandledException; +import org.bioimageanalysis.icy.system.IcyHandledException; import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus; import plugins.adufour.blocks.tools.ReLoop; import plugins.adufour.blocks.util.BlocksException; @@ -145,7 +145,7 @@ public class Loop extends WorkFlow { afterIteration(); } - if (exceptions.size() > 0) { + if (!exceptions.isEmpty()) { final StringBuilder message = new StringBuilder("The following errors occurred during the loop:\n\n"); for (final Exception e : exceptions) message.append(" - ").append(e.getMessage()).append("\n"); @@ -213,9 +213,7 @@ public class Loop extends WorkFlow { } catch (final LoopException e) { // authorize loops only if the destination is a "ReLoop" block - if (link.dstBlock.getBlock() instanceof ReLoop) { - final ReLoop reLoop = (ReLoop) link.dstBlock.getBlock(); - + if (link.dstBlock.getBlock() instanceof final ReLoop reLoop) { if (link.dstVar == reLoop.reloopValue) return; } diff --git a/src/main/java/plugins/adufour/blocks/lang/RangeLoop.java b/src/main/java/plugins/adufour/blocks/lang/RangeLoop.java index 363cd4605ce1728f714306a5007bd7e321893f7d..254b7a13cfeb1d22732b7eb06c7012a4610793f5 100644 --- a/src/main/java/plugins/adufour/blocks/lang/RangeLoop.java +++ b/src/main/java/plugins/adufour/blocks/lang/RangeLoop.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/lang/SequenceFileBatch.java b/src/main/java/plugins/adufour/blocks/lang/SequenceFileBatch.java index a35621ae6ad4cb2ab8900c9606cd7c4ff9945caa..707f59ae3cf612bcd2409d31d4bcf2f1940f13a7 100644 --- a/src/main/java/plugins/adufour/blocks/lang/SequenceFileBatch.java +++ b/src/main/java/plugins/adufour/blocks/lang/SequenceFileBatch.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.lang; -import icy.file.Loader; +import org.bioimageanalysis.icy.io.Loader; import plugins.adufour.vars.lang.VarSequence; import java.io.File; diff --git a/src/main/java/plugins/adufour/blocks/lang/SequenceSeriesBatch.java b/src/main/java/plugins/adufour/blocks/lang/SequenceSeriesBatch.java index df3eb2be5bc7a5e5ab73332f33a8fa46d1d884cd..e0bb3d7e07c9c0a37a1159d529d674be6c32a014 100644 --- a/src/main/java/plugins/adufour/blocks/lang/SequenceSeriesBatch.java +++ b/src/main/java/plugins/adufour/blocks/lang/SequenceSeriesBatch.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,10 +18,10 @@ package plugins.adufour.blocks.lang; -import icy.common.exception.UnsupportedFormatException; -import icy.file.Loader; -import icy.file.SequenceFileImporter; -import icy.sequence.MetaDataUtil; +import org.bioimageanalysis.icy.common.exception.UnsupportedFormatException; +import org.bioimageanalysis.icy.io.Loader; +import org.bioimageanalysis.icy.io.SequenceFileImporter; +import org.bioimageanalysis.icy.model.sequence.MetaDataUtil; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; import plugins.adufour.vars.lang.VarFile; @@ -30,7 +30,6 @@ import plugins.adufour.vars.util.VarException; import plugins.kernel.importer.LociImporterPlugin; import java.io.File; -import java.io.IOException; /** * A Sequence series batch will iteratively load all series contained in a multi-series @@ -93,12 +92,12 @@ public class SequenceSeriesBatch extends Batch { catch (final UnsupportedFormatException e) { throw new VarException(multiSeriesFile, path + " is not an imaging file"); } - catch (final IOException e) { - throw new VarException(multiSeriesFile, "Unable to read " + path); - } catch (final InterruptedException e) { throw new VarException(multiSeriesFile, "Process interrupted !"); } + catch (final Exception e) { + throw new VarException(multiSeriesFile, "Unable to read " + path); + } } @Override diff --git a/src/main/java/plugins/adufour/blocks/lang/WorkFlow.java b/src/main/java/plugins/adufour/blocks/lang/WorkFlow.java index 47b04f3d72d12e2b98b67f1042f7114bc7788428..b7be8a6e4858e241a58ed43d4d55018e33afdf84 100644 --- a/src/main/java/plugins/adufour/blocks/lang/WorkFlow.java +++ b/src/main/java/plugins/adufour/blocks/lang/WorkFlow.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,13 +18,14 @@ package plugins.adufour.blocks.lang; -import icy.gui.dialog.ConfirmDialog; -import icy.main.Icy; -import icy.math.UnitUtil; -import icy.plugin.abstract_.Plugin; -import icy.system.IcyHandledException; -import icy.system.thread.ThreadUtil; -import icy.util.StringUtil; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.common.math.UnitUtil; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.dialog.ConfirmDialog; +import org.bioimageanalysis.icy.system.IcyHandledException; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; +import org.jetbrains.annotations.NotNull; import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus; import plugins.adufour.blocks.tools.input.InputBlock; import plugins.adufour.blocks.tools.output.OutputBlock; @@ -432,7 +433,7 @@ public class WorkFlow extends Plugin implements Block, Iterable<BlockDescriptor> } @Override - public Iterator<BlockDescriptor> iterator() { + public @NotNull Iterator<BlockDescriptor> iterator() { // return orderedBlocks.iterator(); return new Iterator<>() { private final Iterator<BlockDescriptor> orderedBlocksIt = orderedBlocks.iterator(); @@ -518,8 +519,7 @@ public class WorkFlow extends Plugin implements Block, Iterable<BlockDescriptor> public void removeBlock(final BlockDescriptor blockInfo, boolean checkSelection) { // pops out workflows' selections - if (blockInfo.getBlock() instanceof WorkFlow) { - final WorkFlow wf = ((WorkFlow) blockInfo.getBlock()); + if (blockInfo.getBlock() instanceof final WorkFlow wf) { if (checkSelection && !wf.getBlockSelection().isEmpty()) try { // use location in the main container instead of in the inner workflow @@ -722,7 +722,7 @@ public class WorkFlow extends Plugin implements Block, Iterable<BlockDescriptor> */ @Override public void run() { - if (orderedBlocks.size() == 0) + if (orderedBlocks.isEmpty()) return; descriptor.setStatus(BlockStatus.RUNNING); diff --git a/src/main/java/plugins/adufour/blocks/tools/Accumulator.java b/src/main/java/plugins/adufour/blocks/tools/Accumulator.java index 90b6336a3a89ccddf1839fddfee5ef3dc89315a5..6755e81e86ac130d6d4d4056e37c4940eb06bf9d 100644 --- a/src/main/java/plugins/adufour/blocks/tools/Accumulator.java +++ b/src/main/java/plugins/adufour/blocks/tools/Accumulator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.blocks.util.VarListListener; import plugins.adufour.vars.lang.Var; @@ -36,6 +36,7 @@ public class Accumulator extends Plugin implements ToolsBlock, TypeChangeListene private final VarMutable output = new VarMutable("output", null); + @SuppressWarnings("SuspiciousSystemArraycopy") @Override public void run() { int arrayLength = 0; diff --git a/src/main/java/plugins/adufour/blocks/tools/Display.java b/src/main/java/plugins/adufour/blocks/tools/Display.java index 6fec431bcec4a279f4a67bab1b2505153358b793..4bc82e10f82c3a0089f252c913aa0c5be3f9a9dc 100644 --- a/src/main/java/plugins/adufour/blocks/tools/Display.java +++ b/src/main/java/plugins/adufour/blocks/tools/Display.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,9 @@ package plugins.adufour.blocks.tools; -import icy.main.Icy; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.adufour.blocks.lang.Block; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.Var; @@ -33,7 +34,7 @@ public class Display extends Plugin implements Block { public void run() { if (Icy.getMainInterface().isHeadLess()) { // Print to the standard output stream - System.out.println(object.getValueAsString()); + IcyLogger.info(Display.class, object.getValueAsString()); } } diff --git a/src/main/java/plugins/adufour/blocks/tools/Indexer.java b/src/main/java/plugins/adufour/blocks/tools/Indexer.java index 1f07fba5f251855da4c86edf0fa80b7cf73800ce..228218e012c1808bcfccaceaa7ca7341a7d5aa6f 100644 --- a/src/main/java/plugins/adufour/blocks/tools/Indexer.java +++ b/src/main/java/plugins/adufour/blocks/tools/Indexer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.Var; import plugins.adufour.vars.lang.VarInteger; diff --git a/src/main/java/plugins/adufour/blocks/tools/Iterator.java b/src/main/java/plugins/adufour/blocks/tools/Iterator.java index 24aa0b33fa89d9cf20be79106595f87200d24e21..9ea12b0b2e95e429e27f0c4193ef698ac17309aa 100644 --- a/src/main/java/plugins/adufour/blocks/tools/Iterator.java +++ b/src/main/java/plugins/adufour/blocks/tools/Iterator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.*; import plugins.adufour.vars.util.VarListener; diff --git a/src/main/java/plugins/adufour/blocks/tools/ListSize.java b/src/main/java/plugins/adufour/blocks/tools/ListSize.java index 1c32e4cd11ff496325ce48909877d55cdad86957..b49101be7b5bb6e30b0b2484d2ac088f251c5486 100644 --- a/src/main/java/plugins/adufour/blocks/tools/ListSize.java +++ b/src/main/java/plugins/adufour/blocks/tools/ListSize.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarInteger; import plugins.adufour.vars.lang.VarMutableArray; diff --git a/src/main/java/plugins/adufour/blocks/tools/ReLoop.java b/src/main/java/plugins/adufour/blocks/tools/ReLoop.java index 74af8efa5893135c8dd30d4ef54ab43a50036876..7af37b57f59175837f3de086119d3056b7806c7c 100644 --- a/src/main/java/plugins/adufour/blocks/tools/ReLoop.java +++ b/src/main/java/plugins/adufour/blocks/tools/ReLoop.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarMutable; diff --git a/src/main/java/plugins/adufour/blocks/tools/ToolsBlock.java b/src/main/java/plugins/adufour/blocks/tools/ToolsBlock.java index e1888ff52a9f8f7d7f666cff92cd604b9c939f32..631d1ee7b3e12049fe34a8c68047b299d5647666 100644 --- a/src/main/java/plugins/adufour/blocks/tools/ToolsBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/ToolsBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/CallIJMacro.java b/src/main/java/plugins/adufour/blocks/tools/ij/CallIJMacro.java deleted file mode 100644 index 25c4dc304f0bcfbcea0dcd619d814b04233b77f9..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/CallIJMacro.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.plugin.abstract_.Plugin; -import ij.IJ; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarFile; - -public class CallIJMacro extends Plugin implements IJBlock { - private final VarFile macroFile = new VarFile("Macro file", null); - - @Override - public void declareInput(final VarList inputMap) { - inputMap.add("Macro file", macroFile); - } - - @Override - public void declareOutput(final VarList outputMap) { - - } - - @Override - public void run() { - IJ.runMacroFile(macroFile.getValue(true).getPath()); - } - -} diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/CallIJPlugin.java b/src/main/java/plugins/adufour/blocks/tools/ij/CallIJPlugin.java deleted file mode 100644 index d98232c0a37f05ee35bdedba7a3169c6c618d3e5..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/CallIJPlugin.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.plugin.abstract_.Plugin; -import icy.system.IcyHandledException; -import ij.IJ; -import ij.ImagePlus; -import ij.WindowManager; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarImagePlus; -import plugins.adufour.vars.lang.VarString; - -public class CallIJPlugin extends Plugin implements IJBlock { - private final VarImagePlus varIp = new VarImagePlus("Input ImagePlus", null); - - private final VarString pluginName = new VarString("plug-in name", ""); - - private final VarString pluginParams = new VarString("parameters", ""); - - private final VarImagePlus varActiveIP = new VarImagePlus("Output (active) ImagePlus", null); - - @Override - public void run() { - try { - final ImagePlus imgPlus = varIp.getValue(false); - final String params = pluginParams.getValue(false); - - if (imgPlus != null) - IJ.run(imgPlus, pluginName.getValue(true), params); - else - IJ.run(pluginName.getValue(true), params); - - ImagePlus output = null; - - try { - // Set the output image (if available) with the following priority - output = WindowManager.getCurrentImage(); - } - catch (final RuntimeException e) { - // just in case - } - - // Default to the current "temporary" image (if any) - if (output == null) - output = WindowManager.getTempCurrentImage(); - // Default to the input image (may have been modified "in-place" - if (output == null) - output = varIp.getValue(); - - varActiveIP.setValue(output); - } - catch (final RuntimeException e) { - throw new IcyHandledException(e.getLocalizedMessage()); - } - } - - @Override - public void declareInput(final VarList inputMap) { - inputMap.add("Input ImagePlus", varIp); - inputMap.add("ImageJ plug-in name", pluginName); - inputMap.add("ImageJ plug-in parameters", pluginParams); - } - - @Override - public void declareOutput(final VarList outputMap) { - outputMap.add("Output ImagePlus", varActiveIP); - } -} diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/GetActiveImagePlus.java b/src/main/java/plugins/adufour/blocks/tools/ij/GetActiveImagePlus.java deleted file mode 100644 index 72b82b3f0989d9b38949ab0e20247644d985ff6f..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/GetActiveImagePlus.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.plugin.abstract_.Plugin; -import ij.ImagePlus; -import ij.WindowManager; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarImagePlus; - -public class GetActiveImagePlus extends Plugin implements IJBlock { - private final VarImagePlus ip = new VarImagePlus("ImagePlus", null); - - @Override - public void declareInput(final VarList inputMap) { - // - } - - @Override - public void declareOutput(final VarList outputMap) { - outputMap.add("ImagePlus", ip); - } - - @Override - public void run() { - // Set the output image (if available) with the following priority - ImagePlus imgPlus = WindowManager.getCurrentImage(); - // Default to the current "temporary" image (if any) - if (imgPlus == null) - imgPlus = WindowManager.getTempCurrentImage(); - - ip.setValue(imgPlus); - } -} diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/IJBlock.java b/src/main/java/plugins/adufour/blocks/tools/ij/IJBlock.java deleted file mode 100644 index 9cac90ed26bd414358544ee9aa90d269d4678e06..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/IJBlock.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import plugins.adufour.blocks.lang.Block; - -/** - * Interface used to flag ImageJ-related blocks - * - * @author Alexandre Dufour - */ -public interface IJBlock extends Block { -} \ No newline at end of file diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/ImagePlusToSequence.java b/src/main/java/plugins/adufour/blocks/tools/ij/ImagePlusToSequence.java deleted file mode 100644 index 91af54ad74b05e79ead48285f855fd4021d34a3e..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/ImagePlusToSequence.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.imagej.ImageJUtil; -import icy.plugin.abstract_.Plugin; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarImagePlus; -import plugins.adufour.vars.lang.VarSequence; -import plugins.adufour.vars.util.VarException; - -public class ImagePlusToSequence extends Plugin implements IJBlock { - private final VarImagePlus vip = new VarImagePlus("IJ ImagePlus", null); - private final VarSequence vs = new VarSequence("Icy Sequence", null); - - @Override - public void run() { - try { - vs.setValue(ImageJUtil.convertToIcySequence(vip.getValue(true), null)); - } - catch (final IllegalAccessError e) { - throw new VarException(vip, e.getMessage()); - } - catch (final InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - - @Override - public void declareInput(final VarList inputMap) { - inputMap.add("IJ ImagePlus", vip); - } - - @Override - public void declareOutput(final VarList outputMap) { - outputMap.add("Icy Sequence", vs); - } - -} diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/SequenceToImagePlus.java b/src/main/java/plugins/adufour/blocks/tools/ij/SequenceToImagePlus.java deleted file mode 100644 index cb8c97f0de87082f3337162627ad5f97c4ea1bf1..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/SequenceToImagePlus.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.imagej.ImageJUtil; -import icy.plugin.abstract_.Plugin; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarImagePlus; -import plugins.adufour.vars.lang.VarSequence; -import plugins.adufour.vars.util.VarException; - -public class SequenceToImagePlus extends Plugin implements IJBlock { - private final VarSequence vs = new VarSequence("Icy Sequence", null); - private final VarImagePlus vip = new VarImagePlus("ImagePlus", null); - - @Override - public void run() { - try { - vip.setValue(ImageJUtil.convertToImageJImage(vs.getValue(true), null)); - } - catch (final IllegalAccessError e) { - throw new VarException(vs, e.getMessage()); - } - catch (final InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - - @Override - public void declareInput(final VarList inputMap) { - inputMap.add("Icy Sequence", vs); - } - - @Override - public void declareOutput(final VarList outputMap) { - outputMap.add("IJ ImagePlus", vip); - } - -} diff --git a/src/main/java/plugins/adufour/blocks/tools/ij/ShowImagePlus.java b/src/main/java/plugins/adufour/blocks/tools/ij/ShowImagePlus.java deleted file mode 100644 index fe3314a346da401e57be838ddbb1631001266f20..0000000000000000000000000000000000000000 --- a/src/main/java/plugins/adufour/blocks/tools/ij/ShowImagePlus.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2010-2023. Institut Pasteur. - * - * This file is part of Icy. - * Icy is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Icy is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Icy. If not, see <https://www.gnu.org/licenses/>. - */ - -package plugins.adufour.blocks.tools.ij; - -import icy.plugin.abstract_.Plugin; -import plugins.adufour.blocks.util.VarList; -import plugins.adufour.vars.lang.VarImagePlus; - -public class ShowImagePlus extends Plugin implements IJBlock { - private final VarImagePlus ip = new VarImagePlus("ImagePlus", null); - - @Override - public void declareInput(final VarList inputMap) { - inputMap.add("ImagePlus", ip); - } - - @Override - public void declareOutput(final VarList outputMap) { - } - - @Override - public void run() { - ip.getValue(true).show(); - } - -} diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Boolean.java b/src/main/java/plugins/adufour/blocks/tools/input/Boolean.java index 13dbfd7b9395cf833b3b1d9f866e6a99dc03c693..1ad2592307cf62283303011b5ad9b7e5f95310b2 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Boolean.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Boolean.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarBoolean; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Decimal.java b/src/main/java/plugins/adufour/blocks/tools/input/Decimal.java index 3ccdbb6f44ae1333cef77e286f4d1d30a376c9d0..f0912ef84d727bffab1df37ba3b97698f654bdcc 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Decimal.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Decimal.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarDouble; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Decimals.java b/src/main/java/plugins/adufour/blocks/tools/input/Decimals.java index 0a724d1a38c8fdd076bcb64af8f8020ad17df040..6139ba13b2c2f34cb9604cea4b59cc7d2c1eaad7 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Decimals.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Decimals.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarDoubleArrayNative; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/File.java b/src/main/java/plugins/adufour/blocks/tools/input/File.java index 5c4140fd2343762a417515a3a899fd4f01bd3188..400058fe228d8375a2df433aa0fd1ad70a7e51e3 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/File.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/File.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Files.java b/src/main/java/plugins/adufour/blocks/tools/input/Files.java index 43dc14792872b6a7316d32cfb3007c29cd8b9246..4d0760e969c3de7dd421a8303bdaa5bf19c56ef6 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Files.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Files.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeListModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Folder.java b/src/main/java/plugins/adufour/blocks/tools/input/Folder.java index 5a96c272dc07237a778a2f55ea0488b5de1331f5..ec80e2eb8758d2c0be95999c9c330656d6d42fd0 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Folder.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Folder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Folders.java b/src/main/java/plugins/adufour/blocks/tools/input/Folders.java index 0a390ef0eb4c99df23db0960b2cbfa265187f1d4..8b49e0be6af710b0bbddaba3904844f98352e2f2 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Folders.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Folders.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeListModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/InputBlock.java b/src/main/java/plugins/adufour/blocks/tools/input/InputBlock.java index e8ba5a337e2a0b35f6249840fe14bd9534113290..7599fa0a661628b7b6cd71cb6dd1c501be4205d3 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/InputBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/InputBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Integer.java b/src/main/java/plugins/adufour/blocks/tools/input/Integer.java index 9fc5b5930346862fec75625600e492dda175ac81..53b76fb3207f2b41006ae205442dda8eae615c3d 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Integer.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Integer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarInteger; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Integers.java b/src/main/java/plugins/adufour/blocks/tools/input/Integers.java index fb97208fa265862bbf0a15df573982ca816d8d88..994fc2290cc960d99255e0095a2fb7a467bbdc23 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Integers.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Integers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarIntegerArrayNative; diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Sequence.java b/src/main/java/plugins/adufour/blocks/tools/input/Sequence.java index 9e9f9fa56bb4c3682df2e99ee7337c174d4f81e6..95ae6020920c1b8e31365fc1b4c32cd8b3e69edc 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Sequence.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Sequence.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequence; /** - * Utility block reading a {@link icy.sequence.Sequence} object + * Utility block reading a {@link org.bioimageanalysis.icy.model.sequence.Sequence} object * * @author Alexandre Dufour */ diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Sequences.java b/src/main/java/plugins/adufour/blocks/tools/input/Sequences.java index 6395bfef983adc86b19623d4039fb5166355ae82..5ea4524fa0ae823cf62999fb762a720ded1e09b2 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Sequences.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Sequences.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequenceArray; /** - * Utility block reading a list of {@link icy.sequence.Sequence} objects + * Utility block reading a list of {@link org.bioimageanalysis.icy.model.sequence.Sequence} objects * * @author Alexandre Dufour */ diff --git a/src/main/java/plugins/adufour/blocks/tools/input/Text.java b/src/main/java/plugins/adufour/blocks/tools/input/Text.java index 7d74e34cc2f579bfe5c5c1671b0d11a50f179abf..075d27686cedcc785e900ace51173b8c691a19c4 100644 --- a/src/main/java/plugins/adufour/blocks/tools/input/Text.java +++ b/src/main/java/plugins/adufour/blocks/tools/input/Text.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.input; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarString; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/AppendFilePath.java b/src/main/java/plugins/adufour/blocks/tools/io/AppendFilePath.java index c55616a901b510144a62faae6ece8ffac4683794..9e3eef532251b6c5be04329bbc29d3ace214b8fc 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/AppendFilePath.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/AppendFilePath.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.FileUtil; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.FileUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarBoolean; import plugins.adufour.vars.lang.VarFile; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/CreateFile.java b/src/main/java/plugins/adufour/blocks/tools/io/CreateFile.java index f0ccb87eb7870467eb89e091fa3374d19491e9ec..abc30a2ebf99536840a7dd9f933341bbf8f74f43 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/CreateFile.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/CreateFile.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.FileUtil; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.FileUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/CreateFolder.java b/src/main/java/plugins/adufour/blocks/tools/io/CreateFolder.java index d3f539495513d6395f548c191bf633e3c1b53392..5644d8312521ef8fc1ec3642f37571c4ebca48da 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/CreateFolder.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/CreateFolder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.FileUtil; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.FileUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/FileToPath.java b/src/main/java/plugins/adufour/blocks/tools/io/FileToPath.java index c12a94e7c78a57dcf06c868947f3f1986358a265..e8bc94c5087dbdcb05006b06fea406d5b4bc8b75 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/FileToPath.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/FileToPath.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.io; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarFile; import plugins.adufour.vars.lang.VarString; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/FileToSequence.java b/src/main/java/plugins/adufour/blocks/tools/io/FileToSequence.java index 5c08e27f6bf325f76635fd774e751caf7bd31bba..126b868ac5bc7530382241ed16023f4a275d5582 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/FileToSequence.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/FileToSequence.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.blocks.tools.io; -import icy.file.Loader; -import icy.plugin.abstract_.Plugin; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.Loader; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarFile; import plugins.adufour.vars.lang.VarInteger; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/FilesToSequence.java b/src/main/java/plugins/adufour/blocks/tools/io/FilesToSequence.java index 831aa2b4364e36af08631adb1e16ef03851ddccb..0aa810ea0526a2b18ff00f7bc026dec1bb892b18 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/FilesToSequence.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/FilesToSequence.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.Loader; -import icy.plugin.abstract_.Plugin; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.Loader; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarFileArray; import plugins.adufour.vars.lang.VarSequence; @@ -31,7 +30,7 @@ import java.util.ArrayList; import java.util.List; /** - * Utility block that reads multiple image files from disk into a {@link Sequence} + * Utility block that reads multiple image files from disk into a {@link org.bioimageanalysis.icy.model.sequence.Sequence} * * @author Alexandre Dufour */ diff --git a/src/main/java/plugins/adufour/blocks/tools/io/GetSequenceFolder.java b/src/main/java/plugins/adufour/blocks/tools/io/GetSequenceFolder.java index 0c22f9481c9c8cfc7a7d3a7885e6c727681712b9..32be0ce97dcf2be2750c6321cdcb4e9e6586bb32 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/GetSequenceFolder.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/GetSequenceFolder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.FileUtil; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.FileUtil; import plugins.adufour.blocks.tools.sequence.SequenceBlock; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarFile; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/IOBlock.java b/src/main/java/plugins/adufour/blocks/tools/io/IOBlock.java index d9c51cde6f52e388642511928b8e7a17d1a4f2c2..41d4a3169122aed3824e42b9d10b1ce7378bf22c 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/IOBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/IOBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -26,5 +26,4 @@ import plugins.adufour.blocks.lang.Block; * @author Alexandre Dufour */ public interface IOBlock extends Block { - } diff --git a/src/main/java/plugins/adufour/blocks/tools/io/PathToFile.java b/src/main/java/plugins/adufour/blocks/tools/io/PathToFile.java index 255d258722e8b423347a19037519d8a2b560a361..a5f6754d6a501cacbc6b4ed0647ce89187a6f724 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/PathToFile.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/PathToFile.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.io; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarFile; import plugins.adufour.vars.lang.VarString; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/SendToSwimmingPool.java b/src/main/java/plugins/adufour/blocks/tools/io/SendToSwimmingPool.java index bbb265f06a1794e7fd1b4c6cbe461c400ba911ac..da2968facf6ddec951217ea20b6742f49049a7c5 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/SendToSwimmingPool.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/SendToSwimmingPool.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.blocks.tools.io; -import icy.main.Icy; -import icy.plugin.abstract_.Plugin; -import icy.swimmingPool.SwimmingObject; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingObject; import plugins.adufour.blocks.lang.Block; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarMutable; diff --git a/src/main/java/plugins/adufour/blocks/tools/io/SequenceToFile.java b/src/main/java/plugins/adufour/blocks/tools/io/SequenceToFile.java index b204e52d575cf2448f3c713c8e4e77ac78138445..4208f3c215a5b99a532514148f580ce347349682 100644 --- a/src/main/java/plugins/adufour/blocks/tools/io/SequenceToFile.java +++ b/src/main/java/plugins/adufour/blocks/tools/io/SequenceToFile.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.io; -import icy.file.Saver; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.io.Saver; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/BooleanOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/BooleanOutput.java index 8aacf28e17c15923e93e60d0ae9570a31b502837..09f12b884e1a900a268eadf5cda0c0a10f308ca9 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/BooleanOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/BooleanOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarBoolean; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/DecimalOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/DecimalOutput.java index 73869f33f7347c60e8a15b6218c2b4ba743f20e2..f85d47803d6e31ec60a61d951cc5c94f344d7d70 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/DecimalOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/DecimalOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarDouble; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/DecimalsOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/DecimalsOutput.java index 063e9a051bfe996045f73a2d711090414dd9a0b4..c3955ef4ee3cf9e76a0d698f3dd9717203a86584 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/DecimalsOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/DecimalsOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarDoubleArrayNative; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/FileOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/FileOutput.java index abb7aeabf7e6c06a965b78153672292ad96d2c0f..b891cca1038296b462060ed66a16a0dd21a99097 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/FileOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/FileOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/FilesOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/FilesOutput.java index 078f130ec036d515ac3d76f4545212003cc240de..f2f85fade30abb09687eef9384d4d8663ceae363 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/FilesOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/FilesOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeListModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/FolderOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/FolderOutput.java index 7aba8f61503fe9f10dd9b7d98bd27f5fa60d584b..c20fdf2d0318cf41fa00f7769d5431043dd87800 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/FolderOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/FolderOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/FoldersOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/FoldersOutput.java index 34da2c1b911dcbbba7f517ba8baef7b4467d1ce6..15231bda156f438268d4cba1e97691eaf0c36cc9 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/FoldersOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/FoldersOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.FileMode; import plugins.adufour.vars.gui.model.FileTypeListModel; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/IntegerOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/IntegerOutput.java index 7373642a9e0d8c68e47ffabb1de2f431ac93708a..2dfad0c769152fd303748cf3b5050184c6187e7b 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/IntegerOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/IntegerOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarInteger; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/IntegersOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/IntegersOutput.java index 63d54564087a22ffd67da590c10e132ce028ba3c..c1d24a490ceb8713efcb3a2c878f52ed7fbe41e0 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/IntegersOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/IntegersOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarIntegerArrayNative; diff --git a/src/main/java/plugins/adufour/blocks/tools/output/OutputBlock.java b/src/main/java/plugins/adufour/blocks/tools/output/OutputBlock.java index ee2ff647ab61014b99dd65e0e74ded7e8646f2e2..f84acb362630072ca49500bb8fb26161b91d99c5 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/OutputBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/OutputBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/tools/output/SequenceOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/SequenceOutput.java index 7ffa75b89d984b506707e6498117c3dd3e16afbe..986420b677fe0cbd521cfcb2a8803915c9e933aa 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/SequenceOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/SequenceOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequence; /** - * Utility block reading a {@link icy.sequence.Sequence} object + * Utility block reading a {@link org.bioimageanalysis.icy.model.sequence.Sequence} object * * @author Alexandre Dufour */ diff --git a/src/main/java/plugins/adufour/blocks/tools/output/SequencesOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/SequencesOutput.java index a9e18ab79697c9f523938cae75fba5f83b58676f..e4b2b3e47a8bae6febc598b096f7b9bea3857d89 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/SequencesOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/SequencesOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequenceArray; /** - * Utility block reading a list of {@link icy.sequence.Sequence} objects + * Utility block reading a list of {@link org.bioimageanalysis.icy.model.sequence.Sequence} objects * * @author Alexandre Dufour */ diff --git a/src/main/java/plugins/adufour/blocks/tools/output/TextOutput.java b/src/main/java/plugins/adufour/blocks/tools/output/TextOutput.java index 773df1996fef5cff6fa79f13f198bc4c0558994d..75e6cec180c062fe4d05c28a28fcd10ad429f1fc 100644 --- a/src/main/java/plugins/adufour/blocks/tools/output/TextOutput.java +++ b/src/main/java/plugins/adufour/blocks/tools/output/TextOutput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.tools.output; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarString; diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/CropSequenceToROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/CropSequenceToROI.java index 06dc8e53db6098ecc046c4985ba91af2cd53f297..48139e75867fc267bf16bdc71b492f7d02629ee8 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/CropSequenceToROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/CropSequenceToROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,14 +18,14 @@ package plugins.adufour.blocks.tools.roi; -import icy.image.IcyBufferedImage; -import icy.image.IcyBufferedImageUtil; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; -import icy.sequence.Sequence; -import icy.type.rectangle.Rectangle5D; -import icy.util.OMEUtil; -import icy.util.StringUtil; +import org.bioimageanalysis.icy.common.geom.rectangle.Rectangle5D; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.OMEUtil; +import org.bioimageanalysis.icy.model.image.IcyBufferedImage; +import org.bioimageanalysis.icy.model.image.IcyBufferedImageUtil; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarGenericArray; import plugins.adufour.vars.lang.VarROIArray; diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/DilateROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/DilateROI.java index fe94702180042e493cda8e49ebd1412282047d59..9c875073d90c1f47716b96097447039b1cfe2f28 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/DilateROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/DilateROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,17 @@ package plugins.adufour.blocks.tools.roi; -import icy.roi.*; -import icy.type.point.Point3D; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DArea; +import org.bioimageanalysis.extension.kernel.roi.roi3d.ROI3DArea; +import org.bioimageanalysis.icy.common.geom.point.Point3D; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.roi.ROI2D; +import org.bioimageanalysis.icy.model.roi.ROI3D; +import org.bioimageanalysis.icy.model.roi.mask.BooleanMask2D; +import org.bioimageanalysis.icy.model.roi.mask.BooleanMask3D; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.adufour.vars.lang.VarROIArray; import plugins.adufour.vars.util.VarException; -import plugins.kernel.roi.roi2d.ROI2DArea; -import plugins.kernel.roi.roi3d.ROI3DArea; import java.awt.*; import java.util.ArrayList; @@ -200,9 +205,7 @@ public class DilateROI extends MorphROI { return r2; } - else if (roi instanceof ROI3D) { - final ROI3D roi3D = (ROI3D) roi; - + else if (roi instanceof final ROI3D roi3D) { final BooleanMask3D m3 = roi3D.getBooleanMask(true); final ROI3DArea r3 = new ROI3DArea(m3); @@ -247,7 +250,7 @@ public class DilateROI extends MorphROI { return r3; } - System.out.println("[Dilate ROI] Warning: unsupported ROI: " + roi.getName()); + IcyLogger.warn(DilateROI.class, "Unsupported ROI: " + roi.getName()); return null; } } diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/ErodeROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/ErodeROI.java index 53fdc2aba554f67710c26480b2e995efad932a07..bdfc66fd5cdfd98e639e0f7c5b3653a6878808ab 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/ErodeROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/ErodeROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,17 @@ package plugins.adufour.blocks.tools.roi; -import icy.roi.*; -import icy.type.point.Point3D; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DArea; +import org.bioimageanalysis.extension.kernel.roi.roi3d.ROI3DArea; +import org.bioimageanalysis.icy.common.geom.point.Point3D; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.roi.ROI2D; +import org.bioimageanalysis.icy.model.roi.ROI3D; +import org.bioimageanalysis.icy.model.roi.mask.BooleanMask2D; +import org.bioimageanalysis.icy.model.roi.mask.BooleanMask3D; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.adufour.vars.lang.VarROIArray; import plugins.adufour.vars.util.VarException; -import plugins.kernel.roi.roi2d.ROI2DArea; -import plugins.kernel.roi.roi3d.ROI3DArea; import java.awt.*; import java.util.ArrayList; @@ -176,9 +181,7 @@ public class ErodeROI extends MorphROI { return r2.getNumberOfPoints() > 0 ? r2 : null; } - else if (roi instanceof ROI3D) { - final ROI3D roi3D = (ROI3D) roi; - + else if (roi instanceof final ROI3D roi3D) { final BooleanMask3D m3 = roi3D.getBooleanMask(true); final ROI3DArea r3 = new ROI3DArea(m3); @@ -237,7 +240,7 @@ public class ErodeROI extends MorphROI { return r3.getNumberOfPoints() > 0 ? r3 : null; } - System.out.println("[Erode ROI] Warning: unsupported ROI: " + roi.getName()); + IcyLogger.warn(ErodeROI.class, "Unsupported ROI: " + roi.getName()); return null; } } diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/GetROIFromSequence.java b/src/main/java/plugins/adufour/blocks/tools/roi/GetROIFromSequence.java index c2d502a8fed6c079ee873f8a5a78dec75568411b..477ec74f789ce94a5dc34e63c0fa5a96f45c4b42 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/GetROIFromSequence.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/GetROIFromSequence.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.blocks.tools.roi; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarEnum; import plugins.adufour.vars.lang.VarROIArray; diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/MergeROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/MergeROI.java index 640940bd401155520df23469c0e803e7b3f0e8db..5bd2159e0afaf441855d1cc548a7257cb4f1ae4e 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/MergeROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/MergeROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,10 +18,10 @@ package plugins.adufour.blocks.tools.roi; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; -import icy.roi.ROIUtil; -import icy.util.ShapeUtil.BooleanOperator; +import org.bioimageanalysis.icy.common.geom.shape.ShapeUtil; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.roi.ROIUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarEnum; import plugins.adufour.vars.lang.VarROIArray; @@ -30,7 +30,7 @@ import java.util.Arrays; import java.util.List; public class MergeROI extends Plugin implements ROIBlock { - private final VarEnum<BooleanOperator> operation = new VarEnum<>("Merge operation", BooleanOperator.AND); + private final VarEnum<ShapeUtil.BooleanOperator> operation = new VarEnum<>("Merge operation", ShapeUtil.BooleanOperator.AND); private final VarROIArray roiIn = new VarROIArray("List of ROI"); diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/MorphROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/MorphROI.java index b1dc9df83b1cd45da26cac390ddc59ffa73bc169..18c5e53014679283e9606b79ff94d3340f4831a0 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/MorphROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/MorphROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.roi; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.roi.ROI; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.gui.model.IntegerRangeModel; import plugins.adufour.vars.lang.VarEnum; diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/ROIBlock.java b/src/main/java/plugins/adufour/blocks/tools/roi/ROIBlock.java index 5c7ccfe112a4b8f3b2a9d0e7e32da9221cc2f1d2..a08140bc329a6bc7cc110e334716e21db96bc2e6 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/ROIBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/ROIBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/SubtractROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/SubtractROI.java index ac46a4a0a82a221486aecc038d80705a13a5e374..8beca1bab50febe0a301ddedc91383a51b9ed287 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/SubtractROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/SubtractROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.roi; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.roi.ROI; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarROIArray; diff --git a/src/main/java/plugins/adufour/blocks/tools/roi/TranslateROI.java b/src/main/java/plugins/adufour/blocks/tools/roi/TranslateROI.java index 9d5a1bfabdb9b37708d5eb44b8e913526449ff0a..56952993693b648c1637546c422c16ec76d7006e 100644 --- a/src/main/java/plugins/adufour/blocks/tools/roi/TranslateROI.java +++ b/src/main/java/plugins/adufour/blocks/tools/roi/TranslateROI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,14 +18,14 @@ package plugins.adufour.blocks.tools.roi; -import icy.plugin.abstract_.Plugin; -import icy.roi.ROI; -import icy.type.point.Point5D; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DArea; +import org.bioimageanalysis.extension.kernel.roi.roi3d.ROI3DArea; +import org.bioimageanalysis.icy.common.geom.point.Point5D; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.roi.ROI; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarInteger; import plugins.adufour.vars.lang.VarROIArray; -import plugins.kernel.roi.roi2d.ROI2DArea; -import plugins.kernel.roi.roi3d.ROI3DArea; import java.awt.geom.Point2D; diff --git a/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceBlock.java b/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceBlock.java index 81b2fa1266c8151c74d51e37fb02cd85618ac452..1ce61fd7515a03412654a03835e453558c49a975 100644 --- a/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceBlock.java +++ b/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceBlock.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -26,5 +26,4 @@ import plugins.adufour.blocks.lang.Block; * @author Alexandre Dufour */ public interface SequenceBlock extends Block { - } diff --git a/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceScreenshot.java b/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceScreenshot.java index e04cb02fa473967a81765394fe235c14016ddb92..3f2cee68c5d5412953b85ac668bccaad461691d7 100644 --- a/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceScreenshot.java +++ b/src/main/java/plugins/adufour/blocks/tools/sequence/SequenceScreenshot.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,11 +18,11 @@ package plugins.adufour.blocks.tools.sequence; -import icy.canvas.Canvas2D; -import icy.gui.viewer.Viewer; -import icy.plugin.abstract_.Plugin; -import icy.sequence.Sequence; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.canvas.Canvas2D; +import org.bioimageanalysis.icy.gui.viewer.Viewer; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequence; diff --git a/src/main/java/plugins/adufour/blocks/tools/sequence/ShowSequence.java b/src/main/java/plugins/adufour/blocks/tools/sequence/ShowSequence.java index 756c6e5e66f1944d2e17b690e59145b5f79bf77f..27aa8e580719ae925a6da404d7bee09651e9bbf2 100644 --- a/src/main/java/plugins/adufour/blocks/tools/sequence/ShowSequence.java +++ b/src/main/java/plugins/adufour/blocks/tools/sequence/ShowSequence.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,8 @@ package plugins.adufour.blocks.tools.sequence; -import icy.main.Icy; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.VarSequence; diff --git a/src/main/java/plugins/adufour/blocks/tools/text/AppendText.java b/src/main/java/plugins/adufour/blocks/tools/text/AppendText.java index cb77da266c113fae954352b57f66dc0220a8a9bc..01a6c814cb306d0bb230a2f36592b622d76fa23c 100644 --- a/src/main/java/plugins/adufour/blocks/tools/text/AppendText.java +++ b/src/main/java/plugins/adufour/blocks/tools/text/AppendText.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.blocks.tools.text; -import icy.plugin.abstract_.Plugin; -import icy.plugin.interface_.PluginBundled; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.interface_.PluginBundled; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.adufour.blocks.tools.ToolsBlock; import plugins.adufour.blocks.util.VarList; import plugins.adufour.protocols.Protocols; diff --git a/src/main/java/plugins/adufour/blocks/util/BlockAnnotations.java b/src/main/java/plugins/adufour/blocks/util/BlockAnnotations.java index 9c0ae85ce583559e331be3c03a09fc1dad64ef49..264f2db66f940f9fefda41b960ead51ab3ac7f61 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlockAnnotations.java +++ b/src/main/java/plugins/adufour/blocks/util/BlockAnnotations.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,8 +18,9 @@ package plugins.adufour.blocks.util; -import icy.plugin.abstract_.Plugin; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.adufour.blocks.lang.Block; import plugins.adufour.vars.lang.*; @@ -153,7 +154,7 @@ public class BlockAnnotations { if (outputVariable != null) outputVariable.setValue(result); } catch (final Exception e) { - e.printStackTrace(); + IcyLogger.error(BlockAnnotations.class, e, e.getLocalizedMessage()); } } @@ -171,7 +172,7 @@ public class BlockAnnotations { } } catch (final Exception e) { - e.printStackTrace(); + IcyLogger.error(BlockAnnotations.class, e, e.getLocalizedMessage()); } if (outputVariable != null) outputMap.add("output", outputVariable); @@ -201,7 +202,7 @@ public class BlockAnnotations { } } catch (final Exception e) { - e.printStackTrace(); + IcyLogger.error(BlockAnnotations.class, e, e.getLocalizedMessage()); } } }; diff --git a/src/main/java/plugins/adufour/blocks/util/BlockListener.java b/src/main/java/plugins/adufour/blocks/util/BlockListener.java index 7baf43585f3914f505766f4ede626271eb205c81..e542459c40384efeefeea66515717ef6fec5e6c0 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlockListener.java +++ b/src/main/java/plugins/adufour/blocks/util/BlockListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/BlocksException.java b/src/main/java/plugins/adufour/blocks/util/BlocksException.java index 9d991993675971e3a2b67e23eb4aa1f350391952..ed58ea80589fef7de9de2083727fccee6a2af4d0 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlocksException.java +++ b/src/main/java/plugins/adufour/blocks/util/BlocksException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/BlocksFinder.java b/src/main/java/plugins/adufour/blocks/util/BlocksFinder.java index d66aa967e333cddfc43405c51a2cdf365a4e7481..9db8e164911fd3578918d9d166406f03835eed0f 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlocksFinder.java +++ b/src/main/java/plugins/adufour/blocks/util/BlocksFinder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,14 +18,16 @@ package plugins.adufour.blocks.util; -import icy.gui.component.menu.IcyMenu; -import icy.gui.component.menu.IcyMenuItem; -import icy.gui.component.menu.IcyPluginMenuItem; -import icy.plugin.PluginDescriptor; -import icy.plugin.PluginLoader; -import icy.plugin.abstract_.Plugin; -import icy.util.ClassUtil; -import jiconfont.icons.google_material_design_icons.GoogleMaterialDesignIcons; +import org.bioimageanalysis.icy.common.reflect.ClassUtil; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; +import org.bioimageanalysis.icy.extension.plugin.PluginLoader; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.component.icon.SVGIcon; +import org.bioimageanalysis.icy.gui.component.menu.IcyMenu; +import org.bioimageanalysis.icy.gui.component.menu.IcyMenuItem; +import org.bioimageanalysis.icy.gui.component.menu.IcyPluginMenuItem; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.jetbrains.annotations.NotNull; import plugins.adufour.blocks.lang.Block; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.Loop; @@ -33,7 +35,6 @@ import plugins.adufour.blocks.lang.WorkFlow; import plugins.adufour.blocks.tools.Display; import plugins.adufour.blocks.tools.ReLoop; import plugins.adufour.blocks.tools.ToolsBlock; -import plugins.adufour.blocks.tools.ij.IJBlock; import plugins.adufour.blocks.tools.input.InputBlock; import plugins.adufour.blocks.tools.io.IOBlock; import plugins.adufour.blocks.tools.output.OutputBlock; @@ -106,18 +107,17 @@ public class BlocksFinder { } @Override - public Object getTransferData(final DataFlavor flavor) { + public @NotNull Object getTransferData(final DataFlavor flavor) { return this; } @Override public DataFlavor[] getTransferDataFlavors() { try { - return new DataFlavor[]{ - new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=java.util.ArrayList")}; + return new DataFlavor[]{new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=java.util.ArrayList")}; } catch (final ClassNotFoundException e) { - e.printStackTrace(); + IcyLogger.error(BlocksFinder.class, e, e.getLocalizedMessage()); } return null; } @@ -190,9 +190,9 @@ public class BlocksFinder { * @param searchText String */ public void createSearchMenu(final BlockSearchPanel menuContainer, String searchText) { - final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, true, false, false); + final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, false, false); - if (plugins.size() == 0) { + if (plugins.isEmpty()) { final JMenuItem item = new JMenuItem("The plug-in list has been updated.\nPlease close and re-open the Protocols editor."); item.setFont(item.getFont().deriveFont(Font.ITALIC)); menuContainer.add(item); @@ -270,37 +270,34 @@ public class BlocksFinder { * @param location Point */ public final void createJMenu(final Container menuContainer, final WorkFlowContainer workFlowPane, final Point location) { - final IcyMenu mnBlocks = new IcyMenu("Blocks...", GoogleMaterialDesignIcons.WIDGETS); + final IcyMenu mnBlocks = new IcyMenu("Blocks...", SVGIcon.WIDGETS); //mnBlocks.setIcon(new IcyIcon(ResourceUtil.getAlphaIconAsImage("box.png"), 22)); - final IcyMenu mnInput = new IcyMenu("Read...", GoogleMaterialDesignIcons.REDO); + final IcyMenu mnInput = new IcyMenu("Read...", SVGIcon.REDO); //mnInput.setIcon(new IcyIcon(ResourceUtil.ICON_REDO, 22)); - final IcyMenu mnOutput = new IcyMenu("Out...", GoogleMaterialDesignIcons.UNDO); + final IcyMenu mnOutput = new IcyMenu("Out...", SVGIcon.UNDO); //mnOutput.setIcon(new IcyIcon(ResourceUtil.ICON_UNDO, 22)); - final IcyMenu mnIO = new IcyMenu("I/O...", GoogleMaterialDesignIcons.SAVE); + final IcyMenu mnIO = new IcyMenu("I/O...", SVGIcon.SAVE); //mnIO.setIcon(new IcyIcon(ResourceUtil.ICON_SAVE, 22)); - final IcyMenu mnSeq = new IcyMenu("Sequence...", GoogleMaterialDesignIcons.PHOTO); + final IcyMenu mnSeq = new IcyMenu("Sequence...", SVGIcon.IMAGE); //mnSeq.setIcon(new IcyIcon(ResourceUtil.ICON_PHOTO, 22)); - final IcyMenu mnROI = new IcyMenu("ROI...", GoogleMaterialDesignIcons.GRAIN); + final IcyMenu mnROI = new IcyMenu("ROI...", SVGIcon.DRAW_ABSTRACT); //mnROI.setIcon(new IcyIcon(ResourceUtil.ICON_ROI_POLYGON, 22)); - final IcyMenu mnImageJ = new IcyMenu("ImageJ...", GoogleMaterialDesignIcons.REPORT); - //mnImageJ.setIcon(new IcyIcon(ResourceUtil.ICON_TOIJ, 22)); - - final IcyMenu mnLoops = new IcyMenu("Loop / Batch...", GoogleMaterialDesignIcons.LOOP); + final IcyMenu mnLoops = new IcyMenu("Loop / Batch...", SVGIcon.LAPS); //mnLoops.setIcon(new IcyIcon(ResourceUtil.ICON_RELOAD, 22)); - final IcyMenu mnTools = new IcyMenu("Tools...", GoogleMaterialDesignIcons.SETTINGS); + final IcyMenu mnTools = new IcyMenu("Tools...", SVGIcon.SETTINGS); //mnTools.setIcon(new IcyIcon(ResourceUtil.ICON_TOOLS, 22)); - final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, true, false, false); + final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, false, false); - if (plugins.size() == 0) { - final IcyMenuItem item = new IcyMenuItem("The plug-in list has been updated.\nPlease close and re-open the Protocols editor."); + if (plugins.isEmpty()) { + final JMenuItem item = new JMenuItem("The plug-in list has been updated.\nPlease close and re-open the Protocols editor."); item.setFont(item.getFont().deriveFont(Font.ITALIC)); menuContainer.add(item); return; @@ -343,7 +340,7 @@ public class BlocksFinder { addBlock(workFlowPane, blockClass.getDeclaredConstructor().newInstance(), location); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e1) { - e1.printStackTrace(); + IcyLogger.error(BlocksFinder.class, e1, e1.getLocalizedMessage()); } }); @@ -361,7 +358,7 @@ public class BlocksFinder { addBlock(workFlowPane, blockClass.getDeclaredConstructor().newInstance(), location); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e1) { - e1.printStackTrace(); + IcyLogger.error(BlocksFinder.class, e1, e1.getLocalizedMessage()); } }); mnLoops.add(item); @@ -381,9 +378,6 @@ public class BlocksFinder { else if (ROIBlock.class.isAssignableFrom(blockClass)) { mnROI.add(menuItem); } - else if (IJBlock.class.isAssignableFrom(blockClass)) { - mnImageJ.add(menuItem); - } else if (ToolsBlock.class.isAssignableFrom(blockClass)) { if (blockClass == ReLoop.class) continue; // TODO @@ -400,7 +394,7 @@ public class BlocksFinder { final ArrayList<BlockAnnotations> blocks = BlockAnnotations.findBlockMethods(clazz); for (final BlockAnnotations annotatedMethod : blocks) { - final IcyMenuItem item2 = new IcyMenuItem(clazz.getSimpleName() + "." + annotatedMethod.getName()); + final JMenuItem item2 = new JMenuItem(clazz.getSimpleName() + "." + annotatedMethod.getName()); item2.setToolTipText(annotatedMethod.getDescription()); item2.addActionListener(e -> addBlock(workFlowPane, annotatedMethod.createBlock(), location)); mnBlocks.add(item2); @@ -418,7 +412,6 @@ public class BlocksFinder { splitLongMenus(mnSeq, 15); splitLongMenus(mnROI, 15); splitLongMenus(mnIO, 15); - splitLongMenus(mnImageJ, 15); splitLongMenus(mnLoops, 15); splitLongMenus(mnTools, 15); @@ -428,19 +421,18 @@ public class BlocksFinder { menuContainer.add(mnSeq); menuContainer.add(mnROI); menuContainer.add(mnIO); - menuContainer.add(mnImageJ); menuContainer.add(mnLoops); menuContainer.add(mnTools); // and add the Display block last - final IcyMenuItem mnDisp = new IcyMenuItem("Display", GoogleMaterialDesignIcons.VISIBILITY); + final IcyMenuItem mnDisp = new IcyMenuItem("Display", SVGIcon.VISIBILITY); mnDisp.addActionListener(arg0 -> { try { addBlock(workFlowPane, Display.class.getDeclaredConstructor().newInstance(), location); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e1) { - e1.printStackTrace(); + IcyLogger.error(BlocksFinder.class, e1, e1.getLocalizedMessage()); } }); //mnDisp.setIcon(new IcyIcon(ImageUtil.scaleQuality(ResourceUtil.getAlphaIconAsImage("eye_open.png"), 22, 22))); @@ -535,7 +527,7 @@ public class BlocksFinder { workFlowPane.embedWorkFlow(plugin.getPluginClass().asSubclass(WorkFlow.class)); } catch (final Exception e) { - e.printStackTrace(); + IcyLogger.error(BlocksFinder.class, e, e.getLocalizedMessage()); } }); menuContainer.add(menuItem); @@ -566,17 +558,17 @@ public class BlocksFinder { JMenu currentMenu = menu; - while (components.size() > 0) { + while (!components.isEmpty()) { final int n = Math.min(components.size(), maxItemsPerMenu - 1); for (int i = 0; i < n; i++) - currentMenu.add(components.remove(0)); + currentMenu.add(components.removeFirst()); - if (components.size() > 0) + if (!components.isEmpty()) currentMenu = (JMenu) currentMenu.add(new JMenu("More...")); } - if (components.size() > 0) + if (!components.isEmpty()) throw new RuntimeException("Error while splitting menus: " + components.size() + " are remaining."); } @@ -631,5 +623,4 @@ public class BlocksFinder { return output.toString(); } - } diff --git a/src/main/java/plugins/adufour/blocks/util/BlocksML.java b/src/main/java/plugins/adufour/blocks/util/BlocksML.java index 58a5e504bb49e435b209cfacf109bfd2d7247b31..11aeec236059c00c2ff27a71cd30e1115ec621b1 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlocksML.java +++ b/src/main/java/plugins/adufour/blocks/util/BlocksML.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,16 +18,15 @@ package plugins.adufour.blocks.util; -import icy.gui.frame.progress.AnnounceFrame; -import icy.main.Icy; -import icy.network.NetworkUtil; -import icy.plugin.*; -import icy.plugin.interface_.PluginBundled; -import icy.system.IcyExceptionHandler; -import icy.system.IcyHandledException; -import icy.system.thread.ThreadUtil; -import icy.util.ClassUtil; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.common.reflect.ClassUtil; +import org.bioimageanalysis.icy.extension.plugin.*; +import org.bioimageanalysis.icy.extension.plugin.interface_.PluginBundled; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.bioimageanalysis.icy.system.IcyExceptionHandler; +import org.bioimageanalysis.icy.system.IcyHandledException; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import org.w3c.dom.Document; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; @@ -231,9 +230,7 @@ public class BlocksML { if ((block instanceof InputBlock) || (block instanceof OutputBlock)) XMLUtil.setAttributeValue(blockNode, "CommandLineID", blockData.getCommandLineID()); - if (blockData.isWorkFlow() && block instanceof WorkFlow) { - final WorkFlow innerWorkFlow = (WorkFlow) block; - + if (blockData.isWorkFlow() && block instanceof final WorkFlow innerWorkFlow) { saveWorkFlow_V4(innerWorkFlow, blockNode); final Element varRoot = XMLUtil.addElement(blockNode, "variables"); @@ -243,7 +240,7 @@ public class BlocksML { for (final Var<?> var : blockData.inputVars) { final BlockDescriptor owner = innerWorkFlow.getInputOwner(var); if (owner == null) { - System.err.println("Warning: could not find owner for input variable: \"" + var + "\", skipping"); + IcyLogger.warn(BlocksML.class, "Could not find owner for input variable: \"" + var + "\", skipping."); continue; } final Element varNode = XMLUtil.addElement(inputVarRoot, "variable"); @@ -258,8 +255,7 @@ public class BlocksML { for (final Var<?> var : blockData.outputVars) { final BlockDescriptor owner = innerWorkFlow.getOutputOwner(var); if (owner == null) { - System.err.println( - "Warning: could not find owner for output variable: \"" + var + "\", skipping"); + IcyLogger.warn(BlocksML.class, "Could not find owner for output variable: \"" + var + "\", skipping."); continue; } final Element varNode = XMLUtil.addElement(outputVarRoot, "variable"); @@ -366,11 +362,11 @@ public class BlocksML { // we are live! final String message = "[Protocols] Installing required plugins..."; - System.out.println(message); - AnnounceFrame announcement = null; + IcyLogger.info(BlocksML.class, message); + //AnnounceFrame announcement = null; - if (!Icy.getMainInterface().isHeadLess()) - announcement = new AnnounceFrame(message); + /*if (!Icy.getMainInterface().isHeadLess()) + announcement = new AnnounceFrame(message);*/ final Set<PluginDescriptor> descriptors = new HashSet<>(missingPlugins.size()); @@ -379,7 +375,7 @@ public class BlocksML { if (pDesc == null) { // sadly, I believe the plugin loader could be reloaded at anytime... // double check that for every plugin, just to be safe - if (PluginLoader.getPlugins(Block.class, true, false, false).isEmpty()) + if (PluginLoader.getPlugins(Block.class, false, false).isEmpty()) throw new BlocksReloadedException(); throw new BlocksException("Couldn't find plugin " + ClassUtil.getSimpleClassName(className) + " online", true); @@ -393,9 +389,9 @@ public class BlocksML { PluginInstaller.waitInstall(); PluginLoader.waitWhileLoading(); - System.out.println("[Protocols] Plugins installed successfully."); - if (announcement != null) - announcement.close(); + IcyLogger.info(BlocksML.class, "[Protocols] Plugins installed successfully."); + /*if (announcement != null) + announcement.close();*/ // reload the whole mother! throw new BlocksReloadedException(); @@ -839,7 +835,7 @@ public class BlocksML { * @throws BlocksException If an error occurs while loading the workflow. */ public synchronized void loadWorkFlow_V4(final Element workFlowRoot, final WorkFlow workFlow) throws BlocksException { - boolean hasWarnings = false; + //boolean hasWarnings = false; // Prepare a list of blocks to collapse after loading final ArrayList<BlockDescriptor> blocksToCollapse = new ArrayList<>(); @@ -914,7 +910,7 @@ public class BlocksML { final Var<?> var = blockDescriptor.inputVars.get(uid); if (var == null) { - System.err.println(new NoSuchVariableException(blockDescriptor, uid).getMessage()); + IcyLogger.error(BlocksML.class, new NoSuchVariableException(blockDescriptor, uid), "Error while loading protocol."); continue; } @@ -928,11 +924,11 @@ public class BlocksML { blockDescriptor.inputVars.setVisible(var, visible); } catch (final NoSuchVariableException e) { - if (!hasWarnings) { + /*if (!hasWarnings) { System.err.println("Error(s) while loading protocol:"); hasWarnings = true; - } - System.err.println(new NoSuchVariableException(blockDescriptor, uid).getMessage()); + }*/ + IcyLogger.error(BlocksML.class, new NoSuchVariableException(blockDescriptor, uid), "Error while loading protocol."); } } } @@ -953,11 +949,11 @@ public class BlocksML { blockDescriptor.outputVars.setVisible(var, visible); } catch (final NoSuchVariableException e) { - if (!hasWarnings) { + /*if (!hasWarnings) { System.err.println("Error(s) while loading protocol:"); hasWarnings = true; - } - System.err.println(new NoSuchVariableException(blockDescriptor, uid).getMessage()); + }*/ + IcyLogger.error(BlocksML.class, new NoSuchVariableException(blockDescriptor, uid), "Error while loading protocol."); // throw new NoSuchVariableException(blockInfo, uid); } } @@ -982,11 +978,11 @@ public class BlocksML { blockDescriptor.inputVars.addRuntimeVariable(uid, (VarMutable) var); } else { - if (!hasWarnings) { + /*if (!hasWarnings) { System.err.println("Error(s) while loading protocol:"); hasWarnings = true; - } - System.err.println(new NoSuchVariableException(blockDescriptor, uid).getMessage()); + }*/ + IcyLogger.error(BlocksML.class, new NoSuchVariableException(blockDescriptor, uid), "Error while loading protocol."); continue; // throw new NoSuchVariableException(blockInfo, uid); } @@ -1032,8 +1028,7 @@ public class BlocksML { message += "Reason: " + e.getClass().getName() + " (" + e.getMessage() + ")"; throw new BlocksException(message, true); } - blockDescriptor.inputVars.setVisible(var, - XMLUtil.getAttributeBooleanValue(varNode, "visible", false)); + blockDescriptor.inputVars.setVisible(var, XMLUtil.getAttributeBooleanValue(varNode, "visible", false)); } } @@ -1054,18 +1049,17 @@ public class BlocksML { blockDescriptor.outputVars.addRuntimeVariable(uid, (VarMutable) var); } else { - if (!hasWarnings) { + /*if (!hasWarnings) { System.err.println("Error(s) while loading protocol:"); hasWarnings = true; - } - System.err.println(new NoSuchVariableException(blockDescriptor, uid).getMessage()); + }*/ + IcyLogger.error(BlocksML.class, new NoSuchVariableException(blockDescriptor, uid), "Error while loading protocol."); continue; // throw new NoSuchVariableException(blockInfo, uid); } } - blockDescriptor.outputVars.setVisible(var, - XMLUtil.getAttributeBooleanValue(varNode, "visible", false)); + blockDescriptor.outputVars.setVisible(var, XMLUtil.getAttributeBooleanValue(varNode, "visible", false)); if (var instanceof MutableType) try { @@ -1073,8 +1067,7 @@ public class BlocksML { if (type != null) { if (var instanceof VarMutable) { final Class<?> mutableType = getPrimitiveType(type); - ((MutableType) var) - .setType(mutableType != null ? mutableType : Class.forName(type)); + ((MutableType) var).setType(mutableType != null ? mutableType : Class.forName(type)); } else if (var instanceof VarMutableArray) { ((MutableType) var).setType(Class.forName("[L" + type + ";")); @@ -1082,8 +1075,7 @@ public class BlocksML { } } catch (final ClassNotFoundException e) { - String message = "Unable to read output variable \"" + var.getName() + "\" in block \"" - + blockDescriptor.getDefinedName() + "\".\n"; + String message = "Unable to read output variable \"" + var.getName() + "\" in block \"" + blockDescriptor.getDefinedName() + "\".\n"; message += "Reason: " + e.getClass().getName() + " (" + e.getMessage() + ")"; throw new BlocksException(message, true); } @@ -1125,8 +1117,7 @@ public class BlocksML { srcVar = srcBlock.inputVars.get(srcVarID); if (srcVar == null) { - System.err.println("Cannot create a link from variable " + srcVarID + " (from block " + srcBlock - + "). It may have been removed or renamed."); + IcyLogger.warn(BlocksML.class, "Cannot create a link from variable " + srcVarID + " (from block " + srcBlock + "). It may have been removed or renamed."); continue; } @@ -1155,8 +1146,7 @@ public class BlocksML { final Var<Object> dstVar = dstBlock.inputVars.get(dstVarID); if (dstVar == null) { - System.err.println("Cannot link to variable " + dstVarID + " (from block " + dstBlock - + "). It may have been removed or renamed."); + IcyLogger.warn(BlocksML.class, "Cannot link to variable " + dstVarID + " (from block " + dstBlock + "). It may have been removed or renamed."); continue; } @@ -1167,12 +1157,12 @@ public class BlocksML { for (final BlockDescriptor block : blocksToCollapse) block.setCollapsed(true); - if (hasWarnings) - System.err.println("--"); + /*if (hasWarnings) + System.err.println("--");*/ } public synchronized void loadWorkFlow_V5(final Element workFlowRoot, final WorkFlow workFlow, final WorkFlow parentFlow) throws BlocksException { - boolean noWarnings = true; + //boolean noWarnings = true; final Element blocksRoot = XMLUtil.getElement(workFlowRoot, "blocks"); @@ -1180,7 +1170,8 @@ public class BlocksML { for (final Element blockNode : blocksNode) { final BlockDescriptor blockDesc = new BlockDescriptor(); - noWarnings &= blockDesc.loadFromXML(blockNode); + /*noWarnings &= */ + blockDesc.loadFromXML(blockNode); workFlow.addBlock(blockDesc); } @@ -1191,8 +1182,8 @@ public class BlocksML { link.loadFromXML(linkNode); } - if (!noWarnings) - System.err.println("--"); + /*if (!noWarnings) + System.err.println("--");*/ } /** diff --git a/src/main/java/plugins/adufour/blocks/util/BlocksReloadedException.java b/src/main/java/plugins/adufour/blocks/util/BlocksReloadedException.java index dff6cbbb48985ee79605e5c214c9031327a35087..6f7e6cf96dd36be7e747ce38713273f3cc198c59 100644 --- a/src/main/java/plugins/adufour/blocks/util/BlocksReloadedException.java +++ b/src/main/java/plugins/adufour/blocks/util/BlocksReloadedException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/LinkCutException.java b/src/main/java/plugins/adufour/blocks/util/LinkCutException.java index a28ad893f84130d6ff28a8ab28737f631167ccbf..66d0d57cf49c8c38cd30ded9cbd5df8b7e5b8166 100644 --- a/src/main/java/plugins/adufour/blocks/util/LinkCutException.java +++ b/src/main/java/plugins/adufour/blocks/util/LinkCutException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/LoopException.java b/src/main/java/plugins/adufour/blocks/util/LoopException.java index ec7141ffa27ca1837ed6fc3be7d858f08c3f6288..a0392d34cc3454788230e81301bfe3e298fcdaa2 100644 --- a/src/main/java/plugins/adufour/blocks/util/LoopException.java +++ b/src/main/java/plugins/adufour/blocks/util/LoopException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/MenuItemListener.java b/src/main/java/plugins/adufour/blocks/util/MenuItemListener.java index 6e513cc600d1c5d62804fb3682510a08e854fd8c..54076d50d35a64317569cf0c2d85f868e561a5e0 100644 --- a/src/main/java/plugins/adufour/blocks/util/MenuItemListener.java +++ b/src/main/java/plugins/adufour/blocks/util/MenuItemListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.blocks.util; -import icy.plugin.PluginDescriptor; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; public interface MenuItemListener { void displayDoc(PluginDescriptor d); diff --git a/src/main/java/plugins/adufour/blocks/util/NoSuchBlockException.java b/src/main/java/plugins/adufour/blocks/util/NoSuchBlockException.java index 61fb9214a510a9e4fc8ec8a37bfb825fea846caa..fb43b5b192dfc2a3e32c388aa5967b0f26abe80e 100644 --- a/src/main/java/plugins/adufour/blocks/util/NoSuchBlockException.java +++ b/src/main/java/plugins/adufour/blocks/util/NoSuchBlockException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/NoSuchLinkException.java b/src/main/java/plugins/adufour/blocks/util/NoSuchLinkException.java index 03fe3021d5b53a70d1a5b792b7113fe58d4a5975..e415cbadf4c664ad578e99962bd9a6c2f974fdb0 100644 --- a/src/main/java/plugins/adufour/blocks/util/NoSuchLinkException.java +++ b/src/main/java/plugins/adufour/blocks/util/NoSuchLinkException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/NoSuchVariableException.java b/src/main/java/plugins/adufour/blocks/util/NoSuchVariableException.java index 30b214c14e62eb0f744d63156b426c5794e8a91b..f708850983f020bbb7ef5aedd7ffec7a2aa24be2 100644 --- a/src/main/java/plugins/adufour/blocks/util/NoSuchVariableException.java +++ b/src/main/java/plugins/adufour/blocks/util/NoSuchVariableException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/ScopeException.java b/src/main/java/plugins/adufour/blocks/util/ScopeException.java index 53a42971723866a1075637b8261a9f5f5a2ed506..529b9adf46f75e13a50042f771523d494054220a 100644 --- a/src/main/java/plugins/adufour/blocks/util/ScopeException.java +++ b/src/main/java/plugins/adufour/blocks/util/ScopeException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/StopException.java b/src/main/java/plugins/adufour/blocks/util/StopException.java index 733e8fee37e9f74275dd95297cf63906fc2da0e5..1812c1f5350e135f3efd335edd2f471e9cfb7af0 100644 --- a/src/main/java/plugins/adufour/blocks/util/StopException.java +++ b/src/main/java/plugins/adufour/blocks/util/StopException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/VarList.java b/src/main/java/plugins/adufour/blocks/util/VarList.java index 8907e7ae8bff54c0942d2b9e67b7ce803c9ba0fb..c89665c89f662c4bea1aaf4b234b3e4a0bc6b134 100644 --- a/src/main/java/plugins/adufour/blocks/util/VarList.java +++ b/src/main/java/plugins/adufour/blocks/util/VarList.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/VarListListener.java b/src/main/java/plugins/adufour/blocks/util/VarListListener.java index 6338905045a2aa718edc98c1cb6591f4c468abb1..735df5f6c0460b51ec24f676c103e0698dbaf9fb 100644 --- a/src/main/java/plugins/adufour/blocks/util/VarListListener.java +++ b/src/main/java/plugins/adufour/blocks/util/VarListListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/VarVisibilityListener.java b/src/main/java/plugins/adufour/blocks/util/VarVisibilityListener.java index 3fedb9d1a00f2908ec0cf1bbfe9a51f2437341ea..04b8357a12fd32c61da1118af430aa78e448b708 100644 --- a/src/main/java/plugins/adufour/blocks/util/VarVisibilityListener.java +++ b/src/main/java/plugins/adufour/blocks/util/VarVisibilityListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/blocks/util/WorkFlowListener.java b/src/main/java/plugins/adufour/blocks/util/WorkFlowListener.java index 5de1a9bc7776f3d8c35e7582d0f70c2b8c995566..8a54e281134661017d2d2b1b9ffffa688b6c467a 100644 --- a/src/main/java/plugins/adufour/blocks/util/WorkFlowListener.java +++ b/src/main/java/plugins/adufour/blocks/util/WorkFlowListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/protocols/ProtocolImporter.java b/src/main/java/plugins/adufour/protocols/ProtocolImporter.java index f1e0150a9a0ca10ae5c2f4823291a77eb5ff3964..583571378c531cc4b897311e68c8a7a63bbc7377 100644 --- a/src/main/java/plugins/adufour/protocols/ProtocolImporter.java +++ b/src/main/java/plugins/adufour/protocols/ProtocolImporter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,10 +18,12 @@ package plugins.adufour.protocols; -import icy.file.FileImporter; -import icy.gui.frame.progress.FileFrame; -import icy.plugin.abstract_.Plugin; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.gui.frame.progress.FileFrame; +import org.bioimageanalysis.icy.io.FileImporter; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import javax.swing.filechooser.FileFilter; import java.io.File; @@ -32,6 +34,7 @@ import java.util.List; * * @author Alexandre Dufour */ +@IcyPluginName("Protocol Importer") public class ProtocolImporter extends Plugin implements FileImporter { @Override public boolean acceptFile(final String path) { diff --git a/src/main/java/plugins/adufour/protocols/Protocols.java b/src/main/java/plugins/adufour/protocols/Protocols.java index 726b9023ffec13368c6303ada06a27cc8e16964e..a765bf08981048d08de3cbf3c49547d89b20ddb9 100644 --- a/src/main/java/plugins/adufour/protocols/Protocols.java +++ b/src/main/java/plugins/adufour/protocols/Protocols.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,15 +18,18 @@ package plugins.adufour.protocols; -import icy.common.Version; -import icy.file.FileUtil; -import icy.main.Icy; -import icy.plugin.PluginLoader; -import icy.plugin.abstract_.PluginActionable; -import icy.preferences.PluginsPreferences; -import icy.preferences.XMLPreferences; -import icy.system.thread.ThreadUtil; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.common.Version; +import org.bioimageanalysis.icy.extension.plugin.PluginLoader; +import org.bioimageanalysis.icy.extension.plugin.abstract_.PluginActionable; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.io.FileUtil; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.bioimageanalysis.icy.system.preferences.PluginsPreferences; +import org.bioimageanalysis.icy.system.preferences.XMLPreferences; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -53,7 +56,11 @@ import java.util.Map; /** * Protocols plugin */ +@IcyPluginName("Protocols") +@IcyPluginIcon(path = "/protocols.svg") public class Protocols extends PluginActionable { + public static final Version VERSION = new Version(4, 0, 0); + // "command" on Mac, "ctrl" on others public static final int MENU_SHORTCUT_KEY; @@ -67,8 +74,7 @@ public class Protocols extends PluginActionable { private static boolean reloading = false; - public static final String downloadedProtocolFolder = FileUtil.getApplicationDirectory() + File.separator - + "protocols"; + public static final String downloadedProtocolFolder = FileUtil.getApplicationDirectory() + File.separator + "protocols"; private static final XMLPreferences preferences = PluginsPreferences.getPreferences().node(Protocols.class.getName()); @@ -109,8 +115,7 @@ public class Protocols extends PluginActionable { */ public void reload(final Document reloadingXML, final String reloadingPath) { // 0) avoid silly situations... - if (mainFrame == null) - return; + if (mainFrame == null) return; reloading = true; @@ -137,19 +142,16 @@ public class Protocols extends PluginActionable { final XMLPreferences node = preferences.node("Protocol #" + counter++); node.putBoolean("dirty", protocol.isDirty()); node.put("xml", xmlProtocol); - if (attachedFile != null) - node.put("fileName", attachedFile.getAbsolutePath()); + if (attachedFile != null) node.put("fileName", attachedFile.getAbsolutePath()); } catch (final TransformerException e) { - System.err.println("Warning: couldn't store protocol " + protocol.getName() + ":"); - e.printStackTrace(); - System.err.println("---"); + IcyLogger.warn(Protocols.class, e, "Couldn't store protocol " + protocol.getName() + "."); } } // 2) close the current Protocols instance - close(); + closeProtocols(); ThreadUtil.invokeLater(() -> { // 3) launch a new instance of the Protocols plug-in @@ -157,7 +159,7 @@ public class Protocols extends PluginActionable { ((PluginActionable) PluginLoader.getPluginClass(Protocols.class.getName()).getDeclaredConstructor().newInstance()).run(); } catch (final Exception e) { - e.printStackTrace(); + IcyLogger.error(Protocols.class, e, e.getLocalizedMessage()); } }); } @@ -197,8 +199,7 @@ public class Protocols extends PluginActionable { final Document xml = XMLUtil.loadDocument(protocolPath); // Discard invalid files - if (xml != null) - panel.setFile(new File(protocolPath)); + if (xml != null) panel.setFile(new File(protocolPath)); mainFrame.addProtocolPane(panel); @@ -211,7 +212,7 @@ public class Protocols extends PluginActionable { return; } catch (final BlocksException e2) { - e2.printStackTrace(); + IcyLogger.error(Protocols.class, e2, e2.getLocalizedMessage()); } } } @@ -220,16 +221,14 @@ public class Protocols extends PluginActionable { final ArrayList<XMLPreferences> protocols = preferences.getChildren(); // no protocol info in XML preference - if (protocols.size() == 0) - mainFrame.addProtocolPane(new ProtocolPanel(mainFrame)); + if (protocols.isEmpty()) mainFrame.addProtocolPane(new ProtocolPanel(mainFrame)); else { final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); for (final XMLPreferences node : preferences.getChildren()) { final ProtocolPanel panel = new ProtocolPanel(mainFrame); final String fileName = node.get("fileName", null); - if (fileName != null) - panel.setFile(new File(fileName)); + if (fileName != null) panel.setFile(new File(fileName)); mainFrame.addProtocolPane(panel); final Document xml = builder.parse(new InputSource(new StringReader(node.get("xml", null)))); @@ -245,14 +244,14 @@ public class Protocols extends PluginActionable { return; } catch (final BlocksException e2) { - e2.printStackTrace(); + IcyLogger.error(Protocols.class, e2, e2.getLocalizedMessage()); } } } } } catch (final ParserConfigurationException | SAXException | IOException e) { - e.printStackTrace(); + IcyLogger.error(Protocols.class, e, e.getLocalizedMessage()); } mainFrame.addToDesktopPane(); @@ -270,8 +269,7 @@ public class Protocols extends PluginActionable { for (final String clarg : clargs) { // checking sanity if (!clarg.contains("=")) { - if (verify) - throw new IllegalArgumentException("Invalid command line argument: " + clarg); + if (verify) throw new IllegalArgumentException("Invalid command line argument: " + clarg); // next arg continue; @@ -279,8 +277,7 @@ public class Protocols extends PluginActionable { final String[] keyValuePair = clarg.split("="); if (keyValuePair.length != 2) { - if (verify) - throw new IllegalArgumentException("Invalid command line argument: " + clarg); + if (verify) throw new IllegalArgumentException("Invalid command line argument: " + clarg); // next arg continue; @@ -290,16 +287,14 @@ public class Protocols extends PluginActionable { final String value = keyValuePair[1]; if (key.isEmpty()) { - if (verify) - throw new IllegalArgumentException("Invalid command line argument (no key): " + clarg); + if (verify) throw new IllegalArgumentException("Invalid command line argument (no key): " + clarg); // next arg continue; } if (value.isEmpty()) { - if (verify) - throw new IllegalArgumentException("Invalid command line argument (no value): " + clarg); + if (verify) throw new IllegalArgumentException("Invalid command line argument (no value): " + clarg); // next arg continue; @@ -309,13 +304,11 @@ public class Protocols extends PluginActionable { result = value; ok = true; } - else - commandLineArguments.put(key, value); + else commandLineArguments.put(key, value); } // we correctly parsed arguments? --> clear it so no other plugin can reparse them - if (ok) - Icy.clearCommandLinePluginArgs(); + if (ok) Icy.clearCommandLinePluginArgs(); return result; } @@ -326,37 +319,28 @@ public class Protocols extends PluginActionable { final Document xml = XMLUtil.loadDocument(protocolFile); // Discard invalid files - if (xml == null) - throw new IllegalArgumentException(protocolFile + " is not a valid protocol file"); + if (xml == null) throw new IllegalArgumentException(protocolFile + " is not a valid protocol file"); - System.out.println("Loading workflow..."); + IcyLogger.info(Protocols.class, "Loading workflow..."); final WorkFlow workFlow = new WorkFlow(true); BlocksML.getInstance().loadWorkFlow(xml, workFlow); workFlow.run(); } + @SuppressWarnings("resource") public static void loadWorkFlow(final File file) { - if (mainFrame == null) - new Protocols().run(); + if (mainFrame == null) new Protocols().run(); mainFrame.loadWorkFlow(file); } - public static void close() { - if (mainFrame != null && mainFrame.isVisible()) - mainFrame.close(); + public static void closeProtocols() { + if (mainFrame != null && mainFrame.isVisible()) mainFrame.close(); mainFrame = null; } public static void dispatchEvent(final KeyEvent key) { - if (mainFrame != null) - mainFrame.getContentPane().dispatchEvent(key); + if (mainFrame != null) mainFrame.getContentPane().dispatchEvent(key); } - - public String getFriendlyVersion() { - final Version v = getDescriptor().getVersion(); - return "Blocks engine v." + v.getMajor() + "." + v.getMinor(); - } - } diff --git a/src/main/java/plugins/adufour/protocols/gui/BlockSearchPanel.java b/src/main/java/plugins/adufour/protocols/gui/BlockSearchPanel.java index 2e6cb807fef4057cbae8cc13791450b432420fd4..c119dd788bc346b36ee333e3f939a823d6f6cf02 100644 --- a/src/main/java/plugins/adufour/protocols/gui/BlockSearchPanel.java +++ b/src/main/java/plugins/adufour/protocols/gui/BlockSearchPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,13 +18,13 @@ package plugins.adufour.protocols.gui; -import icy.gui.component.IcyTextFieldHint; -import icy.gui.frame.progress.AnnounceFrame; -import icy.network.NetworkUtil; -import icy.plugin.PluginDescriptor; -import icy.plugin.abstract_.Plugin; -import icy.util.StringUtil; -import jiconfont.icons.google_material_design_icons.GoogleMaterialDesignIcons; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.component.field.IcyTextFieldHint; +import org.bioimageanalysis.icy.gui.component.icon.SVGIcon; +import org.bioimageanalysis.icy.gui.frame.progress.AnnounceFrame; +import org.bioimageanalysis.icy.network.NetworkUtil; import plugins.adufour.blocks.util.BlocksFinder; import plugins.adufour.blocks.util.BlocksFinder.DND_MenuItem; import plugins.adufour.blocks.util.MenuItemListener; @@ -62,7 +62,7 @@ public class BlockSearchPanel extends JPanel implements MenuItemListener { private final JScrollPane blockInfoDisplay; public BlockSearchPanel() { - searchField = new IcyTextFieldHint(GoogleMaterialDesignIcons.SEARCH, DEFAULT_SEARCH_TEXT); + searchField = new IcyTextFieldHint(SVGIcon.SEARCH, DEFAULT_SEARCH_TEXT); final Box searchBar = Box.createHorizontalBox(); finder = new BlocksFinder(); @@ -175,7 +175,7 @@ public class BlockSearchPanel extends JPanel implements MenuItemListener { String name = d.getName(); final StringBuilder description = new StringBuilder("<h3>Public description:</h3>"); - String author = d.getAuthor(); + final String author = d.getAuthor(); // if (_class.isAnnotationPresent(BlockSearchAnnotation.class)) // { diff --git a/src/main/java/plugins/adufour/protocols/gui/MainFrame.java b/src/main/java/plugins/adufour/protocols/gui/MainFrame.java index a863ffbadfc123a23265efa9c7679a29a75c271d..5949d1a19f318c83ea449cc1d0cddf3cd93f71e8 100644 --- a/src/main/java/plugins/adufour/protocols/gui/MainFrame.java +++ b/src/main/java/plugins/adufour/protocols/gui/MainFrame.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,27 +18,27 @@ package plugins.adufour.protocols.gui; -import icy.common.listener.AcceptListener; -import icy.file.Loader; -import icy.gui.component.CloseableTabbedPane; -import icy.gui.component.CloseableTabbedPane.CloseableTabbedPaneListener; -import icy.gui.component.button.IcyButton; -import icy.gui.component.button.IcyToggleButton; -import icy.gui.frame.IcyFrame; -import icy.gui.frame.IcyFrameEvent; -import icy.gui.frame.IcyFrameListener; -import icy.gui.frame.progress.AnnounceFrame; -import icy.main.Icy; -import icy.plugin.PluginDescriptor; -import icy.plugin.PluginInstaller; -import icy.plugin.PluginLoader; -import icy.system.FileDrop; -import icy.system.FileDrop.FileDropListener; -import icy.system.IcyExceptionHandler; -import icy.system.IcyHandledException; -import icy.system.thread.ThreadUtil; -import icy.util.XMLUtil; -import jiconfont.icons.google_material_design_icons.GoogleMaterialDesignIcons; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.common.listener.AcceptListener; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; +import org.bioimageanalysis.icy.extension.plugin.PluginInstaller; +import org.bioimageanalysis.icy.extension.plugin.PluginLoader; +import org.bioimageanalysis.icy.gui.component.button.IcyButton; +import org.bioimageanalysis.icy.gui.component.button.IcyToggleButton; +import org.bioimageanalysis.icy.gui.component.icon.SVGIcon; +import org.bioimageanalysis.icy.gui.component.icon.SVGIconPack; +import org.bioimageanalysis.icy.gui.component.tabbedpane.CloseableTabbedPane; +import org.bioimageanalysis.icy.gui.frame.IcyFrame; +import org.bioimageanalysis.icy.gui.frame.IcyFrameEvent; +import org.bioimageanalysis.icy.gui.frame.IcyFrameListener; +import org.bioimageanalysis.icy.gui.frame.progress.AnnounceFrame; +import org.bioimageanalysis.icy.io.Loader; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.system.FileDrop; +import org.bioimageanalysis.icy.system.IcyExceptionHandler; +import org.bioimageanalysis.icy.system.IcyHandledException; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import org.w3c.dom.Document; import plugins.adufour.blocks.lang.Block; import plugins.adufour.blocks.lang.BlockDescriptor; @@ -69,18 +69,18 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; -public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListener, CloseableTabbedPaneListener, AcceptListener, ChangeListener, BlockListener, FileDropListener { +public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListener, CloseableTabbedPane.CloseableTabbedPaneListener, AcceptListener, ChangeListener, BlockListener, FileDrop.FileDropListener { private static final String UNTITLED = "untitled"; private final JToolBar toolBar; - private final IcyButton bNew = new IcyButton("New", GoogleMaterialDesignIcons.NOTE_ADD); - private final IcyButton bLoad = new IcyButton("Load", GoogleMaterialDesignIcons.FOLDER_OPEN); - private final IcyButton bSave = new IcyButton("Save", GoogleMaterialDesignIcons.SAVE); - private final IcyButton bSaveAs = new IcyButton("Save as", GoogleMaterialDesignIcons.FILE_DOWNLOAD); - private final IcyButton bEmbed = new IcyButton("Embed", GoogleMaterialDesignIcons.OPEN_IN_NEW); - private final IcyToggleButton bRun = new IcyToggleButton("Run", GoogleMaterialDesignIcons.PLAY_ARROW, GoogleMaterialDesignIcons.STOP); - private final IcyButton bClean = new IcyButton("Reset", GoogleMaterialDesignIcons.RESTORE); + private final IcyButton bNew = new IcyButton("New", SVGIcon.NOTE_ADD); + private final IcyButton bLoad = new IcyButton("Load", SVGIcon.FOLDER_OPEN); + private final IcyButton bSave = new IcyButton("Save", SVGIcon.SAVE); + private final IcyButton bSaveAs = new IcyButton("Save as", SVGIcon.SAVE_AS); + private final IcyButton bEmbed = new IcyButton("Embed", SVGIcon.OPEN_IN_NEW); + private final IcyToggleButton bRun = new IcyToggleButton("Run", new SVGIconPack(SVGIcon.PLAY_CIRCLE, SVGIcon.STOP_CIRCLE)); + private final IcyButton bClean = new IcyButton("Reset", SVGIcon.DEVICE_RESET); private final CloseableTabbedPane closeableTabbedPane = new CloseableTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT); @@ -103,7 +103,8 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe private boolean isFrameClosing = false; public MainFrame(final Protocols pluginInstance) { - super("Protocols editor (" + pluginInstance.getFriendlyVersion() + ")", true, true, true, true, true); + //super("Protocols editor (" + pluginInstance.getFriendlyVersion() + ")", true, true, true, true, true); + super("Protocols editor", true, true, true, true, true); this.pluginInstance = pluginInstance; @@ -193,6 +194,12 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe } }); + final JToolBar statusBar = new JToolBar(JToolBar.HORIZONTAL); + statusBar.setFloatable(false); + statusBar.add(new JLabel("Engine v" + Protocols.VERSION.toShortString())); + + getContentPane().add(statusBar, BorderLayout.SOUTH); + Icy.getMainInterface().addCanExitListener(this); pack(); @@ -245,7 +252,7 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe @SuppressWarnings("rawtypes") final Link clone = linkClone(wf, l); if (clone == null) { - System.err.println("Warning: cannot copy a link to an exposed variable"); + IcyLogger.warn(MainFrame.class, "Cannot copy a link to an exposed variable."); continue; } @@ -549,9 +556,9 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe PluginInstaller.waitInstall(); PluginLoader.waitWhileLoading(); - final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, true, false, false); + final ArrayList<PluginDescriptor> plugins = PluginLoader.getPlugins(Block.class, false, false); - if (plugins.size() == 0) + if (plugins.isEmpty()) throw new BlocksReloadedException(); panel.loadWorkFlow(xml, false); @@ -580,7 +587,7 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe message += "\n\n" + BlocksML.getInstance().toString(xml); } catch (final TransformerFactoryConfigurationError | TransformerException e2) { - e2.printStackTrace(); + IcyLogger.error(MainFrame.class, e2, e2.getLocalizedMessage()); } //$FALL-THROUGH$ Send the report anyway @@ -694,7 +701,7 @@ public class MainFrame extends IcyFrame implements IcyFrameListener, ActionListe Icy.getMainInterface().removeCanExitListener(this); - Protocols.close(); + Protocols.closeProtocols(); return true; } diff --git a/src/main/java/plugins/adufour/protocols/gui/ProtocolPanel.java b/src/main/java/plugins/adufour/protocols/gui/ProtocolPanel.java index 9509ea2e8f0208a431d29df36e4928f579892c3a..87e0757207088f7aaaa126f6421ba7e6817e8093 100644 --- a/src/main/java/plugins/adufour/protocols/gui/ProtocolPanel.java +++ b/src/main/java/plugins/adufour/protocols/gui/ProtocolPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -19,13 +19,13 @@ package plugins.adufour.protocols.gui; import com.ochafik.io.JTextAreaOutputStream; -import icy.file.FileUtil; -import icy.file.Saver; -import icy.gui.component.button.IcyToggleButton; -import icy.image.IcyBufferedImage; -import icy.image.IcyBufferedImageUtil; -import icy.system.IcyHandledException; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.gui.component.button.IcyToggleButton; +import org.bioimageanalysis.icy.io.FileUtil; +import org.bioimageanalysis.icy.io.Saver; +import org.bioimageanalysis.icy.model.image.IcyBufferedImage; +import org.bioimageanalysis.icy.model.image.IcyBufferedImageUtil; +import org.bioimageanalysis.icy.system.IcyHandledException; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import org.w3c.dom.Document; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus; diff --git a/src/main/java/plugins/adufour/protocols/gui/block/BlockPanel.java b/src/main/java/plugins/adufour/protocols/gui/block/BlockPanel.java index ffa0beda2422014773dd46ee8513a9bbaaa15030..5c84d9fcae36f805fded7d9c9c3fcc1a3218ebcf 100644 --- a/src/main/java/plugins/adufour/protocols/gui/block/BlockPanel.java +++ b/src/main/java/plugins/adufour/protocols/gui/block/BlockPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ package plugins.adufour.protocols.gui.block; -import icy.gui.component.button.IcyButton; -import icy.gui.component.menu.IcyMenuItem; -import icy.gui.util.LookAndFeelUtil; -import icy.system.thread.ThreadUtil; -import jiconfont.icons.google_material_design_icons.GoogleMaterialDesignIcons; -import jiconfont.swing.IconFontSwing; +import org.bioimageanalysis.icy.gui.LookAndFeelUtil; +import org.bioimageanalysis.icy.gui.component.button.IcyButton; +import org.bioimageanalysis.icy.gui.component.icon.IcySVGImageIcon; +import org.bioimageanalysis.icy.gui.component.icon.SVGIcon; +import org.bioimageanalysis.icy.gui.component.menu.IcyMenuItem; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus; import plugins.adufour.blocks.lang.WorkFlow; @@ -45,6 +45,7 @@ import javax.swing.event.MouseInputListener; import java.awt.*; import java.awt.event.*; import java.util.HashMap; +import java.util.Objects; public class BlockPanel extends JPanel implements ActionListener, BlockListener { private final class BlockMotionManager implements MouseInputListener { @@ -242,48 +243,45 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener protected static final int ARC_SIZE = 10; - //@Deprecated - //protected static final int ICON_SIZE = 16; - protected static final int ICON_SIZE = LookAndFeelUtil.getDefaultIconSizeAsInt(); + protected static final int ICON_SIZE = LookAndFeelUtil.getDefaultIconSize(); + @SuppressWarnings("resource") private static final Image BLOCKS = new Protocols().getDescriptor().getIconAsImage(); private static final ImageIcon ICON_BLOCKS = new ImageIcon(BLOCKS.getScaledInstance(ICON_SIZE, ICON_SIZE, Image.SCALE_SMOOTH)); - private static final float ICON_SIZE_F = LookAndFeelUtil.getDefaultIconSizeAsFloat(); - /** * Indicates that the block is dirty (results aren't ready) */ - private static final ImageIcon ICON_DIRTY = new ImageIcon(IconFontSwing.buildImage(GoogleMaterialDesignIcons.WARNING, ICON_SIZE_F, Color.ORANGE.darker())); + private static final ImageIcon ICON_DIRTY = new IcySVGImageIcon(SVGIcon.WARNING, Color.ORANGE.darker()); /** * Indicates that the block is currently running */ - private static final ImageIcon ICON_RUNNING = new ImageIcon(IconFontSwing.buildImage(GoogleMaterialDesignIcons.FLASH_ON, ICON_SIZE_F, Color.BLUE.brighter())); + private static final ImageIcon ICON_RUNNING = new IcySVGImageIcon(SVGIcon.BOLT, Color.BLUE.brighter()); /** * Indicates that the block has finished running (the result is ready) */ - private static final ImageIcon ICON_READY = new ImageIcon(IconFontSwing.buildImage(GoogleMaterialDesignIcons.CHECK_CIRCLE, ICON_SIZE_F, Color.GREEN.darker())); + private static final ImageIcon ICON_READY = new IcySVGImageIcon(SVGIcon.CHECK_CIRCLE, Color.GREEN.darker()); /** * Indicates that the block generated an error */ - private static final ImageIcon ICON_ERROR = new ImageIcon(IconFontSwing.buildImage(GoogleMaterialDesignIcons.ERROR, ICON_SIZE_F, Color.RED.darker())); + private static final ImageIcon ICON_ERROR = new IcySVGImageIcon(SVGIcon.ERROR, Color.RED.darker()); protected final JToolBar toolBar; protected final JPanel jPanelContent = new JPanel(new GridBagLayout()); - protected final IcyButton bMenu = new IcyButton(ICON_BLOCKS); - protected final IcyButton bRunUntilHere = new IcyButton(GoogleMaterialDesignIcons.PLAY_ARROW); - protected final IcyButton bID = new IcyButton(""); + protected final JButton bMenu = new JButton(ICON_BLOCKS); + protected final IcyButton bRunUntilHere = new IcyButton(SVGIcon.PLAY_CIRCLE); + protected final JButton bID = new JButton(""); protected final JLabel bStatus = new JLabel(ICON_DIRTY); protected final JPopupMenu menu = new JPopupMenu(); protected final JCheckBox menuKeepResults = new JCheckBox("Remember results"); // protected final JPanel menuCommandLineID = new JPanel(new FlowLayout(FlowLayout.RIGHT)); - protected final IcyMenuItem menuCollapse = new IcyMenuItem("Collapse", GoogleMaterialDesignIcons.UNFOLD_LESS); - protected final IcyMenuItem menuRemove = new IcyMenuItem("Remove block", GoogleMaterialDesignIcons.DELETE); + protected final IcyMenuItem menuCollapse = new IcyMenuItem("Collapse", SVGIcon.UNFOLD_LESS); + protected final IcyMenuItem menuRemove = new IcyMenuItem("Remove block", SVGIcon.DELETE); //private final ShadowRenderer renderer = new ShadowRenderer(SHADOW_SIZE, 0.5f, Color.BLACK); @@ -312,7 +310,7 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener //private final JLabel name; private final JTextField name; - private final IcyButton btnEdit = new IcyButton(GoogleMaterialDesignIcons.EDIT); + private final IcyButton btnEdit = new IcyButton(SVGIcon.EDIT); private boolean selected = false; @@ -447,7 +445,7 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); final boolean isDarkMode = LookAndFeelUtil.isDarkMode(); - final Color bgcRoot = LookAndFeelUtil.getUIDefaults().getColor("RootPane.background"); + final Color bgcRoot = Objects.requireNonNull(LookAndFeelUtil.getUIDefaults()).getColor("RootPane.background"); if (bgcRoot == null) return; @@ -727,7 +725,7 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener fieldID.setToolTipText(tooltip); menuCLID.add(fieldID); - final IcyButton bStoreFieldID = new IcyButton(GoogleMaterialDesignIcons.CHECK); + final IcyButton bStoreFieldID = new IcyButton(SVGIcon.CHECK); bStoreFieldID.setFlat(true); //bStoreFieldID.setFocusable(false); //bStoreFieldID.setBorderPainted(false); diff --git a/src/main/java/plugins/adufour/protocols/gui/block/LoopPanel.java b/src/main/java/plugins/adufour/protocols/gui/block/LoopPanel.java index 56d71a56c7f77025dfaa382b3e03a1376df6a0b9..19bae04dd5a4859334a694efcfb8082ca13b727e 100644 --- a/src/main/java/plugins/adufour/protocols/gui/block/LoopPanel.java +++ b/src/main/java/plugins/adufour/protocols/gui/block/LoopPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -29,7 +29,6 @@ import javax.swing.*; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.event.ActionEvent; -import java.awt.geom.Point2D; public class LoopPanel extends WorkFlowPanel { private final Loop loop; @@ -47,24 +46,25 @@ public class LoopPanel extends WorkFlowPanel { // create a special panel to receive the loop variables innerLoopPanel = new JPanel(new GridBagLayout()) { - @Override + /*@Override public void paintChildren(final Graphics g) { final Graphics2D g2 = (Graphics2D) g; - final Point2D p1 = gradient.getPoint1(); - p1.setLocation(p1.getX() + 1, p1.getY() - 30); - g2.setPaint(new GradientPaint(p1, gradient.getColor1(), gradient.getPoint2(), gradient.getColor2())); - g2.fillRect(5, 0, getWidth() - 11, getHeight()); - g2.setPaint(null); - g2.setColor(Color.gray); - g2.drawLine(15, getHeight() - 1, getWidth() - 6, getHeight() - 1); - g2.drawLine(getWidth() - 6, 0, getWidth() - 6, getHeight()); + //final Point2D p1 = gradient.getPoint1(); + //p1.setLocation(p1.getX() + 1, p1.getY() - 30); + //g2.setPaint(new GradientPaint(p1, gradient.getColor1(), gradient.getPoint2(), gradient.getColor2())); + //g2.setColor(getBackground()); + //g2.fillRect(5, 0, getWidth() - 11, getHeight()); + //g2.setPaint(null); + //g2.setColor(getForeground()); + //g2.drawLine(15, getHeight() - 1, getWidth() - 6, getHeight() - 1); + //g2.drawLine(getWidth() - 6, 0, getWidth() - 6, getHeight()); super.paintChildren(g2); - } + }*/ }; - innerLoopPanel.setOpaque(false); + innerLoopPanel.setOpaque(true); innerLoopPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 2, 2)); menuStopOnFirstError.addActionListener(this); @@ -100,8 +100,7 @@ public class LoopPanel extends WorkFlowPanel { // add other loop variables for (final Var<?> loopVariable : loop.getLoopVariables()) { // don't re-draw batch elements again... - if (blockDesc.getBlock() instanceof Batch) { - final Batch batch = (Batch) blockDesc.getBlock(); + if (blockDesc.getBlock() instanceof final Batch batch) { if (loopVariable == batch.getBatchSource() || loopVariable == batch.getBatchElement()) continue; } diff --git a/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowContainer.java b/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowContainer.java index f041ab19c12c4e9f047948ca05a604945eb13203..5495cdb240295d79710f10fba2cd0adb0ff0d2b3 100644 --- a/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowContainer.java +++ b/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowContainer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,11 +18,12 @@ package plugins.adufour.protocols.gui.block; -import icy.file.FileUtil; -import icy.file.Loader; -import icy.file.SequenceFileImporter; -import icy.gui.dialog.ConfirmDialog; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.gui.dialog.ConfirmDialog; +import org.bioimageanalysis.icy.io.FileUtil; +import org.bioimageanalysis.icy.io.Loader; +import org.bioimageanalysis.icy.io.SequenceFileImporter; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.adufour.blocks.lang.*; import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus; import plugins.adufour.blocks.util.BlocksFinder; @@ -276,8 +277,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, final BlockPanel dstBlockPanel = getBlockPanel(link.dstBlock); if ((srcBlockPanel == null) || (dstBlockPanel == null)) { - System.err.println("Warning: cannot recover link between " + link.srcBlock.getDefinedName() - + " and " + link.dstBlock.getDefinedName() + " !"); + IcyLogger.warn(WorkFlowContainer.class, "Cannot recover link between " + link.srcBlock.getDefinedName() + " and " + link.dstBlock.getDefinedName() + " !"); } else { linkLines.put(link, new RoundedSquareLine(srcBlockPanel, dstBlockPanel, link)); @@ -456,7 +456,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, for (final Link<?> l : workFlow.getLinkSelection()) workFlow.removeLink(l.dstVar); while (!workFlow.getBlockSelection().isEmpty()) { - final BlockDescriptor tmp = workFlow.getBlockSelection().get(0); + final BlockDescriptor tmp = workFlow.getBlockSelection().getFirst(); if (tmp.getBlock() instanceof WorkFlow) ((WorkFlow) tmp.getBlock()).newSelection(); workFlow.removeBlock(tmp, true); @@ -481,7 +481,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, * @return A rectangle representing the bounds of this container's contents */ public Rectangle getContentsBoundingBox() { - if (blockPanels.size() == 0) + if (blockPanels.isEmpty()) return new Rectangle(0, 0, getWidth(), getHeight()); Rectangle bounds = null; @@ -551,8 +551,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, g2.setColor(Color.gray); g2.setFont(g2.getFont().deriveFont(Font.ITALIC)); final Rectangle2D r = g2.getFontMetrics().getStringBounds(s, g); - g2.drawString(s, (float) (getWidth() / 2 - r.getWidth() / 2), - (float) (getHeight() / 2 + r.getHeight() / 2)); + g2.drawString(s, (float) (getWidth() / 2 - r.getWidth() / 2), (float) (getHeight() / 2 + r.getHeight() / 2)); } for (final Line line : linkLines.values()) { @@ -569,7 +568,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, final Line line = linkLines.remove(link); if (line == null) - System.err.println("Warning: missing link, cannot be removed properly"); + IcyLogger.warn(WorkFlowContainer.class, "Missing link, cannot be removed properly."); else line.dispose(); @@ -708,9 +707,8 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); // quick & easy case first - if (t.getTransferData(d[0]) instanceof DND_MenuItem) { + if (t.getTransferData(d[0]) instanceof final DND_MenuItem menuItem) { // block coming from the search panel - final DND_MenuItem menuItem = (DND_MenuItem) t.getTransferData(d[0]); if (menuItemTransferHandler.canImport(this, d)) menuItemTransferHandler.importData(this, menuItem, mouseLocation); } @@ -745,7 +743,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, } } catch (final UnsupportedFlavorException | IOException e) { - e.printStackTrace(); + IcyLogger.error(WorkFlowContainer.class, e, e.getLocalizedMessage()); } finally { dtde.dropComplete(true); @@ -769,7 +767,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, return true; } catch (final ClassNotFoundException e) { - e.printStackTrace(); + IcyLogger.error(WorkFlowContainer.class, e, e.getLocalizedMessage()); } return false; } @@ -794,7 +792,7 @@ public class WorkFlowContainer extends JLayeredPane implements WorkFlowListener, | NoSuchMethodException | InvocationTargetException e ) { - e.printStackTrace(); + IcyLogger.error(WorkFlowContainer.class, e, e.getLocalizedMessage()); } } } diff --git a/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowPanel.java b/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowPanel.java index 3ecdd15c4e0221fb1dfa211ea439950e8e2ba786..bf4388cff2686351cca057b8ab92e793a6d1e929 100644 --- a/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowPanel.java +++ b/src/main/java/plugins/adufour/protocols/gui/block/WorkFlowPanel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.protocols.gui.block; -import icy.gui.component.menu.IcyMenuItem; -import icy.system.thread.ThreadUtil; -import jiconfont.icons.google_material_design_icons.GoogleMaterialDesignIcons; +import org.bioimageanalysis.icy.gui.component.icon.SVGIcon; +import org.bioimageanalysis.icy.gui.component.menu.IcyMenuItem; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.Link; import plugins.adufour.blocks.lang.Loop; @@ -54,7 +54,7 @@ public class WorkFlowPanel extends BlockPanel implements VarVisibilityListener { final protected Box varBox; - protected final IcyMenuItem menuRemoveEnclosure = new IcyMenuItem("Remove block but keep contents", GoogleMaterialDesignIcons.CLOSE); + protected final IcyMenuItem menuRemoveEnclosure = new IcyMenuItem("Remove block but keep contents", SVGIcon.CLOSE); public WorkFlowPanel(final WorkFlowContainer wfPane, final BlockDescriptor blockDesc) { super(wfPane, blockDesc); diff --git a/src/main/java/plugins/adufour/protocols/gui/link/CurvedLine.java b/src/main/java/plugins/adufour/protocols/gui/link/CurvedLine.java index 9e5b0917439b793e67db99f0c72fdbfa99131adb..231c05bde0af54a4f20f844a5320f729bac77cb8 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/CurvedLine.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/CurvedLine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/protocols/gui/link/DragDropZone.java b/src/main/java/plugins/adufour/protocols/gui/link/DragDropZone.java index 295e806812e1399015f47b34b7c9c2599e8f7721..da03be345408cd2e1a3f8e39026eda23c18ab2ea 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/DragDropZone.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/DragDropZone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.protocols.gui.link; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.WorkFlow; import plugins.adufour.vars.lang.Var; @@ -97,8 +97,7 @@ public abstract class DragDropZone extends JButton implements VarListener<Boolea dataType = variable.getType(); if (dataType != null) { - if (variable instanceof VarGenericArray) { - final VarGenericArray<?> array = (VarGenericArray<?>) variable; + if (variable instanceof final VarGenericArray<?> array) { dataType = array.getInnerType(); } else if (dataType.isArray()) { diff --git a/src/main/java/plugins/adufour/protocols/gui/link/DragZone.java b/src/main/java/plugins/adufour/protocols/gui/link/DragZone.java index 1b8947106cb2362915ebaac43c339eb7fd4b8296..0e06dc3f32a6eae0eb3ea58453117f78f0985714 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/DragZone.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/DragZone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/protocols/gui/link/DropZone.java b/src/main/java/plugins/adufour/protocols/gui/link/DropZone.java index 9c6c8eafee088f6ed38ad1d9f350caf421aa1082..334ff5f2030c05da1c6e3a0df227deaea263d864 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/DropZone.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/DropZone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ package plugins.adufour.protocols.gui.link; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.blocks.lang.WorkFlow; import plugins.adufour.vars.lang.Var; @@ -116,7 +117,7 @@ class DropZone<T> extends DragDropZone implements ActionListener, DropTargetList errorPopup.setLocation(location.x + 10, location.y + 20); errorPopup.setVisible(true); - error.printStackTrace(); + IcyLogger.error(DropZone.class, error, error.getLocalizedMessage()); } } } @@ -134,8 +135,7 @@ class DropZone<T> extends DragDropZone implements ActionListener, DropTargetList e.dropComplete(true); } catch (final Exception e1) { - JOptionPane.showMessageDialog(null, e1.getMessage() + "\n(stack trace will be sent to the console)", "Error", JOptionPane.ERROR_MESSAGE); - e1.printStackTrace(); + IcyLogger.error(DropZone.class, e1, "Error while dropping."); e.dropComplete(false); } } diff --git a/src/main/java/plugins/adufour/protocols/gui/link/Line.java b/src/main/java/plugins/adufour/protocols/gui/link/Line.java index 971b9aeb32765bbaab4cfb9ee4fe2e05492bbcd6..bc20f2fc217370086a3e460019400a819e11e5a0 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/Line.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/Line.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,7 +18,7 @@ package plugins.adufour.protocols.gui.link; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.adufour.blocks.lang.Link; import plugins.adufour.blocks.lang.WorkFlow; import plugins.adufour.protocols.gui.block.BlockPanel; diff --git a/src/main/java/plugins/adufour/protocols/gui/link/ReLoopLine.java b/src/main/java/plugins/adufour/protocols/gui/link/ReLoopLine.java index 2cbcc923900a04e4ea4eb2b2fccbcb86527c43b1..8c41d85674fb1e8b7234cc41b05384f9f9a659fb 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/ReLoopLine.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/ReLoopLine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/protocols/gui/link/RoundedSquareLine.java b/src/main/java/plugins/adufour/protocols/gui/link/RoundedSquareLine.java index dd72fa7c3ee16334eb404f48e1aa85249ed9533d..df223ee1b2e71e01a201b71d51827b62f38e5c26 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/RoundedSquareLine.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/RoundedSquareLine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/adufour/protocols/gui/link/TransferableVar.java b/src/main/java/plugins/adufour/protocols/gui/link/TransferableVar.java index c3d98a6f8260926c3059b9e4d192e427a8fbbbe2..a72ca177639954d42f3df29426bb32cf3431476a 100644 --- a/src/main/java/plugins/adufour/protocols/gui/link/TransferableVar.java +++ b/src/main/java/plugins/adufour/protocols/gui/link/TransferableVar.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ package plugins.adufour.protocols.gui.link; +import org.jetbrains.annotations.NotNull; import plugins.adufour.blocks.lang.BlockDescriptor; import plugins.adufour.vars.lang.Var; @@ -48,7 +49,7 @@ public class TransferableVar<T> implements Transferable { } @Override - public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException { + public @NotNull Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException { if (!isDataFlavorSupported(flavor)) throw new UnsupportedFlavorException(flavor); return this; diff --git a/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProducer.java b/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProducer.java index 465e43def83ee6a28939ff588fcdffa591cbd09a..2b55ebbaa6b0eef5ea02e14c0a0e4943ee015266 100644 --- a/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProducer.java +++ b/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProducer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,15 +18,15 @@ package plugins.adufour.protocols.livebar; -import icy.network.NetworkUtil; -import icy.search.OnlineSearchResultProducer; -import icy.search.SearchResult; -import icy.search.SearchResultConsumer; -import icy.search.SearchResultProducer; -import icy.system.SystemUtil; -import icy.system.thread.ThreadUtil; -import icy.util.StringUtil; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.bioimageanalysis.icy.network.search.OnlineSearchResultProducer; +import org.bioimageanalysis.icy.network.search.SearchResult; +import org.bioimageanalysis.icy.network.search.SearchResultConsumer; +import org.bioimageanalysis.icy.network.search.SearchResultProducer; +import org.bioimageanalysis.icy.system.SystemUtil; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import org.w3c.dom.Document; import org.w3c.dom.Element; import plugins.adufour.protocols.Protocols; diff --git a/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProvider.java b/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProvider.java index 3aac2b7dab2911d36b09dd5b70ddf00a01e2d62c..da5890899dc2072e89fa15fb75e9ec40ebb9aca2 100644 --- a/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProvider.java +++ b/src/main/java/plugins/adufour/protocols/livebar/OnlineProtocolProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ package plugins.adufour.protocols.livebar; -import icy.plugin.abstract_.Plugin; -import icy.plugin.interface_.PluginSearchProvider; -import icy.search.SearchResultProducer; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.interface_.PluginSearchProvider; +import org.bioimageanalysis.icy.network.search.SearchResultProducer; public class OnlineProtocolProvider extends Plugin implements PluginSearchProvider { @Override diff --git a/src/main/java/plugins/adufour/protocols/livebar/ProtocolDescriptor.java b/src/main/java/plugins/adufour/protocols/livebar/ProtocolDescriptor.java index 186c5efe07ffe728f109c83a294c424fc252b1ea..b1b6e34b8826339d13bc7eb6674aee34f4ad783b 100644 --- a/src/main/java/plugins/adufour/protocols/livebar/ProtocolDescriptor.java +++ b/src/main/java/plugins/adufour/protocols/livebar/ProtocolDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,11 +18,12 @@ package plugins.adufour.protocols.livebar; -import icy.file.FileUtil; -import icy.file.xml.XMLPersistent; -import icy.network.NetworkUtil; -import icy.plugin.PluginLoader; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.extension.plugin.PluginLoader; +import org.bioimageanalysis.icy.io.FileUtil; +import org.bioimageanalysis.icy.io.xml.XMLPersistent; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import org.w3c.dom.Node; import plugins.adufour.protocols.Protocols; @@ -83,7 +84,7 @@ public class ProtocolDescriptor implements XMLPersistent { return new File(filePath); } catch (final IOException e) { - e.printStackTrace(); + IcyLogger.error(ProtocolDescriptor.class, e, e.getLocalizedMessage()); return null; } } @@ -112,5 +113,4 @@ public class ProtocolDescriptor implements XMLPersistent { public boolean saveToXML(final Node node) { return false; } - } diff --git a/src/main/resources/logo/icysoftware_icon-protocols-sdk.png b/src/main/resources/logo/icysoftware_icon-protocols-sdk.png deleted file mode 100644 index 21eb08f98fbf3e02dd68e1c96e5f2e435a1ecaaa..0000000000000000000000000000000000000000 Binary files a/src/main/resources/logo/icysoftware_icon-protocols-sdk.png and /dev/null differ diff --git a/src/main/resources/protocols.svg b/src/main/resources/protocols.svg new file mode 100644 index 0000000000000000000000000000000000000000..3c778a3fc30f6e3af7bcee5c34db01cdf4d7908e --- /dev/null +++ b/src/main/resources/protocols.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<svg height="800px" width="800px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" xml:space="preserve"> + <polygon style="fill:#A0161F;" points="130.45,365.714 210.989,438.857 256,438.857 278.506,365.714 256,292.571 210.989,292.571"/> + <polygon style="fill:#DD0505;" points="4.899,292.571 4.899,438.857 49.91,438.857 130.45,365.714 49.91,292.571 "/> + <polygon style="fill:#DD0505;" points="130.45,365.714 4.899,438.857 130.45,512 152.955,438.857 "/> + <polygon style="fill:#E36B6C;" points="256,292.571 175.461,219.429 130.45,219.429 4.899,292.571 130.45,365.714 "/> + <polygon style="fill:#A0161F;" points="130.45,365.714 130.45,512 256,438.857 "/> + <polygon style="fill:#2A93DF;" points="130.45,73.143 130.45,219.429 175.461,219.429 256,146.286 175.461,73.143 "/> + <polygon style="fill:#2A93DF;" points="130.45,219.429 256,292.571 278.506,219.429 256,146.286 "/> + <polygon style="fill:#27C005;" points="301.011,292.571 256,292.571 256,438.857 301.011,438.857 381.55,365.714 "/> + <polygon style="fill:#208D00;" points="507.101,292.571 507.101,438.857 462.09,438.857 381.55,365.714 462.09,292.571 "/> + <polygon style="fill:#208D00;" points="381.55,365.714 507.101,438.857 381.55,512 359.045,438.857 "/> + <polygon style="fill:#7CD465;" points="256,292.571 336.539,219.429 381.55,219.429 507.101,292.571 381.55,365.714 "/> + <polygon style="fill:#27C005;" points="381.55,365.714 381.55,512 256,438.857 "/> + <polygon style="fill:#2879C2;" points="381.55,219.429 381.55,73.143 336.539,73.143 256,146.286 336.539,219.429 "/> + <polygon style="fill:#6FC3FF;" points="381.55,73.143 256,0 130.45,73.143 256,146.286 "/> + <polygon style="fill:#2879C2;" points="256,146.286 256,292.571 381.55,219.429 "/> +</svg> \ No newline at end of file