From 2c627994b8f398c3c295955b79f5d3552ede4197 Mon Sep 17 00:00:00 2001 From: Thomas <thomas.musset@pasteur.fr> Date: Thu, 27 Jun 2024 15:44:19 +0200 Subject: [PATCH] updated pom to v4.0.0-a.1, fix classes accordingly to new architecture, replace icon with SVG icon, updated .gitignore --- .gitignore | 39 +++++-- pom.xml | 12 +- .../plugins/adufour/blocks/lang/Batch.java | 2 +- .../plugins/adufour/blocks/lang/Block.java | 3 +- .../adufour/blocks/lang/BlockDescriptor.java | 59 +++++----- .../adufour/blocks/lang/FileBatch.java | 8 +- .../plugins/adufour/blocks/lang/Link.java | 9 +- .../plugins/adufour/blocks/lang/Loop.java | 10 +- .../adufour/blocks/lang/RangeLoop.java | 2 +- .../blocks/lang/SequenceFileBatch.java | 4 +- .../blocks/lang/SequenceSeriesBatch.java | 17 ++- .../plugins/adufour/blocks/lang/WorkFlow.java | 24 ++-- .../adufour/blocks/tools/Accumulator.java | 5 +- .../plugins/adufour/blocks/tools/Display.java | 9 +- .../plugins/adufour/blocks/tools/Indexer.java | 4 +- .../adufour/blocks/tools/Iterator.java | 4 +- .../adufour/blocks/tools/ListSize.java | 4 +- .../plugins/adufour/blocks/tools/ReLoop.java | 4 +- .../adufour/blocks/tools/ToolsBlock.java | 2 +- .../adufour/blocks/tools/ij/CallIJMacro.java | 44 -------- .../adufour/blocks/tools/ij/CallIJPlugin.java | 85 -------------- .../blocks/tools/ij/GetActiveImagePlus.java | 50 --------- .../adufour/blocks/tools/ij/IJBlock.java | 29 ----- .../blocks/tools/ij/ImagePlusToSequence.java | 55 --------- .../blocks/tools/ij/SequenceToImagePlus.java | 55 --------- .../blocks/tools/ij/ShowImagePlus.java | 42 ------- .../adufour/blocks/tools/input/Boolean.java | 4 +- .../adufour/blocks/tools/input/Decimal.java | 4 +- .../adufour/blocks/tools/input/Decimals.java | 4 +- .../adufour/blocks/tools/input/File.java | 4 +- .../adufour/blocks/tools/input/Files.java | 4 +- .../adufour/blocks/tools/input/Folder.java | 4 +- .../adufour/blocks/tools/input/Folders.java | 4 +- .../blocks/tools/input/InputBlock.java | 2 +- .../adufour/blocks/tools/input/Integer.java | 4 +- .../adufour/blocks/tools/input/Integers.java | 4 +- .../adufour/blocks/tools/input/Sequence.java | 6 +- .../adufour/blocks/tools/input/Sequences.java | 6 +- .../adufour/blocks/tools/input/Text.java | 4 +- .../blocks/tools/io/AppendFilePath.java | 6 +- .../adufour/blocks/tools/io/CreateFile.java | 6 +- .../adufour/blocks/tools/io/CreateFolder.java | 6 +- .../adufour/blocks/tools/io/FileToPath.java | 4 +- .../blocks/tools/io/FileToSequence.java | 8 +- .../blocks/tools/io/FilesToSequence.java | 9 +- .../blocks/tools/io/GetSequenceFolder.java | 6 +- .../adufour/blocks/tools/io/IOBlock.java | 3 +- .../adufour/blocks/tools/io/PathToFile.java | 4 +- .../blocks/tools/io/SendToSwimmingPool.java | 8 +- .../blocks/tools/io/SequenceToFile.java | 6 +- .../blocks/tools/output/BooleanOutput.java | 4 +- .../blocks/tools/output/DecimalOutput.java | 4 +- .../blocks/tools/output/DecimalsOutput.java | 4 +- .../blocks/tools/output/FileOutput.java | 4 +- .../blocks/tools/output/FilesOutput.java | 4 +- .../blocks/tools/output/FolderOutput.java | 4 +- .../blocks/tools/output/FoldersOutput.java | 4 +- .../blocks/tools/output/IntegerOutput.java | 4 +- .../blocks/tools/output/IntegersOutput.java | 4 +- .../blocks/tools/output/OutputBlock.java | 2 +- .../blocks/tools/output/SequenceOutput.java | 6 +- .../blocks/tools/output/SequencesOutput.java | 6 +- .../blocks/tools/output/TextOutput.java | 4 +- .../blocks/tools/roi/CropSequenceToROI.java | 18 +-- .../adufour/blocks/tools/roi/DilateROI.java | 21 ++-- .../adufour/blocks/tools/roi/ErodeROI.java | 21 ++-- .../blocks/tools/roi/GetROIFromSequence.java | 8 +- .../adufour/blocks/tools/roi/MergeROI.java | 12 +- .../adufour/blocks/tools/roi/MorphROI.java | 6 +- .../adufour/blocks/tools/roi/ROIBlock.java | 2 +- .../adufour/blocks/tools/roi/SubtractROI.java | 6 +- .../blocks/tools/roi/TranslateROI.java | 12 +- .../blocks/tools/sequence/SequenceBlock.java | 3 +- .../tools/sequence/SequenceScreenshot.java | 12 +- .../blocks/tools/sequence/ShowSequence.java | 6 +- .../adufour/blocks/tools/text/AppendText.java | 8 +- .../adufour/blocks/util/BlockAnnotations.java | 13 ++- .../adufour/blocks/util/BlockListener.java | 2 +- .../adufour/blocks/util/BlocksException.java | 2 +- .../adufour/blocks/util/BlocksFinder.java | 83 ++++++-------- .../plugins/adufour/blocks/util/BlocksML.java | 105 ++++++++---------- .../blocks/util/BlocksReloadedException.java | 2 +- .../adufour/blocks/util/LinkCutException.java | 2 +- .../adufour/blocks/util/LoopException.java | 2 +- .../adufour/blocks/util/MenuItemListener.java | 4 +- .../blocks/util/NoSuchBlockException.java | 2 +- .../blocks/util/NoSuchLinkException.java | 2 +- .../blocks/util/NoSuchVariableException.java | 2 +- .../adufour/blocks/util/ScopeException.java | 2 +- .../adufour/blocks/util/StopException.java | 2 +- .../plugins/adufour/blocks/util/VarList.java | 2 +- .../adufour/blocks/util/VarListListener.java | 2 +- .../blocks/util/VarVisibilityListener.java | 2 +- .../adufour/blocks/util/WorkFlowListener.java | 2 +- .../adufour/protocols/ProtocolImporter.java | 13 ++- .../plugins/adufour/protocols/Protocols.java | 100 +++++++---------- .../protocols/gui/BlockSearchPanel.java | 20 ++-- .../adufour/protocols/gui/MainFrame.java | 79 +++++++------ .../adufour/protocols/gui/ProtocolPanel.java | 16 +-- .../protocols/gui/block/BlockPanel.java | 46 ++++---- .../protocols/gui/block/LoopPanel.java | 29 +++-- .../gui/block/WorkFlowContainer.java | 34 +++--- .../protocols/gui/block/WorkFlowPanel.java | 10 +- .../protocols/gui/link/CurvedLine.java | 2 +- .../protocols/gui/link/DragDropZone.java | 7 +- .../adufour/protocols/gui/link/DragZone.java | 2 +- .../adufour/protocols/gui/link/DropZone.java | 8 +- .../adufour/protocols/gui/link/Line.java | 4 +- .../protocols/gui/link/ReLoopLine.java | 2 +- .../protocols/gui/link/RoundedSquareLine.java | 2 +- .../protocols/gui/link/TransferableVar.java | 5 +- .../livebar/OnlineProtocolProducer.java | 20 ++-- .../livebar/OnlineProtocolProvider.java | 8 +- .../protocols/livebar/ProtocolDescriptor.java | 16 +-- .../logo/icysoftware_icon-protocols-sdk.png | Bin 6683 -> 0 bytes src/main/resources/protocols.svg | 18 +++ 116 files changed, 615 insertions(+), 949 deletions(-) delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/CallIJMacro.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/CallIJPlugin.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/GetActiveImagePlus.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/IJBlock.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/ImagePlusToSequence.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/SequenceToImagePlus.java delete mode 100644 src/main/java/plugins/adufour/blocks/tools/ij/ShowImagePlus.java delete mode 100644 src/main/resources/logo/icysoftware_icon-protocols-sdk.png create mode 100644 src/main/resources/protocols.svg diff --git a/.gitignore b/.gitignore index 1a26a75..9d5e2ad 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 a1bb3d3..75212a4 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 b0b88c0..b0e01a2 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 933bc58..7a2b6b5 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 2ed032f..c8c4521 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 cdf415b..356ecf8 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 0c8373d..1ed8952 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 fdbcbe2..c471648 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 363cd46..254b7a1 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 a35621a..707f59a 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 df3eb2b..e0bb3d7 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 47b04f3..b7be8a6 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 90b6336..6755e81 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 6fec431..4bc82e1 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 1f07fba..228218e 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 24aa0b3..9ea12b0 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 1c32e4c..b49101b 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 74af8ef..7af37b5 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 e1888ff..631d1ee 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 25c4dc3..0000000 --- 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 d98232c..0000000 --- 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 72b82b3..0000000 --- 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 9cac90e..0000000 --- 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 91af54a..0000000 --- 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 cb8c97f..0000000 --- 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 fe3314a..0000000 --- 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 13dbfd7..1ad2592 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 3ccdbb6..f0912ef 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 0a724d1..6139ba1 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 5c4140f..400058f 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 43dc147..4d0760e 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 5a96c27..ec80e2e 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 0a390ef..8b49e0b 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 e8ba5a3..7599fa0 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 9fc5b59..53b76fb 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 fb97208..994fc22 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 9e9f9fa..95ae602 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 6395bfe..5ea4524 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 7d74e34..075d276 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 c55616a..9e3eef5 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 f0ccb87..abc30a2 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 d3f5394..5644d83 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 c12a94e..e8bc94c 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 5c08e27..126b868 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 831aa2b..0aa810e 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 0c22f94..32be0ce 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 d9c51cd..41d4a31 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 255d258..a5f6754 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 bbb265f..da2968f 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 b204e52..4208f3c 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 8aacf28..09f12b8 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 73869f3..f85d478 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 063e9a0..c3955ef 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 abb7aea..b891cca 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 078f130..f2f85fa 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 7aba8f6..c20fdf2 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 34da2c1..15231bd 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 7373642..2dfad0c 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 63d5456..c1d24a4 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 ee2ff64..f84acb3 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 7ffa75b..986420b 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 a9e18ab..e4b2b3e 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 773df19..75e6cec 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 06dc8e5..48139e7 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 fe94702..9c87507 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 53fdc2a..bdfc66f 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 c2d502a..477ec74 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 640940b..5bd2159 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 b1dc9df..18c5e53 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 5c7ccfe..a08140b 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 ac46a4a..8beca1b 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 9d5a1bf..5695299 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 81b2fa1..1ce61fd 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 e04cb02..3f2cee6 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 756c6e5..27aa8e5 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 cb77da2..01a6c81 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 9c0ae85..264f2db 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 7baf435..e542459 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 9d99199..ed58ea8 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 d66aa96..9db8e16 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 58a5e50..11aeec2 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 dff6cbb..6f7e6cf 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 a28ad89..66d0d57 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 ec7141f..a0392d3 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 6e513cc..54076d5 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 61fb921..fb43b5b 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 03fe302..e415cba 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 30b214c..f708850 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 53a4297..529b9ad 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 733e8fe..1812c1f 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 8907e7a..c89665c 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 6338905..735df5f 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 3fedb9d..04b8357 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 5de1a9b..8a54e28 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 f1e0150..5835713 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 726b902..a765bf0 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 2e6cb80..c119dd7 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 a863ffb..5949d1a 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 9509ea2..87e0757 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 ffa0bed..5c84d9f 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 56d71a5..19bae04 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 f041ab1..5495cdb 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 3ecdd15..bf4388c 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 9e5b091..231c05b 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 295e806..da03be3 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 1b89471..0e06dc3 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 9c6c8ea..334ff5f 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 971b9ae..bc20f2f 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 2cbcc92..8c41d85 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 dd72fa7..df223ee 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 c3d98a6..a72ca17 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 465e43d..2b55ebb 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 3aac2b7..da58908 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 186c5ef..b1b6e34 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 GIT binary patch literal 0 HcmV?d00001 literal 6683 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 diff --git a/src/main/resources/protocols.svg b/src/main/resources/protocols.svg new file mode 100644 index 0000000..3c778a3 --- /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 -- GitLab