diff --git a/.gitignore b/.gitignore index 7f5de7386c755a464525cef7566010bd05abae0d..57f16fb67c1b1589981416b323d7a9debc728665 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,41 @@ -.idea/ -.settings/ -bin/ -build/ +/build* +/workspace +setting.xml +release/ target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +icy.log + +### IntelliJ IDEA ### +.idea/ +*.iws *.iml -*.jar +*.ipr + +### Eclipse ### +.apt_generated .classpath +.factorypath .project -export.jardesc -**/.DS_Store \ No newline at end of file +.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 9dad1afc37919a9d308b8fcaf33d26eb0755078b..582587f74a02fa5551e3ee17bae479143bdedc3d 100644 --- a/pom.xml +++ b/pom.xml @@ -8,13 +8,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>track-manager</artifactId> - <version>2.0.0</version> - - <packaging>jar</packaging> + <version>2.0.0-a.1</version> <name>Track Manager</name> <description> @@ -23,6 +21,10 @@ </description> <dependencies> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>ezplug</artifactId> + </dependency> <dependency> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>protocols</artifactId> @@ -36,7 +38,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/fab/trackmanager/Link.java b/src/main/java/plugins/fab/trackmanager/Link.java index 72db57c75ae5a2346ce0e417229d011bce19576c..8145eb344416b3dbc7f7b7aab33b430a192edb79 100644 --- a/src/main/java/plugins/fab/trackmanager/Link.java +++ b/src/main/java/plugins/fab/trackmanager/Link.java @@ -21,7 +21,6 @@ package plugins.fab.trackmanager; import plugins.nchenouard.spot.Detection; public class Link { - TrackSegment start; TrackSegment end; diff --git a/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java b/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java index 3dc43079ebad775f17d3a6380995eb2927def5c0..1276a8b4852a73ff126c96011e70e656005a311d 100644 --- a/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java +++ b/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java @@ -18,16 +18,15 @@ package plugins.fab.trackmanager; -import icy.gui.component.PopupPanel; -import icy.gui.util.GuiUtil; -import icy.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.extension.plugin.abstract_.Plugin; +import org.bioimageanalysis.icy.gui.GuiUtil; +import org.bioimageanalysis.icy.gui.component.panel.PopupPanel; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public abstract class PluginTrackManagerProcessor extends Plugin { - /** * Panel used by inherited class to display data */ @@ -123,11 +122,11 @@ public abstract class PluginTrackManagerProcessor extends Plugin { return mainPanel; } - @Override + /*@Override protected void finalize() throws Throwable { trackPool = null; super.finalize(); - } + }*/ public final void setTrackPool(final TrackPool trackPool) { this.trackPool = trackPool; diff --git a/src/main/java/plugins/fab/trackmanager/TrackDetection.java b/src/main/java/plugins/fab/trackmanager/TrackDetection.java index 53694ff763c686fdc553ff1810be8225dbe562e5..0876f46f50b3666f47c718e16d0010bce9cad0da 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackDetection.java +++ b/src/main/java/plugins/fab/trackmanager/TrackDetection.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/fab/trackmanager/TrackGroup.java b/src/main/java/plugins/fab/trackmanager/TrackGroup.java index 1288b762109cf250acf4b43661fa6c1cb3371c90..e600bab523c88a3141ae3b65c3438c061e2ecfb1 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackGroup.java +++ b/src/main/java/plugins/fab/trackmanager/TrackGroup.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.fab.trackmanager; -import icy.sequence.Sequence; +import org.bioimageanalysis.icy.model.sequence.Sequence; import plugins.nchenouard.spot.Detection; import java.util.ArrayList; diff --git a/src/main/java/plugins/fab/trackmanager/TrackLengthDialog.java b/src/main/java/plugins/fab/trackmanager/TrackLengthDialog.java index 93c690a123b2029cf20d8ee439e4011d084a8516..aeb940e798600a20f21bed9702e3587b2cbcfce6 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackLengthDialog.java +++ b/src/main/java/plugins/fab/trackmanager/TrackLengthDialog.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.fab.trackmanager; -import icy.gui.dialog.ActionDialog; -import icy.gui.util.GuiUtil; +import org.bioimageanalysis.icy.gui.GuiUtil; +import org.bioimageanalysis.icy.gui.dialog.ActionDialog; import javax.swing.*; import java.awt.event.ActionEvent; @@ -31,7 +31,6 @@ public class TrackLengthDialog implements ActionListener { TrackPool trackPool; public TrackLengthDialog(final TrackPool trackPool) { - this.trackPool = trackPool; final ActionDialog actionDialog = new ActionDialog("Select by length"); actionDialog.getContentPane().setLayout( diff --git a/src/main/java/plugins/fab/trackmanager/TrackManager.java b/src/main/java/plugins/fab/trackmanager/TrackManager.java index 3c3616361e5b76b3cf564313700c0e42a97cbb01..29e10d78fa7ebc82056e3b0a0bae67a1cd91eb72 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackManager.java +++ b/src/main/java/plugins/fab/trackmanager/TrackManager.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,30 +18,31 @@ package plugins.fab.trackmanager; -import icy.file.FileUtil; -import icy.gui.component.PopupPanel; -import icy.gui.component.sequence.SequenceChooser; -import icy.gui.dialog.MessageDialog; -import icy.gui.frame.IcyFrame; -import icy.gui.frame.IcyFrameEvent; -import icy.gui.frame.IcyFrameListener; -import icy.gui.frame.progress.AnnounceFrame; -import icy.gui.util.ComponentUtil; -import icy.gui.util.GuiUtil; -import icy.gui.viewer.Viewer; -import icy.main.Icy; -import icy.network.NetworkUtil; -import icy.plugin.PluginDescriptor; -import icy.plugin.PluginLoader; -import icy.plugin.abstract_.PluginActionable; -import icy.resource.ResourceUtil; -import icy.sequence.Sequence; -import icy.swimmingPool.SwimmingObject; -import icy.swimmingPool.SwimmingPoolEvent; -import icy.swimmingPool.SwimmingPoolEventType; -import icy.swimmingPool.SwimmingPoolListener; -import icy.system.IcyExceptionHandler; -import icy.util.XMLUtil; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.extension.plugin.PluginDescriptor; +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.gui.GuiUtil; +import org.bioimageanalysis.icy.gui.component.ComponentUtil; +import org.bioimageanalysis.icy.gui.component.panel.PopupPanel; +import org.bioimageanalysis.icy.gui.dialog.MessageDialog; +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.gui.sequence.SequenceChooser; +import org.bioimageanalysis.icy.gui.viewer.Viewer; +import org.bioimageanalysis.icy.io.FileUtil; +import org.bioimageanalysis.icy.io.xml.XMLUtil; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingObject; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingPoolEvent; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingPoolEventType; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingPoolListener; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.bioimageanalysis.icy.system.IcyExceptionHandler; import org.w3c.dom.Document; import org.w3c.dom.Element; import plugins.nchenouard.spot.Detection; @@ -62,8 +63,9 @@ import java.util.prefs.Preferences; /** * @author Fabrice de Chaumont */ +@IcyPluginName("Track Manager") +@IcyPluginIcon(path = "/track-manager.png") public class TrackManager extends PluginActionable implements AdjustmentListener, ActionListener, SwimmingPoolListener, IcyFrameListener { - /* * List of active trackEditor shared between trackeditors (not used anymore) */ @@ -97,7 +99,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener void loadTrackProcessor(final PluginDescriptor pluginDescriptor) { - if (pluginDescriptor== null || pluginDescriptor.getPluginClass() == null) { + if (pluginDescriptor == null || pluginDescriptor.getPluginClass() == null) { System.err.println("Can't load processor (plugin not found)"); return; } @@ -1174,7 +1176,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener for (final PluginDescriptor plugin : PluginLoader.getPlugins()) { if (plugin.isInstanceOf(PluginTrackManagerProcessor.class)) if (!plugin.isAbstract()) { - final JMenuItem menuItem = new JMenuItem(plugin.getName(), ResourceUtil.scaleIcon(plugin.getIcon(), 24)); + final JMenuItem menuItem = new JMenuItem(plugin.getName(), new ImageIcon(plugin.getIcon().getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); pluginPopupMenu.add(menuItem); diff --git a/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java b/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java index 003cd26b3ed56461bebc6493b0f302a4dbdd0196..16e38f370268f22b77e876bfe5a9570425c093ce 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java +++ b/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.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.fab.trackmanager; -import icy.canvas.Canvas2D; -import icy.canvas.IcyCanvas; -import icy.painter.Overlay; -import icy.sequence.Sequence; -import icy.swimmingPool.SwimmingObject; -import icy.type.point.Point5D; -import icy.util.GraphicsUtil; -import icy.util.ShapeUtil; +import org.bioimageanalysis.icy.common.geom.point.Point5D; +import org.bioimageanalysis.icy.common.geom.shape.ShapeUtil; +import org.bioimageanalysis.icy.gui.GraphicsUtil; +import org.bioimageanalysis.icy.gui.canvas.Canvas2D; +import org.bioimageanalysis.icy.gui.canvas.IcyCanvas; +import org.bioimageanalysis.icy.model.overlay.Overlay; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingObject; import plugins.nchenouard.spot.Detection; import java.awt.*; @@ -371,7 +371,7 @@ public class TrackManagerPainter extends Overlay { // line sections if (detectionList.size() > 1) { - Detection startDetection = detectionList.get(0); + Detection startDetection = detectionList.getFirst(); for (int i = 1; i < ts.getDetectionList().size(); i++) { final Detection endDetection = detectionList.get(i); diff --git a/src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.java b/src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.java index 508939b61dda1fd19dc582e0b8f238ccae515902..7e771b2880164aff3ae205c17db3e2c48f739b8a 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.java +++ b/src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.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/fab/trackmanager/TrackPainterChangeEvent.java b/src/main/java/plugins/fab/trackmanager/TrackPainterChangeEvent.java index 444eb074fde8287e2f029597f5fffe8d98108e1c..f9e65c18739e5947ab8ff09f0a461d1776d9df6b 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackPainterChangeEvent.java +++ b/src/main/java/plugins/fab/trackmanager/TrackPainterChangeEvent.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/fab/trackmanager/TrackPainterListener.java b/src/main/java/plugins/fab/trackmanager/TrackPainterListener.java index a80c2770b0d9ba1759967eb32a8e868da83f0799..12a62db09561393c43ab4755b77abe9d6cf0f339 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackPainterListener.java +++ b/src/main/java/plugins/fab/trackmanager/TrackPainterListener.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/fab/trackmanager/TrackPanel.java b/src/main/java/plugins/fab/trackmanager/TrackPanel.java index 5d85da9eae07df7a085262564ed9ceeaa5599202..40c0702aef6eb6d8ed31f519899ee8248e094a36 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackPanel.java +++ b/src/main/java/plugins/fab/trackmanager/TrackPanel.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,16 @@ package plugins.fab.trackmanager; -import icy.gui.main.GlobalSequenceListener; -import icy.gui.main.GlobalViewerListener; -import icy.gui.viewer.Viewer; -import icy.gui.viewer.ViewerEvent; -import icy.gui.viewer.ViewerListener; -import icy.main.Icy; -import icy.painter.Overlay; -import icy.sequence.DimensionId; -import icy.sequence.Sequence; -import icy.system.thread.ThreadUtil; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.gui.listener.GlobalSequenceListener; +import org.bioimageanalysis.icy.gui.listener.GlobalViewerListener; +import org.bioimageanalysis.icy.gui.viewer.Viewer; +import org.bioimageanalysis.icy.gui.viewer.ViewerEvent; +import org.bioimageanalysis.icy.gui.viewer.ViewerListener; +import org.bioimageanalysis.icy.model.overlay.Overlay; +import org.bioimageanalysis.icy.model.sequence.DimensionId; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.system.thread.ThreadUtil; import plugins.nchenouard.spot.Detection; import javax.swing.*; @@ -47,8 +47,7 @@ import java.util.HashMap; * * @author Fabrice de Chaumont */ -public class TrackPanel extends JPanel implements MouseListener, MouseMotionListener, TrackPainterListener, - TrackManagerProcessorListener, ViewerListener, GlobalSequenceListener, GlobalViewerListener, Runnable { +public class TrackPanel extends JPanel implements MouseListener, MouseMotionListener, TrackPainterListener, TrackManagerProcessorListener, ViewerListener, GlobalSequenceListener, GlobalViewerListener, Runnable { TimeCursor timeCursor = new TimeCursor(); diff --git a/src/main/java/plugins/fab/trackmanager/TrackPool.java b/src/main/java/plugins/fab/trackmanager/TrackPool.java index 1daaf5e1b60d24fcf7083243f7acc1deb6e67888..879d3fd70941177eaac137b9a25ecc6fd7f85e9c 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackPool.java +++ b/src/main/java/plugins/fab/trackmanager/TrackPool.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.fab.trackmanager; -import icy.gui.dialog.MessageDialog; -import icy.gui.frame.progress.AnnounceFrame; -import icy.main.Icy; -import icy.sequence.Sequence; -import icy.swimmingPool.SwimmingObject; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.gui.dialog.MessageDialog; +import org.bioimageanalysis.icy.gui.frame.progress.AnnounceFrame; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingObject; import plugins.nchenouard.spot.Detection; import javax.swing.event.ChangeEvent; diff --git a/src/main/java/plugins/fab/trackmanager/TrackSegment.java b/src/main/java/plugins/fab/trackmanager/TrackSegment.java index 17e6d2e8245e06541dc3f6e80b1e800b2cab13b7..4afa5883be21e8ad914530251beaa33da3d7eb5f 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackSegment.java +++ b/src/main/java/plugins/fab/trackmanager/TrackSegment.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.fab.trackmanager; -import icy.util.Random; +import org.bioimageanalysis.icy.common.math.Random; import plugins.nchenouard.spot.Detection; import java.lang.ref.Reference; @@ -206,7 +206,7 @@ public class TrackSegment implements Cloneable { * Add a detection in the segmentTrack */ public void addDetection(final Detection detection) { - if (detectionList.size() > 0) { + if (!detectionList.isEmpty()) { final Detection detectionPrevious = getLastDetection(); if (detection.getT() != detectionPrevious.getT() + 1) { System.err.println( @@ -316,10 +316,10 @@ public class TrackSegment implements Cloneable { * return last detection ( should be last in time too ) */ public Detection getLastDetection() { - if (detectionList.size() == 0) + if (detectionList.isEmpty()) return null; - return detectionList.get(detectionList.size() - 1); + return detectionList.getLast(); } /** diff --git a/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java b/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java index 2a3d239ef29a8029aeb5051e16b01972e0490fcd..9487a08237b2f3a30d63e1b736183a7e26127c84 100644 --- a/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java +++ b/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.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,11 @@ package plugins.fab.trackmanager.blocks; -import icy.plugin.abstract_.Plugin; -import icy.plugin.interface_.PluginBundled; -import icy.plugin.interface_.PluginLibrary; +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.extension.plugin.interface_.PluginBundled; +import org.bioimageanalysis.icy.extension.plugin.interface_.PluginLibrary; import plugins.adufour.blocks.tools.roi.ROIBlock; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.Var; @@ -37,6 +39,8 @@ import java.util.List; * * @author Stephane */ +@IcyPluginName("Load Tracks From XML") +@IcyPluginIcon(path = "/track-manager.png") public class LoadTracksFromXML extends Plugin implements ROIBlock, PluginLibrary, PluginBundled { final VarMutable file = new VarMutable("XML file", null) { @Override diff --git a/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java b/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java index cc3d4ce82a7e244c5f33a159b324c8f1aaa16ebc..72cffb4cb4d1f82feb5318d769ffc995e6177f1d 100644 --- a/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java +++ b/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.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.fab.trackmanager.blocks; -import icy.plugin.abstract_.Plugin; -import icy.plugin.interface_.PluginBundled; -import icy.plugin.interface_.PluginLibrary; -import icy.type.collection.CollectionUtil; +import org.bioimageanalysis.icy.common.collection.CollectionUtil; +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.extension.plugin.interface_.PluginBundled; +import org.bioimageanalysis.icy.extension.plugin.interface_.PluginLibrary; import plugins.adufour.blocks.tools.roi.ROIBlock; import plugins.adufour.blocks.util.VarList; import plugins.adufour.vars.lang.Var; @@ -36,6 +38,8 @@ import java.io.File; * * @author Stephane */ +@IcyPluginName("Save Tracks To XML") +@IcyPluginIcon(path = "/track-manager.png") public class SaveTracksToXML extends Plugin implements ROIBlock, PluginLibrary, PluginBundled { final Var<TrackGroup> tracks = new Var<>("Track group", new TrackGroup(null)); final VarMutable file = new VarMutable("XML file", null) { diff --git a/src/main/resources/track-manager.png b/src/main/resources/track-manager.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9f4633300b549dee3b34c50b3573d2d5aeeea8 Binary files /dev/null and b/src/main/resources/track-manager.png differ