diff --git a/pom.xml b/pom.xml index 582587f74a02fa5551e3ee17bae479143bdedc3d..974c0c6f78f9e12c5dc30c41ad5eee2ecce0c7fe 100644 --- a/pom.xml +++ b/pom.xml @@ -8,11 +8,11 @@ <parent> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>pom-icy</artifactId> - <version>3.0.0-a.1</version> + <version>3.0.0-a.3</version> </parent> <artifactId>track-manager</artifactId> - <version>2.0.0-a.1</version> + <version>2.0.0-a.2</version> <name>Track Manager</name> <description> @@ -34,11 +34,4 @@ <artifactId>spot-detection-utilities</artifactId> </dependency> </dependencies> - - <repositories> - <repository> - <id>icy</id> - <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 a2fc34244e7d112f2623e2d5f193e2fc47e32660..ca6271f84af73f8f7fee896af8a6fe95dcd45519 100644 --- a/src/main/java/plugins/fab/trackmanager/Link.java +++ b/src/main/java/plugins/fab/trackmanager/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 diff --git a/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java b/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java index 3468c730133c318595deae754e9bdbe7f5304dec..bdd7cd3dac1d9bde6bc4c3d2521095b113e2f8b2 100644 --- a/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java +++ b/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.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 @@ -130,18 +130,10 @@ public abstract class PluginTrackManagerProcessor extends Plugin { return mainPanel; } - /*@Override - protected void finalize() throws Throwable { - trackPool = null; - super.finalize(); - }*/ - - @SuppressWarnings("UnstableApiUsage") @Contract(mutates = "this") public final void setTrackPool(final TrackPool trackPool) { this.trackPool = trackPool; } abstract public void displaySequenceChanged(); - } diff --git a/src/main/java/plugins/fab/trackmanager/TrackDetection.java b/src/main/java/plugins/fab/trackmanager/TrackDetection.java index 2fb2b134b2c53c81e0d9259a08b844afd437eb11..cd5b4392f5e846738b95bbdc1a7f32a51f438033 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackDetection.java +++ b/src/main/java/plugins/fab/trackmanager/TrackDetection.java @@ -37,11 +37,6 @@ public class TrackDetection extends JPanel { public TrackDetection(final Detection detection) { super(); this.detection = detection; - // if ( detection.getDetectionType() == Detection.DETECTIONTYPE_REAL_DETECTION ) color = - // Color.blue; - // if ( detection.getDetectionType() == Detection.DETECTIONTYPE_VIRTUAL_DETECTION ) color = - // Color.orange; - } public Detection getDetection() { diff --git a/src/main/java/plugins/fab/trackmanager/TrackGroup.java b/src/main/java/plugins/fab/trackmanager/TrackGroup.java index 597e931644d1ad1fe80c2a0309776b9d879053da..2d686fa18c5d1d51beac8f1d11f8c73e5364f136 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackGroup.java +++ b/src/main/java/plugins/fab/trackmanager/TrackGroup.java @@ -63,7 +63,6 @@ public class TrackGroup { } public TrackSegment getTrackSegmentWithDetection(final Detection detection) { - final ArrayList<TrackSegment> trackSegmentList = getTrackSegmentList(); for (final TrackSegment ts : trackSegmentList) { diff --git a/src/main/java/plugins/fab/trackmanager/TrackManager.java b/src/main/java/plugins/fab/trackmanager/TrackManager.java index 9adf81560680f037f0f5940461e9be6a3e4e6351..e2664d07bab98ae6afb5f6a0099d791b6824a089 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackManager.java +++ b/src/main/java/plugins/fab/trackmanager/TrackManager.java @@ -67,13 +67,8 @@ import java.util.prefs.Preferences; * @author Fabrice de Chaumont */ @IcyPluginName("Track Manager") -@IcyPluginIcon(path = "/track-manager.png") +@IcyPluginIcon(path = "/plugins/fab/trackmanager/track-manager.png") public class TrackManager extends PluginActionable implements AdjustmentListener, ActionListener, SwimmingPoolListener, IcyFrameListener { - /* - * List of active trackEditor shared between trackeditors (not used anymore) - */ - // private static ArrayList<TrackManager> trackManagerList = new ArrayList<TrackManager>(); - /** * is this track manager not used anymore (TODO:Should change to a listener structure.) */ @@ -124,9 +119,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener trackPool.addTrackProcessor(ptep); // rebuild trackList - rebuildTrackProcessorDisplay(); - } public TrackPool getTrackPool() { @@ -134,7 +127,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener } void rebuildTrackProcessorDisplay() { - rightContentPanel.removeAll(); for (final PluginTrackManagerProcessor trackProcessor : trackPool.getTrackManagerProcessorList()) { @@ -407,7 +399,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // add the trackColor Processor final PluginDescriptor pd = PluginLoader.getPlugin("plugins.fab.trackmanager.processors.TrackProcessorColorTrack"); loadTrackProcessor(pd); - } /** @@ -466,11 +457,9 @@ public class TrackManager extends PluginActionable implements AdjustmentListener } // trackGroupSourceInnerPanel.updateUI(); - } private void initTrackPoolInnerPanel() { - // trackingGroupSourceMenu.removeAll(); // trackGroupSourceInnerPanel.removeAll(); @@ -503,7 +492,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener } } - } // /** @@ -538,7 +526,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // } // } - ///** List of sequences which will be kept synchronize while the t cursor are moving. */ + //** List of sequences which will be kept synchronize while the t cursor are moving. */ // private ArrayList<Sequence> sequenceToKeepSynchronizeInT = new ArrayList<Sequence>(); /** @@ -567,7 +555,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // System.out.println("Synchro sequence"); // for (Sequence sequence : sequenceToKeepSynchronizeInT) // { - //// System.out.println("synchro on sequence : " + sequence ); + // System.out.println("synchro on sequence : " + sequence ); // sequence.setT(currentT); // } @@ -582,7 +570,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener } class CheckBoxResultSource extends JCheckBoxMenuItem implements ActionListener { - // JCheckBox checkBox = new JCheckBox(); // JToggleButton trackTimeOnSequenceButton = new JToggleButton("T"); SwimmingObject result; @@ -630,7 +617,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // } // } // ---------- - } // public void setSelected(boolean b) { @@ -642,7 +628,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // remove the sequence tracked // if (trackTimeOnSequenceButton.isSelected()) // { - //// sequenceToKeepSynchronizeInT.remove(sequence); + // sequenceToKeepSynchronizeInT.remove(sequence); // } trackingGroupSourceMenu.remove(this); // trackGroupSourceInnerPanel.remove(this); @@ -657,12 +643,12 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // { // if (trackTimeOnSequenceButton.isSelected()) // { - //// if (sequence != null) - //// sequenceToKeepSynchronizeInT.add(sequence); + // if (sequence != null) + // sequenceToKeepSynchronizeInT.add(sequence); // } // else // { - //// sequenceToKeepSynchronizeInT.remove(sequence); + // sequenceToKeepSynchronizeInT.remove(sequence); // } // reSynchroTSequence(); // } @@ -678,7 +664,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // if (trackEditor != TrackManager.this) // { // // System.out.println("call ok"); - //// trackEditor.setEnableCheckBoxResultSource(result, false); + // trackEditor.setEnableCheckBoxResultSource(result, false); // } // } @@ -688,8 +674,8 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // trackPool.getDisplaySequence().painterChanged( null ); // for (TrackManager trackEditor : trackManagerList) // { - //// if (trackEditor != TrackManager.this) - //// trackEditor.setEnableCheckBoxResultSource(result, true); + // if (trackEditor != TrackManager.this) + // trackEditor.setEnableCheckBoxResultSource(result, true); // } } @@ -1129,7 +1115,7 @@ public class TrackManager extends PluginActionable implements AdjustmentListener int newX = (int) trackPanel.getDetectDim().getWidth() - 5; if (newX <= 0) newX = 5; - trackPanel.setDetectDim(new Dimension(newX, newX)); + trackPanel.setDetectDim(new Dimension(newX, newX)); // TODO check if 'newX' should be used as 'Y' argument trackPool.fireTrackEditorProcessorChange(); } if (e.getSource() == zoomMoreButton) { @@ -1151,7 +1137,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener // .getDetectDim().getHeight() + 5)); // trackPool.fireTrackEditorProcessorChange(); // } - } @Override @@ -1179,7 +1164,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener menuItem.addActionListener(new MenuItemActionListener(plugin, PluginTrackManagerProcessor.class)); } } - } public void moveTrackProcessor(final PluginTrackManagerProcessor trackEditorProcessor, final int i) { @@ -1201,7 +1185,6 @@ public class TrackManager extends PluginActionable implements AdjustmentListener trackPool.fireTrackEditorProcessorChange(); // System.out.println("Demande changement de place."); - } @Override @@ -1291,11 +1274,10 @@ public class TrackManager extends PluginActionable implements AdjustmentListener public void setDisplaySequence(final Sequence sequence) { sequenceSelector.setSelectedSequence(sequence); - } @Override public void run() { - + // } } diff --git a/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java b/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java index 6a6687bb28ce301a07d7e1b90fcbbbe5d34b568d..422a88e43df45cd8ecccdd1db99fcde525104b0d 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java +++ b/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java @@ -496,7 +496,8 @@ public class TrackManagerPainter extends Overlay { // // if ( StringUtil.equals(metadataName, Sequence.ID_PIXEL_SIZE_Z )) // { - //// adjustZScaling( getSequence().getPixelSizeZ() ); + + // adjustZScaling( getSequence().getPixelSizeZ() ); // } // // break; @@ -508,18 +509,7 @@ public class TrackManagerPainter extends Overlay { // { // } - private static class TrackLineSection { - final Detection start; - final Detection end; - - @Contract(pure = true) - public TrackLineSection(final Detection start, final Detection end) { - super(); - - this.start = start; - this.end = end; - } - + private record TrackLineSection(Detection start, Detection end) { @Contract("_ -> param1") public @NotNull Line2D getLine2D(final @NotNull Line2D line) { line.setLine(start.getX(), start.getY(), end.getX(), end.getY()); diff --git a/src/main/java/plugins/fab/trackmanager/TrackPool.java b/src/main/java/plugins/fab/trackmanager/TrackPool.java index 6771976d3859cd897cbd4309c3ad8f775fc613b3..5d4a648433f7bba3dfc633a038a259cdba97b028 100644 --- a/src/main/java/plugins/fab/trackmanager/TrackPool.java +++ b/src/main/java/plugins/fab/trackmanager/TrackPool.java @@ -116,19 +116,17 @@ public class TrackPool { * Creates a virtual track */ public void createVirtualTrackWith2Detection(Detection detectionStart, Detection detectionEnd) { - TrackSegment segmentStart = getTrackSegmentWithDetection(detectionStart); TrackSegment segmentEnd = getTrackSegmentWithDetection(detectionEnd); if (segmentStart == segmentEnd) { - MessageDialog.showDialog("Can't link 2 detections belonging to the same track.", - MessageDialog.INFORMATION_MESSAGE); + MessageDialog.showDialog("Can't link 2 detections belonging to the same track.", MessageDialog.INFORMATION_MESSAGE); return; } - if (segmentStart.getOwnerTrackGroup() != segmentStart.getOwnerTrackGroup()) { - MessageDialog.showDialog("The two tracks should be from the same track group.", - MessageDialog.INFORMATION_MESSAGE); + //if (segmentStart.getOwnerTrackGroup() != segmentStart.getOwnerTrackGroup()) { // TODO I think it's an error + if (segmentStart.getOwnerTrackGroup() != segmentEnd.getOwnerTrackGroup()) { + MessageDialog.showDialog("The two tracks should be from the same track group.", MessageDialog.INFORMATION_MESSAGE); return; } @@ -143,8 +141,7 @@ public class TrackPool { // The detection is not the last of the track. // Must split the start track. - final ArrayList<TrackSegment> returnList = splitTrackSegment(segmentStart, - segmentStart.getDetectionIndex(detectionStart), true); + final ArrayList<TrackSegment> returnList = splitTrackSegment(segmentStart, segmentStart.getDetectionIndex(detectionStart), true); // should render 2 segments. The first is the one we want. We take the last detection of the first tracksegment. detectionStart = returnList.getFirst().getLastDetection(); segmentStart = getTrackSegmentWithDetection(detectionStart); @@ -154,8 +151,7 @@ public class TrackPool { // The detection is not the first of the track. // Must split the end track. - final ArrayList<TrackSegment> returnList = splitTrackSegment(segmentEnd, - segmentEnd.getDetectionIndex(detectionEnd) - 1, true); + final ArrayList<TrackSegment> returnList = splitTrackSegment(segmentEnd, segmentEnd.getDetectionIndex(detectionEnd) - 1, true); // should render 2 segments. The second is the one we want. We take the first detection of the second tracksegment. detectionEnd = returnList.get(1).getFirstDetection(); segmentEnd = getTrackSegmentWithDetection(detectionEnd); diff --git a/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java b/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java index e0b91c252fbc298144e7ae1ff8119522ee410eea..6776f1630db43b79121238d5d6450ce54f134845 100644 --- a/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java +++ b/src/main/java/plugins/fab/trackmanager/blocks/LoadTracksFromXML.java @@ -39,7 +39,7 @@ import java.util.List; * @author Stephane Dallongeville */ @IcyPluginName("Load Tracks From XML") -@IcyPluginIcon(path = "/track-manager.png") +@IcyPluginIcon(path = "/plugins/fab/trackmanager/track-manager.png") public class LoadTracksFromXML extends Plugin implements ROIBlock { final VarMutable file = new VarMutable("XML file", null) { @Override @@ -78,6 +78,5 @@ public class LoadTracksFromXML extends Plugin implements ROIBlock { @Override public void declareOutput(final @NotNull VarList outputMap) { outputMap.add("tracks", tracks); - } } diff --git a/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java b/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java index e8c88a1370ca228971cf56d1f8eca0718027f994..a0da90be307936b43b95c1e35a0e2c2ba1234e0a 100644 --- a/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java +++ b/src/main/java/plugins/fab/trackmanager/blocks/SaveTracksToXML.java @@ -38,7 +38,7 @@ import java.io.File; * @author Stephane Dallongeville */ @IcyPluginName("Save Tracks To XML") -@IcyPluginIcon(path = "/track-manager.png") +@IcyPluginIcon(path = "/plugins/fab/trackmanager/track-manager.png") public class SaveTracksToXML extends Plugin implements ROIBlock { 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/plugins/fab/trackmanager/track-manager.png similarity index 100% rename from src/main/resources/track-manager.png rename to src/main/resources/plugins/fab/trackmanager/track-manager.png