diff --git a/pom.xml b/pom.xml
index 838eff3ab..716d93577 100644
--- a/pom.xml
+++ b/pom.xml
@@ -179,7 +179,6 @@
(https://github.com/scijava/scijava-coding-style) -->
imglib2
- 2.5.2
0.11.1
8.0.0
10.6.7
@@ -201,7 +200,7 @@
org.scijava
config-ui
- 0.0.1-SNAPSHOT
+ 0.0.1
@@ -391,11 +390,6 @@
javaGeom
${javaGeom.version}
-
- org.drjekyll
- fontchooser
- ${fontchooser.version}
-
diff --git a/src/main/java/fiji/plugin/trackmate/action/closegaps/CloseGapsPanel.java b/src/main/java/fiji/plugin/trackmate/action/closegaps/CloseGapsPanel.java
index 2012beb98..ae4d7d45a 100644
--- a/src/main/java/fiji/plugin/trackmate/action/closegaps/CloseGapsPanel.java
+++ b/src/main/java/fiji/plugin/trackmate/action/closegaps/CloseGapsPanel.java
@@ -39,11 +39,12 @@
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
+import org.scijava.ui.config.visitors.gui.elements.SliderPanelDouble;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
+
import fiji.plugin.trackmate.action.closegaps.GapClosingMethod.GapClosingParameter;
import fiji.plugin.trackmate.gui.Fonts;
-import fiji.plugin.trackmate.gui.displaysettings.SliderPanelDouble;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BoundedDoubleElement;
/**
* A basic UI to let a TrackMate user choose between several techniques for gap
diff --git a/src/main/java/fiji/plugin/trackmate/action/meshtools/MeshSmootherPanel.java b/src/main/java/fiji/plugin/trackmate/action/meshtools/MeshSmootherPanel.java
index 4987a6f3b..c8c47d638 100644
--- a/src/main/java/fiji/plugin/trackmate/action/meshtools/MeshSmootherPanel.java
+++ b/src/main/java/fiji/plugin/trackmate/action/meshtools/MeshSmootherPanel.java
@@ -39,14 +39,15 @@
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
-import fiji.plugin.trackmate.gui.displaysettings.SliderPanel;
-import fiji.plugin.trackmate.gui.displaysettings.SliderPanelDouble;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BoundedDoubleElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.EnumElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.IntElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.StyleElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.StyleElementVisitor;
+import org.scijava.ui.config.visitors.gui.elements.SliderPanel;
+import org.scijava.ui.config.visitors.gui.elements.SliderPanelDouble;
+import org.scijava.ui.config.visitors.gui.elements.StyleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElementVisitor;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.EnumElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.IntElement;
+
import net.imglib2.mesh.alg.TaubinSmoothing.TaubinWeightType;
public class MeshSmootherPanel extends JPanel
diff --git a/src/main/java/fiji/plugin/trackmate/gui/GuiModel.java b/src/main/java/fiji/plugin/trackmate/gui/GuiModel.java
index c27f63eab..d714c9e54 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/GuiModel.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/GuiModel.java
@@ -13,6 +13,7 @@
import fiji.plugin.trackmate.Settings;
import fiji.plugin.trackmate.TrackMate;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings;
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettingsManager;
import fiji.plugin.trackmate.gui.editor.labkit.component.EditorKeymapManager;
import fiji.plugin.trackmate.util.TMUtils;
import fiji.plugin.trackmate.visualization.hyperstack.behaviours.semiautotracking.SemiAutoTrackingParams;
@@ -53,6 +54,8 @@ public class GuiModel
private final WindowManager windowManager;
+ private final DisplaySettingsManager dsManager;
+
/**
* Creates a new GuiModel.
*
@@ -83,6 +86,9 @@ public GuiModel( final Model model, final Settings settings, final DisplaySettin
this.globalActions = new Actions( keymapManager.getForwardSelectedKeymap().getConfig(), KeyConfigContexts.TRACKMATE );
TrackMateActions.install( globalActions, model, selectionModel );
+ // Other managers
+ this.dsManager = new DisplaySettingsManager( displaySettings, true );
+
// Window manager
this.windowManager = new WindowManager( this );
}
@@ -243,4 +249,9 @@ public SemiAutoTrackingParams getSemiAutoTrackingParams()
{
return semiAutoTrackingparams;
}
+
+ public DisplaySettingsManager getDisplaySettingsManager()
+ {
+ return dsManager;
+ }
}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/WindowManager.java b/src/main/java/fiji/plugin/trackmate/gui/WindowManager.java
index 5b25959ed..0335be4f8 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/WindowManager.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/WindowManager.java
@@ -29,6 +29,7 @@
import bdv.ui.keymap.KeymapSettingsPage;
import bdv.util.InvokeOnEDT;
import bvv.vistools.BvvHandle;
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettingsConfigPage;
import fiji.plugin.trackmate.gui.editor.LabkitLauncher;
import fiji.plugin.trackmate.gui.editor.labkit.component.TMLabKitFrame;
import fiji.plugin.trackmate.util.TMUtils;
@@ -68,9 +69,10 @@ public WindowManager( final GuiModel guiModel )
preferencesDialog.setTitle( "TrackMate Preferences" );
preferencesDialog.setLocationRelativeTo( null );
BigDataViewerActions.toggleDialogAction( globalActions, preferencesDialog, BigDataViewerActions.PREFERENCES_DIALOG, BigDataViewerActions.PREFERENCES_DIALOG_KEYS );
- preferencesDialog.addPage( new SpotEditToolSettingsPage( "Semi-auto tracking", guiModel.getSemiAutoTrackingParams() ) );
+ preferencesDialog.addPage( new DisplaySettingsConfigPage( "Display settings", guiModel.getDisplaySettingsManager() ) );
preferencesDialog.addPage( new KeymapSettingsPage( "Global keymap", keymapManager, keymapManager.getCommandDescriptions() ) );
preferencesDialog.addPage( new KeymapSettingsPage( "Editor keymap", guiModel.getEditorKeymapManager(), guiModel.getEditorKeymapManager().getCommandDescriptions() ) );
+ preferencesDialog.addPage( new SpotEditToolSettingsPage( "Semi-auto tracking", guiModel.getSemiAutoTrackingParams() ) );
preferencesDialog.addPage( new AppearanceSettingsPage( "Editor appearance", guiModel.getAppearanceManager() ) );
}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/components/ConfigureViewsPanel.java b/src/main/java/fiji/plugin/trackmate/gui/components/ConfigureViewsPanel.java
index c4e789bf8..f60a66d2a 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/components/ConfigureViewsPanel.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/components/ConfigureViewsPanel.java
@@ -25,7 +25,6 @@
import static fiji.plugin.trackmate.gui.Fonts.FONT;
import static fiji.plugin.trackmate.gui.Fonts.SMALL_FONT;
import static fiji.plugin.trackmate.gui.Icons.BVV_ICON;
-import static fiji.plugin.trackmate.gui.Icons.EDIT_SETTINGS_ICON;
import static fiji.plugin.trackmate.gui.Icons.SPOT_TABLE_ICON;
import static fiji.plugin.trackmate.gui.Icons.TRACK_SCHEME_ICON_16x16;
import static fiji.plugin.trackmate.gui.Icons.TRACK_TABLES_ICON;
@@ -46,7 +45,6 @@
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
-import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRootPane;
@@ -61,7 +59,6 @@
import fiji.plugin.trackmate.gui.GuiUtils;
import fiji.plugin.trackmate.gui.Icons;
import fiji.plugin.trackmate.gui.WindowManager;
-import fiji.plugin.trackmate.gui.displaysettings.ConfigTrackMateDisplaySettings;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackDisplayMode;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.UpdateListener;
@@ -97,6 +94,7 @@ public ConfigureViewsPanel( final GuiModel guiModel, final FeatureDisplaySelecto
{
this.guiModel = guiModel;
this.windowManager = guiModel.getWindowManager();
+ final DisplaySettings ds = guiModel.getDisplaySettings();
this.setPreferredSize( new Dimension( 300, 521 ) );
this.setSize( 300, 500 );
@@ -121,28 +119,6 @@ public ConfigureViewsPanel( final GuiModel guiModel, final FeatureDisplaySelecto
gbcLabelDisplayOptions.gridy = 0;
add( lblDisplayOptions, gbcLabelDisplayOptions );
- /*
- * Settings editor.
- */
-
- final DisplaySettings ds = guiModel.getDisplaySettings();
- final JFrame editor = ConfigTrackMateDisplaySettings.editor( ds,
- "Configure the display settings used in this current session.",
- "TrackMate display settings" );
- editor.setLocationRelativeTo( this.getParent() );
- editor.setDefaultCloseOperation( JFrame.HIDE_ON_CLOSE );
-
- final JButton btnEditSettings = new JButton( "Edit settings", EDIT_SETTINGS_ICON );
- btnEditSettings.addActionListener( e -> editor.setVisible( !editor.isVisible() ) );
-
- final GridBagConstraints gbcBtnEditSettings = new GridBagConstraints();
- gbcBtnEditSettings.fill = GridBagConstraints.NONE;
- gbcBtnEditSettings.insets = new Insets( 5, 5, 5, 5 );
- gbcBtnEditSettings.anchor = GridBagConstraints.EAST;
- gbcBtnEditSettings.gridx = 1;
- gbcBtnEditSettings.gridy = 0;
- add( btnEditSettings, gbcBtnEditSettings );
-
/*
* Display spot checkbox.
*/
diff --git a/src/main/java/fiji/plugin/trackmate/gui/components/FeatureDisplaySelector.java b/src/main/java/fiji/plugin/trackmate/gui/components/FeatureDisplaySelector.java
index 019204688..512aff85d 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/components/FeatureDisplaySelector.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/components/FeatureDisplaySelector.java
@@ -59,6 +59,8 @@
import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
+
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.ModelChangeEvent;
import fiji.plugin.trackmate.Settings;
@@ -67,7 +69,6 @@
import fiji.plugin.trackmate.features.manual.ManualSpotColorAnalyzerFactory;
import fiji.plugin.trackmate.features.track.TrackIndexAnalyzer;
import fiji.plugin.trackmate.gui.GuiUtils;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackMateObject;
diff --git a/src/main/java/fiji/plugin/trackmate/gui/components/PanelProbaThreshold.java b/src/main/java/fiji/plugin/trackmate/gui/components/PanelProbaThreshold.java
index bf0212b17..923828d37 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/components/PanelProbaThreshold.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/components/PanelProbaThreshold.java
@@ -31,9 +31,9 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
-import fiji.plugin.trackmate.gui.displaysettings.SliderPanelDouble;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BoundedDoubleElement;
+import org.scijava.ui.config.visitors.gui.elements.SliderPanelDouble;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
/**
* A utility widget that lets a user specify a threshold on a probability value,
diff --git a/src/main/java/fiji/plugin/trackmate/gui/components/PanelSmoothContour.java b/src/main/java/fiji/plugin/trackmate/gui/components/PanelSmoothContour.java
index 466ae4c5f..741e66cf9 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/components/PanelSmoothContour.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/components/PanelSmoothContour.java
@@ -32,9 +32,9 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
-import fiji.plugin.trackmate.gui.displaysettings.SliderPanelDouble;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BoundedDoubleElement;
+import org.scijava.ui.config.visitors.gui.elements.SliderPanelDouble;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
public class PanelSmoothContour extends JPanel
{
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValue.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValue.java
deleted file mode 100644
index 4c0efd3bc..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValue.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-/**
- * A int variable that can take any value in a given range. A
- * {@link #setUpdateListener(UpdateListener) listener} is notified when the
- * value or its allowed range is changed.
- *
- * @author Tobias Pietzsch
- */
-public class BoundedValue
-{
- private int rangeMin;
-
- private int rangeMax;
-
- private int currentValue;
-
- public interface UpdateListener
- {
- void update();
- }
-
- private UpdateListener updateListener;
-
- public BoundedValue( final int rangeMin, final int rangeMax, final int currentValue )
- {
- this.rangeMin = rangeMin;
- this.rangeMax = rangeMax;
- this.currentValue = currentValue;
- updateListener = null;
- }
-
- public int getRangeMin()
- {
- return rangeMin;
- }
-
- public int getRangeMax()
- {
- return rangeMax;
- }
-
- public int getCurrentValue()
- {
- return currentValue;
- }
-
- public void setRange( final int min, final int max )
- {
- assert min <= max;
- rangeMin = min;
- rangeMax = max;
- currentValue = Math.min( Math.max( currentValue, min ), max );
-
- if ( updateListener != null )
- updateListener.update();
- }
-
- public void setCurrentValue( final int value )
- {
- currentValue = value;
-
- if ( currentValue < rangeMin )
- currentValue = rangeMin;
- else if ( currentValue > rangeMax )
- currentValue = rangeMax;
-
- if ( updateListener != null )
- updateListener.update();
- }
-
- public void setUpdateListener( final UpdateListener l )
- {
- updateListener = l;
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValueDouble.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValueDouble.java
deleted file mode 100644
index 61f987d28..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/BoundedValueDouble.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-/**
- * A {@code double} variable that can take any value in a given range. A
- * {@link #setUpdateListener(UpdateListener) listener} is notified when the
- * value or its allowed range is changed.
- *
- * @author Tobias Pietzsch
- */
-public class BoundedValueDouble
-{
- private double rangeMin;
-
- private double rangeMax;
-
- private double currentValue;
-
- public interface UpdateListener
- {
- void update();
- }
-
- private UpdateListener updateListener;
-
- public BoundedValueDouble( final double rangeMin, final double rangeMax, final double currentValue )
- {
- this.rangeMin = rangeMin;
- this.rangeMax = rangeMax;
- this.currentValue = currentValue;
- updateListener = null;
- }
-
- public double getRangeMin()
- {
- return rangeMin;
- }
-
- public double getRangeMax()
- {
- return rangeMax;
- }
-
- public double getCurrentValue()
- {
- return currentValue;
- }
-
- public void setRange( final double min, final double max )
- {
- assert min <= max;
- rangeMin = min;
- rangeMax = max;
- currentValue = Math.min( Math.max( currentValue, min ), max );
-
- if ( updateListener != null )
- updateListener.update();
- }
-
- public void setCurrentValue( final double value )
- {
- currentValue = value;
-
- if ( currentValue < rangeMin )
- currentValue = rangeMin;
- else if ( currentValue > rangeMax )
- currentValue = rangeMax;
-
- if ( updateListener != null )
- updateListener.update();
- }
-
- public void setUpdateListener( final UpdateListener l )
- {
- updateListener = l;
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColorIcon.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColorIcon.java
deleted file mode 100644
index 6356a4252..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColorIcon.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*-
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.RenderingHints;
-import java.awt.geom.RoundRectangle2D;
-
-import javax.swing.Icon;
-
-/**
- * Adapted from http://stackoverflow.com/a/3072979/230513
- */
-public class ColorIcon implements Icon
-{
- private static final int DEFAULT_PAD = 0;
-
- private static final int DEFAUL_SIZE = 16;
-
- private final int size;
-
- private Color color;
-
- private final int pad;
-
- public ColorIcon( final Color color, final int size, final int pad )
- {
- this.color = color;
- this.size = size;
- this.pad = pad;
- }
-
- public ColorIcon( final Color color, final int size )
- {
- this( color, size, DEFAULT_PAD );
- }
-
- public ColorIcon( final Color color )
- {
- this( color, DEFAUL_SIZE );
- }
-
- @Override
- public void paintIcon( final Component c, final Graphics g, final int x, final int y )
- {
- final Graphics2D g2d = ( Graphics2D ) g;
- g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
- g2d.setColor( color );
- final RoundRectangle2D.Float shape = new RoundRectangle2D.Float( x + pad, y + pad, size, size, 5, 5 );
- g2d.fill( shape );
- g2d.setColor( Color.BLACK );
- g2d.draw( shape );
- }
-
- public void setColor( final Color color )
- {
- this.color = color;
- }
-
- @Override
- public int getIconWidth()
- {
- return size + 2 * pad;
- }
-
- @Override
- public int getIconHeight()
- {
- return size + 2 * pad;
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/Colormap.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/Colormap.java
deleted file mode 100644
index 7fd52abd9..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/Colormap.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*-
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2024 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.Color;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.jfree.chart.renderer.PaintScale;
-
-/**
- * This class implements a {@link PaintScale} that generate colors interpolated
- * within a list of given color, using a linear scale.
- *
- * @author Jean-Yves Tinevez <jeanyves.tinevez@gmail.com> - Sept 2010
- */
-public class Colormap implements PaintScale, Serializable
-{
-
- private static final long serialVersionUID = 2977884191627862512L;
-
- private static final Color DEFAULT_COLOR = Color.BLACK;
-
- private final double lowerBound;
-
- private final double upperBound;
-
- private final TreeMap< Double, Color > colors = new TreeMap<>();
-
- private final Color defaultColor;
-
- /*
- * INNER CLASSES
- */
-
-
-
- /**
- * An {@link Colormap} that maps a typical "Jet" colormap going
- * from blue to red to the range [0, 1].
- */
- public static final Colormap Jet;
- static
- {
- Jet = new Colormap( "Jet", 0., 1. );
- Jet.add( 0.00, new Color( 0.0f, 0.0f, 1.0f ) );
- Jet.add( 0.16, new Color( 0.0f, 0.5f, 1.0f ) );
- Jet.add( 0.33, new Color( 0.0f, 1.0f, 1.0f ) );
- Jet.add( 0.50, new Color( 0.5f, 1.0f, 0.5f ) );
- Jet.add( 0.66, new Color( 1.0f, 1.0f, 0.0f ) );
- Jet.add( 0.83, new Color( 1.0f, 0.5f, 0.0f ) );
- Jet.add( 1.00, new Color( 1.0f, 0.0f, 0.0f ) );
- }
-
- /**
- * An {@link Colormap} that replicates the matplotlib "Viridis"
- * colormap.
- */
- public static final Colormap Viridis;
- static
- {
- Viridis = new Colormap( "Viridis", 0., 1. );
- Viridis.add( 0.00, new Color( 68, 1, 84 ) );
- Viridis.add( 0.05, new Color( 71, 18, 101 ) );
- Viridis.add( 0.10, new Color( 72, 35, 116 ) );
- Viridis.add( 0.15, new Color( 69, 52, 127 ) );
- Viridis.add( 0.20, new Color( 64, 67, 135 ) );
- Viridis.add( 0.25, new Color( 58, 82, 139 ) );
- Viridis.add( 0.30, new Color( 52, 94, 141 ) );
- Viridis.add( 0.35, new Color( 46, 107, 142 ) );
- Viridis.add( 0.40, new Color( 41, 120, 142 ) );
- Viridis.add( 0.45, new Color( 36, 132, 141 ) );
- Viridis.add( 0.50, new Color( 32, 144, 140 ) );
- Viridis.add( 0.55, new Color( 30, 155, 137 ) );
- Viridis.add( 0.60, new Color( 34, 167, 132 ) );
- Viridis.add( 0.65, new Color( 47, 179, 123 ) );
- Viridis.add( 0.70, new Color( 68, 190, 112 ) );
- Viridis.add( 0.75, new Color( 94, 201, 97 ) );
- Viridis.add( 0.80, new Color( 121, 209, 81 ) );
- Viridis.add( 0.85, new Color( 154, 216, 60 ) );
- Viridis.add( 0.90, new Color( 189, 222, 38 ) );
- Viridis.add( 0.95, new Color( 223, 227, 24 ) );
- Viridis.add( 1.00, new Color( 253, 231, 36 ) );
- }
-
- /**
- * The TURBO color-map, from Google LLC, Anton Mikhailov.
- * https://gist.github.com/mikhailov-work/ee72ba4191942acecc03fe6da94fc73f
- */
- public static final Colormap Turbo;
-
- private final String name;
- static
- {
- final double[][] triplets = new double[][] {
- { 0.18995, 0.07176, 0.23217 }, { 0.19483, 0.08339, 0.26149 }, { 0.19956, 0.09498, 0.29024 }, { 0.20415, 0.10652, 0.31844 }, { 0.20860, 0.11802, 0.34607 }, { 0.21291, 0.12947, 0.37314 }, { 0.21708, 0.14087, 0.39964 }, { 0.22111, 0.15223, 0.42558 }, { 0.22500, 0.16354, 0.45096 }, { 0.22875, 0.17481, 0.47578 }, { 0.23236, 0.18603, 0.50004 }, { 0.23582, 0.19720, 0.52373 }, { 0.23915, 0.20833, 0.54686 }, { 0.24234, 0.21941, 0.56942 }, { 0.24539, 0.23044, 0.59142 }, { 0.24830, 0.24143, 0.61286 }, { 0.25107, 0.25237, 0.63374 }, { 0.25369, 0.26327, 0.65406 }, { 0.25618, 0.27412, 0.67381 }, { 0.25853, 0.28492, 0.69300 }, { 0.26074, 0.29568, 0.71162 }, { 0.26280, 0.30639, 0.72968 }, { 0.26473, 0.31706, 0.74718 }, { 0.26652, 0.32768, 0.76412 },
- { 0.26816, 0.33825, 0.78050 }, { 0.26967, 0.34878, 0.79631 }, { 0.27103, 0.35926, 0.81156 }, { 0.27226, 0.36970, 0.82624 }, { 0.27334, 0.38008, 0.84037 }, { 0.27429, 0.39043, 0.85393 }, { 0.27509, 0.40072, 0.86692 }, { 0.27576, 0.41097, 0.87936 }, { 0.27628, 0.42118, 0.89123 }, { 0.27667, 0.43134, 0.90254 }, { 0.27691, 0.44145, 0.91328 }, { 0.27701, 0.45152, 0.92347 }, { 0.27698, 0.46153, 0.93309 }, { 0.27680, 0.47151, 0.94214 }, { 0.27648, 0.48144, 0.95064 }, { 0.27603, 0.49132, 0.95857 }, { 0.27543, 0.50115, 0.96594 }, { 0.27469, 0.51094, 0.97275 }, { 0.27381, 0.52069, 0.97899 }, { 0.27273, 0.53040, 0.98461 }, { 0.27106, 0.54015, 0.98930 }, { 0.26878, 0.54995, 0.99303 }, { 0.26592, 0.55979, 0.99583 }, { 0.26252, 0.56967, 0.99773 }, { 0.25862, 0.57958, 0.99876 },
- { 0.25425, 0.58950, 0.99896 }, { 0.24946, 0.59943, 0.99835 }, { 0.24427, 0.60937, 0.99697 }, { 0.23874, 0.61931, 0.99485 }, { 0.23288, 0.62923, 0.99202 }, { 0.22676, 0.63913, 0.98851 }, { 0.22039, 0.64901, 0.98436 }, { 0.21382, 0.65886, 0.97959 }, { 0.20708, 0.66866, 0.97423 }, { 0.20021, 0.67842, 0.96833 }, { 0.19326, 0.68812, 0.96190 }, { 0.18625, 0.69775, 0.95498 }, { 0.17923, 0.70732, 0.94761 }, { 0.17223, 0.71680, 0.93981 }, { 0.16529, 0.72620, 0.93161 }, { 0.15844, 0.73551, 0.92305 }, { 0.15173, 0.74472, 0.91416 }, { 0.14519, 0.75381, 0.90496 }, { 0.13886, 0.76279, 0.89550 }, { 0.13278, 0.77165, 0.88580 }, { 0.12698, 0.78037, 0.87590 }, { 0.12151, 0.78896, 0.86581 }, { 0.11639, 0.79740, 0.85559 }, { 0.11167, 0.80569, 0.84525 }, { 0.10738, 0.81381, 0.83484 },
- { 0.10357, 0.82177, 0.82437 }, { 0.10026, 0.82955, 0.81389 }, { 0.09750, 0.83714, 0.80342 }, { 0.09532, 0.84455, 0.79299 }, { 0.09377, 0.85175, 0.78264 }, { 0.09287, 0.85875, 0.77240 }, { 0.09267, 0.86554, 0.76230 }, { 0.09320, 0.87211, 0.75237 }, { 0.09451, 0.87844, 0.74265 }, { 0.09662, 0.88454, 0.73316 }, { 0.09958, 0.89040, 0.72393 }, { 0.10342, 0.89600, 0.71500 }, { 0.10815, 0.90142, 0.70599 }, { 0.11374, 0.90673, 0.69651 }, { 0.12014, 0.91193, 0.68660 }, { 0.12733, 0.91701, 0.67627 }, { 0.13526, 0.92197, 0.66556 }, { 0.14391, 0.92680, 0.65448 }, { 0.15323, 0.93151, 0.64308 }, { 0.16319, 0.93609, 0.63137 }, { 0.17377, 0.94053, 0.61938 }, { 0.18491, 0.94484, 0.60713 }, { 0.19659, 0.94901, 0.59466 }, { 0.20877, 0.95304, 0.58199 }, { 0.22142, 0.95692, 0.56914 },
- { 0.23449, 0.96065, 0.55614 }, { 0.24797, 0.96423, 0.54303 }, { 0.26180, 0.96765, 0.52981 }, { 0.27597, 0.97092, 0.51653 }, { 0.29042, 0.97403, 0.50321 }, { 0.30513, 0.97697, 0.48987 }, { 0.32006, 0.97974, 0.47654 }, { 0.33517, 0.98234, 0.46325 }, { 0.35043, 0.98477, 0.45002 }, { 0.36581, 0.98702, 0.43688 }, { 0.38127, 0.98909, 0.42386 }, { 0.39678, 0.99098, 0.41098 }, { 0.41229, 0.99268, 0.39826 }, { 0.42778, 0.99419, 0.38575 }, { 0.44321, 0.99551, 0.37345 }, { 0.45854, 0.99663, 0.36140 }, { 0.47375, 0.99755, 0.34963 }, { 0.48879, 0.99828, 0.33816 }, { 0.50362, 0.99879, 0.32701 }, { 0.51822, 0.99910, 0.31622 }, { 0.53255, 0.99919, 0.30581 }, { 0.54658, 0.99907, 0.29581 }, { 0.56026, 0.99873, 0.28623 }, { 0.57357, 0.99817, 0.27712 }, { 0.58646, 0.99739, 0.26849 },
- { 0.59891, 0.99638, 0.26038 }, { 0.61088, 0.99514, 0.25280 }, { 0.62233, 0.99366, 0.24579 }, { 0.63323, 0.99195, 0.23937 }, { 0.64362, 0.98999, 0.23356 }, { 0.65394, 0.98775, 0.22835 }, { 0.66428, 0.98524, 0.22370 }, { 0.67462, 0.98246, 0.21960 }, { 0.68494, 0.97941, 0.21602 }, { 0.69525, 0.97610, 0.21294 }, { 0.70553, 0.97255, 0.21032 }, { 0.71577, 0.96875, 0.20815 }, { 0.72596, 0.96470, 0.20640 }, { 0.73610, 0.96043, 0.20504 }, { 0.74617, 0.95593, 0.20406 }, { 0.75617, 0.95121, 0.20343 }, { 0.76608, 0.94627, 0.20311 }, { 0.77591, 0.94113, 0.20310 }, { 0.78563, 0.93579, 0.20336 }, { 0.79524, 0.93025, 0.20386 }, { 0.80473, 0.92452, 0.20459 }, { 0.81410, 0.91861, 0.20552 }, { 0.82333, 0.91253, 0.20663 }, { 0.83241, 0.90627, 0.20788 }, { 0.84133, 0.89986, 0.20926 },
- { 0.85010, 0.89328, 0.21074 }, { 0.85868, 0.88655, 0.21230 }, { 0.86709, 0.87968, 0.21391 }, { 0.87530, 0.87267, 0.21555 }, { 0.88331, 0.86553, 0.21719 }, { 0.89112, 0.85826, 0.21880 }, { 0.89870, 0.85087, 0.22038 }, { 0.90605, 0.84337, 0.22188 }, { 0.91317, 0.83576, 0.22328 }, { 0.92004, 0.82806, 0.22456 }, { 0.92666, 0.82025, 0.22570 }, { 0.93301, 0.81236, 0.22667 }, { 0.93909, 0.80439, 0.22744 }, { 0.94489, 0.79634, 0.22800 }, { 0.95039, 0.78823, 0.22831 }, { 0.95560, 0.78005, 0.22836 }, { 0.96049, 0.77181, 0.22811 }, { 0.96507, 0.76352, 0.22754 }, { 0.96931, 0.75519, 0.22663 }, { 0.97323, 0.74682, 0.22536 }, { 0.97679, 0.73842, 0.22369 }, { 0.98000, 0.73000, 0.22161 }, { 0.98289, 0.72140, 0.21918 }, { 0.98549, 0.71250, 0.21650 }, { 0.98781, 0.70330, 0.21358 },
- { 0.98986, 0.69382, 0.21043 }, { 0.99163, 0.68408, 0.20706 }, { 0.99314, 0.67408, 0.20348 }, { 0.99438, 0.66386, 0.19971 }, { 0.99535, 0.65341, 0.19577 }, { 0.99607, 0.64277, 0.19165 }, { 0.99654, 0.63193, 0.18738 }, { 0.99675, 0.62093, 0.18297 }, { 0.99672, 0.60977, 0.17842 }, { 0.99644, 0.59846, 0.17376 }, { 0.99593, 0.58703, 0.16899 }, { 0.99517, 0.57549, 0.16412 }, { 0.99419, 0.56386, 0.15918 }, { 0.99297, 0.55214, 0.15417 }, { 0.99153, 0.54036, 0.14910 }, { 0.98987, 0.52854, 0.14398 }, { 0.98799, 0.51667, 0.13883 }, { 0.98590, 0.50479, 0.13367 }, { 0.98360, 0.49291, 0.12849 }, { 0.98108, 0.48104, 0.12332 }, { 0.97837, 0.46920, 0.11817 }, { 0.97545, 0.45740, 0.11305 }, { 0.97234, 0.44565, 0.10797 }, { 0.96904, 0.43399, 0.10294 }, { 0.96555, 0.42241, 0.09798 },
- { 0.96187, 0.41093, 0.09310 }, { 0.95801, 0.39958, 0.08831 }, { 0.95398, 0.38836, 0.08362 }, { 0.94977, 0.37729, 0.07905 }, { 0.94538, 0.36638, 0.07461 }, { 0.94084, 0.35566, 0.07031 }, { 0.93612, 0.34513, 0.06616 }, { 0.93125, 0.33482, 0.06218 }, { 0.92623, 0.32473, 0.05837 }, { 0.92105, 0.31489, 0.05475 }, { 0.91572, 0.30530, 0.05134 }, { 0.91024, 0.29599, 0.04814 }, { 0.90463, 0.28696, 0.04516 }, { 0.89888, 0.27824, 0.04243 }, { 0.89298, 0.26981, 0.03993 }, { 0.88691, 0.26152, 0.03753 }, { 0.88066, 0.25334, 0.03521 }, { 0.87422, 0.24526, 0.03297 }, { 0.86760, 0.23730, 0.03082 }, { 0.86079, 0.22945, 0.02875 }, { 0.85380, 0.22170, 0.02677 }, { 0.84662, 0.21407, 0.02487 }, { 0.83926, 0.20654, 0.02305 }, { 0.83172, 0.19912, 0.02131 }, { 0.82399, 0.19182, 0.01966 },
- { 0.81608, 0.18462, 0.01809 }, { 0.80799, 0.17753, 0.01660 }, { 0.79971, 0.17055, 0.01520 }, { 0.79125, 0.16368, 0.01387 }, { 0.78260, 0.15693, 0.01264 }, { 0.77377, 0.15028, 0.01148 }, { 0.76476, 0.14374, 0.01041 }, { 0.75556, 0.13731, 0.00942 }, { 0.74617, 0.13098, 0.00851 }, { 0.73661, 0.12477, 0.00769 }, { 0.72686, 0.11867, 0.00695 }, { 0.71692, 0.11268, 0.00629 }, { 0.70680, 0.10680, 0.00571 }, { 0.69650, 0.10102, 0.00522 }, { 0.68602, 0.09536, 0.00481 }, { 0.67535, 0.08980, 0.00449 }, { 0.66449, 0.08436, 0.00424 }, { 0.65345, 0.07902, 0.00408 }, { 0.64223, 0.07380, 0.00401 }, { 0.63082, 0.06868, 0.00401 }, { 0.61923, 0.06367, 0.00410 }, { 0.60746, 0.05878, 0.00427 }, { 0.59550, 0.05399, 0.00453 }, { 0.58336, 0.04931, 0.00486 }, { 0.57103, 0.04474, 0.00529 },
- { 0.55852, 0.04028, 0.00579 }, { 0.54583, 0.03593, 0.00638 }, { 0.53295, 0.03169, 0.00705 }, { 0.51989, 0.02756, 0.00780 }, { 0.50664, 0.02354, 0.00863 }, { 0.49321, 0.01963, 0.00955 }, { 0.47960, 0.01583, 0.01055 } };
- Turbo = new Colormap( "Turbo", 0., 1. );
- final int nTriplets = triplets.length;
- for ( int i = 0; i < nTriplets; i++ )
- {
- final double alpha = ( i ) / ( nTriplets - 1. );
- final double[] triplet = triplets[ i ];
- Turbo.add( alpha, new Color( ( float ) triplet[ 0 ], ( float ) triplet[ 1 ], ( float ) triplet[ 2 ] ) );
- }
- }
-
- private static final List< Colormap > LUTS;
- static
- {
- final List< Colormap > tmpLUTS = new ArrayList<>();
- tmpLUTS.add( Jet );
- tmpLUTS.add( Turbo );
- tmpLUTS.add( Viridis );
- tmpLUTS.addAll( ColormapIO.getLUTs() );
- LUTS = Collections.unmodifiableList( tmpLUTS );
- }
-
- public static List< Colormap > getAvailableLUTs()
- {
- return LUTS;
- }
-
- /*
- * CONSTRUCTORS
- */
-
- /**
- * Create a paint scale with given lower and upper bound, and a specified
- * default color.
- *
- * @param name
- * the name of the colormap.
- * @param lowerBound
- * the lower bound.
- * @param upperBound
- * the upper bound.
- * @param defaultColor
- * a default color.
- */
- public Colormap( final String name, final double lowerBound, final double upperBound, final Color defaultColor )
- {
- this.name = name;
- this.lowerBound = lowerBound;
- this.upperBound = upperBound;
- this.defaultColor = defaultColor;
- }
-
- /**
- * Create a paint scale with a given lower and upper bound and a default
- * black color.
- *
- * @param name
- * the name of the colormap.
- * @param lowerBound
- * the lower bound.
- * @param upperBound
- * the upper bound.
- */
- public Colormap( final String name, final double lowerBound, final double upperBound )
- {
- this( name, lowerBound, upperBound, DEFAULT_COLOR );
- }
-
- /**
- * Create a paint scale with a lower bound of 0, an upper bound of 1 and a
- * default black color.
- *
- * @param name
- * the colormap name.
- */
- public Colormap( final String name )
- {
- this( name, 0, 1 );
- }
-
- /*
- * PUBLIC METHODS
- */
-
- public String getName()
- {
- return name;
- }
-
- /**
- * Add a color to the color list of this paint scale, at the position given
- * by value. If value is greater than the upper
- * bound or lower than the lower bound set at construction, this call will
- * be ignored.
- *
- * @param value
- * the value at which to add the color.
- * @param color
- * the color.
- */
- public void add( final double value, final Color color )
- {
- if ( value > upperBound )
- return;
- if ( value < lowerBound )
- return;
- colors.put( value, color );
- }
-
- @Override
- public double getLowerBound()
- {
- return lowerBound;
- }
-
- /**
- * Return a color interpolated within the color list of this paint scale.
- * The interpolation is a linear one between the two colors in the list
- * whose associated values frame the one given.
- */
- @Override
- public Color getPaint( double value )
- {
- if ( colors.isEmpty() )
- return defaultColor;
- if ( colors.size() == 1 )
- return colors.get( colors.firstKey() );
-
- if ( value > upperBound )
- value = upperBound;
- if ( value < lowerBound )
- value = lowerBound;
- final Set< Double > keys = colors.keySet();
- double bottom = colors.firstKey();
- double top = colors.lastKey();
- for ( final double key : keys )
- {
- top = key;
- if ( value < key )
- break;
-
- bottom = top;
- }
-
- double alpha;
- if ( top == bottom )
- alpha = 0; // we reached the end of the list
- else
- alpha = ( value - bottom ) / ( top - bottom );
-
- final Color colorBottom = colors.get( bottom );
- final Color colorTop = colors.get( top );
- final int red = ( int ) ( ( 1 - alpha ) * colorBottom.getRed() + alpha * colorTop.getRed() );
- final int green = ( int ) ( ( 1 - alpha ) * colorBottom.getGreen() + alpha * colorTop.getGreen() );
- final int blue = ( int ) ( ( 1 - alpha ) * colorBottom.getBlue() + alpha * colorTop.getBlue() );
- return new Color( red, green, blue );
- }
-
- @Override
- public double getUpperBound()
- {
- return upperBound;
- }
-
- @Override
- public Colormap clone()
- {
- final Colormap ips = new Colormap( name, lowerBound, upperBound );
- for ( final double key : colors.keySet() )
- ips.add( key, colors.get( key ) );
- return ips;
- }
-
-
- public static void main( final String[] args )
- {
- final StringBuilder str = new StringBuilder();
- str.append( "{ " );
- getAvailableLUTs().forEach( ( cm ) -> str.append( '"' + cm.getName() + "\", " ) );
- str.deleteCharAt( str.length() - 1 );
- str.deleteCharAt( str.length() - 1 );
- str.append( " }" );
- System.out.println( str );
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColormapIO.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColormapIO.java
deleted file mode 100644
index 69864fc1b..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ColormapIO.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*-
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.Color;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.DirectoryStream;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Scanner;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.scijava.util.IntArray;
-
-/**
- * Loat LUTS for {@link Colormap}. Code adapted from what we did in Mastodon.
- *
- * @author Jean-Yves Tinevez 2019
- */
-public class ColormapIO
-{
-
- private static final List< URI > LUT_FOLDERS = new ArrayList<>();
- static
- {
- try
- {
- final URI BUILTIN_LUT_FOLDER = ColormapIO.class.getResource( "luts/" ).toURI();
- LUT_FOLDERS.add( BUILTIN_LUT_FOLDER );
- }
- catch ( final URISyntaxException e )
- {
- e.printStackTrace();
- }
- }
-
- static List< Colormap > getLUTs()
- {
- return loadLUTs();
- }
-
- private static List< Colormap > loadLUTs()
- {
- final List< Colormap > luts = new ArrayList<>();
- for ( final URI lutFolder : LUT_FOLDERS )
- {
- try
- {
- luts.addAll( loadLUTs( lutFolder ) );
- }
- catch ( final IOException e )
- {
- e.printStackTrace();
- }
- }
- return luts;
- }
-
- private static List< Colormap > loadLUTs( final URI folder ) throws IOException
- {
- if ( folder.getScheme().equals( "jar" ) )
- {
- // Try to read from within the jar file.
- final String[] array = folder.toString().split( "!" );
- try (FileSystem fileSystem = FileSystems.newFileSystem( URI.create( array[ 0 ] ), Collections.emptyMap() ))
- {
- final Path folderPath = fileSystem.getPath( array[ 1 ] );
- return loadLUTs( folderPath );
- }
- }
- else
- {
- // Read from a standard folder.
- final Path folderPath = Paths.get( folder );
- return loadLUTs( folderPath );
- }
- }
-
- private static List< Colormap > loadLUTs( final Path folderPath ) throws IOException
- {
- final List< Colormap > luts = new ArrayList<>();
- if ( Files.exists( folderPath ) )
- {
- final String glob = "*.lut";
- try (final DirectoryStream< Path > folderStream = Files.newDirectoryStream( folderPath, glob ))
- {
- for ( final Path path : folderStream )
- {
-
- final Colormap lut = importLUT( path );
- if ( null == lut )
- System.err.println( "Could not read LUT file: " + path + ". Skipping." );
-
- luts.add( lut );
- }
- }
- }
- return luts;
- }
-
- private static final Colormap importLUT( final Path path ) throws IOException
- {
- final String fileName = path.getFileName().toString();
- final String lutName = fileName.substring( 0, fileName.indexOf( '.' ) );
-
- try (final Scanner scanner = new Scanner( path ))
- {
-
- final List< Color > colors = new ArrayList<>();
- final IntArray intAlphas = new IntArray();
- final AtomicInteger nLines = new AtomicInteger( 0 );
-
- final Colormap ips = new Colormap( lutName, 0., 1. );
- while ( scanner.hasNext() )
- {
- if ( !scanner.hasNextInt() )
- {
- scanner.next();
- continue;
- }
- intAlphas.addValue( scanner.nextInt() );
- final Color color = new Color( scanner.nextInt(), scanner.nextInt(), scanner.nextInt() );
- colors.add( color );
- nLines.incrementAndGet();
- }
-
- if ( nLines.get() < 2 )
- return null;
-
- final double[] alphas = new double[ intAlphas.size() ];
- for ( int i = 0; i < alphas.length; i++ )
- {
- final double alpha = ( double ) intAlphas.get( i ) / ( nLines.get() - 1 );
- final Color color = colors.get( i );
- ips.add( alpha, color );
- }
-
- return ips;
- }
- }
-
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ConfigTrackMateDisplaySettings.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ConfigTrackMateDisplaySettings.java
deleted file mode 100644
index 9e90ce88e..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/ConfigTrackMateDisplaySettings.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*-
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import static fiji.plugin.trackmate.gui.Icons.APPLY_ICON;
-import static fiji.plugin.trackmate.gui.Icons.RESET_ICON;
-import static fiji.plugin.trackmate.gui.Icons.REVERT_ICON;
-import static fiji.plugin.trackmate.gui.Icons.TRACKMATE_ICON;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
-
-import org.scijava.command.Command;
-import org.scijava.plugin.Plugin;
-
-import ij.ImageJ;
-
-@Plugin( type = Command.class,
- label = "Configure TrackMate display settings...",
- iconPath = "/icons/commands/information.png",
- menuPath = "Edit > Options > Configure TrackMate display settings..." )
-public class ConfigTrackMateDisplaySettings implements Command
-{
-
- private static final String APPLY_TOOLTIP = "Save the current settings to the user default settings. "
- + "They will be used in all the following TrackMate sessions.";
- private static final String REVERT_TOOLTIP = "Revert the current settings to the ones saved in the "
- + "user default settings file.";
- private static final String RESET_TOOLTIP = "Reset the current settings to the built-in defaults.";
-
- @Override
- public void run()
- {
- editor( DisplaySettingsIO.readUserDefault(),
- "Configure the default settings to be used by TrackMate.",
- "TrackMate user default settings" ).setVisible( true );
- }
-
- public static JFrame editor( final DisplaySettings ds, final String titleStr, final String frameName )
- {
- final JPanel configPanel = new JPanel();
- configPanel.setLayout( new BorderLayout() );
-
- /*
- * Title.
- */
-
- final JLabel title = new JLabel( ""
- + titleStr
- + "" );
- title.setBorder( BorderFactory.createEmptyBorder( 10, 5, 10, 5 ) );
- configPanel.add( title, BorderLayout.NORTH );
-
- /*
- * Buttons.
- */
-
- final JPanel panelButton = new JPanel();
- final BoxLayout panelButtonLayout = new BoxLayout( panelButton, BoxLayout.LINE_AXIS );
- panelButton.setLayout( panelButtonLayout );
- final JButton btnReset = new JButton( "Reset", RESET_ICON );
- btnReset.setToolTipText( RESET_TOOLTIP );
- final JButton btnRevert = new JButton( "Revert", REVERT_ICON );
- btnRevert.setToolTipText( REVERT_TOOLTIP );
- final JButton btnApply = new JButton( "Save to user defaults", APPLY_ICON );
- btnApply.setToolTipText( APPLY_TOOLTIP );
- panelButton.add( btnReset );
- panelButton.add( Box.createHorizontalStrut( 5 ) );
- panelButton.add( btnRevert );
- panelButton.add( Box.createHorizontalGlue() );
- panelButton.add( btnApply );
- panelButton.setBorder( BorderFactory.createEmptyBorder( 10, 5, 10, 5 ) );
- configPanel.add( panelButton, BorderLayout.SOUTH );
-
- /*
- * Display settings editor.
- */
-
- final DisplaySettingsPanel editor = new DisplaySettingsPanel( ds );
- final JScrollPane scrollPane = new JScrollPane( editor, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
- scrollPane.setPreferredSize( new Dimension( 350, 500 ) );
- scrollPane.getVerticalScrollBar().setUnitIncrement( 16 );
- configPanel.add( scrollPane, BorderLayout.CENTER );
-
- /*
- * Listeners.
- */
-
- btnReset.addActionListener( e -> {
- ds.set( DisplaySettings.defaultStyle().copy( "User-default" ) );
- title.setText( "Reset the current settings to the built-in defaults." );
- } );
- btnRevert.addActionListener( e -> {
- ds.set( DisplaySettingsIO.readUserDefault() );
- title.setText( "Reverted the current settings to the user defaults." );
- } );
- btnApply.addActionListener( e -> {
- DisplaySettingsIO.saveToUserDefault( ds );
- title.setText( "Saved the current settings to the user defaults file." );
- } );
-
- /*
- * Create and show frame.
- */
-
- final JFrame frame = new JFrame( frameName );
- frame.setIconImage( TRACKMATE_ICON.getImage() );
- frame.getContentPane().add( configPanel );
- frame.pack();
- frame.setLocationRelativeTo( null );
- return frame;
- }
-
- public static void main( final String[] args ) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException
- {
- UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
- ImageJ.main( args );
- new ConfigTrackMateDisplaySettings().run();
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettings.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettings.java
index e6172f42b..e616b583c 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettings.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettings.java
@@ -28,10 +28,12 @@
import java.util.Objects;
import org.scijava.listeners.Listeners;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
+import bdv.ui.settings.style.Style;
import fiji.plugin.trackmate.features.track.TrackIndexAnalyzer;
-public class DisplaySettings
+public class DisplaySettings implements Style< DisplaySettings >
{
/** The display settings name. */
@@ -148,6 +150,7 @@ private DisplaySettings( final String name )
* the name for the copied render settings.
* @return a new {@link DisplaySettings} instance.
*/
+ @Override
public DisplaySettings copy( final String name )
{
final DisplaySettings rs = new DisplaySettings();
@@ -157,6 +160,7 @@ public DisplaySettings copy( final String name )
return rs;
}
+ @Override
public DisplaySettings copy()
{
return copy( null );
@@ -208,11 +212,13 @@ synchronized void set( final DisplaySettings ds )
notifyListeners();
}
+ @Override
public String getName()
{
return name;
}
+ @Override
public synchronized void setName( final String name )
{
if ( !Objects.equals( this.name, name ) )
@@ -788,7 +794,7 @@ public enum TrackMateObject
{
DEFAULT( "Default" ), SPOTS( "spots" ), EDGES( "edges" ), TRACKS( "tracks" );
- private String name;
+ private final String name;
private TrackMateObject( final String name )
{
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsConfigPage.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsConfigPage.java
new file mode 100644
index 000000000..0918ba7fd
--- /dev/null
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsConfigPage.java
@@ -0,0 +1,53 @@
+package fiji.plugin.trackmate.gui.displaysettings;
+
+import java.awt.BorderLayout;
+import java.awt.Frame;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JDialog;
+import javax.swing.WindowConstants;
+
+import bdv.ui.settings.SelectAndEditProfileSettingsPage;
+import bdv.ui.settings.SettingsPanel;
+import bdv.ui.settings.style.StyleProfile;
+import bdv.ui.settings.style.StyleProfileManager;
+
+public class DisplaySettingsConfigPage extends SelectAndEditProfileSettingsPage< StyleProfile< DisplaySettings > >
+{
+
+ public DisplaySettingsConfigPage( final String treePath, final DisplaySettingsManager displaySettingsManager )
+ {
+ super(
+ treePath,
+ new StyleProfileManager<>( displaySettingsManager, new DisplaySettingsManager( null, false ) ),
+ new DisplaySettingsPanel( displaySettingsManager.getSelectedStyle() ) );
+ }
+
+ public static void main( final String[] args )
+ {
+ final DisplaySettingsManager styleManager = new DisplaySettingsManager();
+
+ final SettingsPanel settings = new SettingsPanel();
+ settings.addPage( new DisplaySettingsConfigPage( "Display settings", styleManager ) );
+
+ final JDialog dialog = new JDialog( ( Frame ) null, "Settings" );
+ dialog.getContentPane().add( settings, BorderLayout.CENTER );
+ dialog.pack();
+ dialog.setLocationRelativeTo( null );
+
+ settings.onOk( () -> dialog.setVisible( false ) );
+ settings.onCancel( () -> dialog.setVisible( false ) );
+
+ dialog.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
+ dialog.addWindowListener( new WindowAdapter()
+ {
+ @Override
+ public void windowClosing( final WindowEvent e )
+ {
+ settings.cancel();
+ }
+ } );
+ dialog.setVisible( true );
+ }
+}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsIO.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsIO.java
index 2e597c044..a2cbf1b37 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsIO.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsIO.java
@@ -24,7 +24,6 @@
import java.awt.Color;
import java.awt.Font;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
@@ -34,6 +33,7 @@
import java.util.stream.Collectors;
import org.jdom2.Element;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -51,8 +51,6 @@
public class DisplaySettingsIO
{
- private static File userDefaultFile = new File( new File( System.getProperty( "user.home" ), ".trackmate" ), "userdefaultsettings.json" );
-
public static void toXML( final DisplaySettings ds, final Element dsel )
{
dsel.setText( toJson( ds ) );
@@ -65,7 +63,9 @@ public static String toJson( final DisplaySettings ds )
public static DisplaySettings fromJson( final String str )
{
- final DisplaySettings ds = ( str == null || str.isEmpty() ) ? readUserDefault() : getGson().fromJson( str, DisplaySettings.class );
+ final DisplaySettings ds = ( str == null || str.isEmpty() )
+ ? DisplaySettings.defaultStyle().copy()
+ : getGson().fromJson( str, DisplaySettings.class );
// Sanitize min and max.
final double spotMin = ds.getSpotMin();
@@ -88,53 +88,46 @@ private static Gson getGson()
return builder.setPrettyPrinting().create();
}
- public static void saveToUserDefault( final DisplaySettings ds )
+ public static void write( final DisplaySettings ds, final String path )
{
final String str = toJson( ds );
+ final File file = new File( path );
- if ( !userDefaultFile.exists() )
- userDefaultFile.getParentFile().mkdirs();
+ if ( !file.exists() )
+ file.getParentFile().mkdirs();
- try (FileWriter writer = new FileWriter( userDefaultFile ))
+ try (FileWriter writer = new FileWriter( file ))
{
writer.append( str );
}
catch ( final IOException e )
{
- System.err.println( "Could not write the user default settings to " + userDefaultFile );
+ System.err.println( "Could not write the settings to " + file );
e.printStackTrace();
}
}
- public static DisplaySettings readUserDefault()
+ public static DisplaySettings read( final String path )
{
- if ( !userDefaultFile.exists() )
- {
- final DisplaySettings ds = DisplaySettings.defaultStyle().copy( "User-default" );
- saveToUserDefault( ds );
- return ds;
- }
-
- try (FileReader reader = new FileReader( userDefaultFile ))
+ try (FileReader reader = new FileReader( path ))
{
- final String str = Files.lines( Paths.get( userDefaultFile.getAbsolutePath() ) )
+ final String str = Files.lines( Paths.get( path ) )
.collect( Collectors.joining( System.lineSeparator() ) );
return fromJson( str );
}
- catch ( final FileNotFoundException e )
- {
- System.err.println( "Could not find the user default settings file: " + userDefaultFile
- + ". Using built-in default setting." );
- e.printStackTrace();
- }
catch ( final IOException e )
{
- System.err.println( "Could not read the user default settings file: " + userDefaultFile
- + ". Using built-in default setting." );
+ System.err.println( "Could not read the file: " + path );
e.printStackTrace();
}
- return DisplaySettings.defaultStyle().copy();
+ return null;
+ }
+
+ public static DisplaySettings readUserDefault()
+ {
+ return new DisplaySettingsManager().getInstance().copy();
+
}
/**
@@ -254,9 +247,4 @@ public Color deserialize( final JsonElement json, final Type typeOfT, final Json
}
}
}
-
- public static void main( final String[] args )
- {
- System.out.println( readUserDefault() );
- }
}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsManager.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsManager.java
new file mode 100644
index 000000000..c739185a1
--- /dev/null
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsManager.java
@@ -0,0 +1,199 @@
+package fiji.plugin.trackmate.gui.displaysettings;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import bdv.ui.settings.style.AbstractStyleManager;
+import fiji.plugin.trackmate.features.track.TrackIndexAnalyzer;
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackDisplayMode;
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackMateObject;
+
+public class DisplaySettingsManager extends AbstractStyleManager< DisplaySettingsManager, DisplaySettings >
+{
+
+ private static final String DISPLAY_SETTINGS_FOLDER = new File( new File( System.getProperty( "user.home" ), ".trackmate" ), "displaysettings" ).getAbsolutePath();
+
+ private static final String SELECTED_STYLE_FILENAME = "selected.txt";
+
+ private final DisplaySettings forwardDefaultStyle;
+
+ private final DisplaySettings.UpdateListener updateForwardDefaultListeners;
+
+ /**
+ * Creates a new DisplaySettingsManager.
+ *
+ * @param instance
+ * the style that will be managed by this manager. If
+ * null, a new instance will be created with the
+ * default style.
+ * @param loadStyles
+ * if true, the styles will be loaded from the
+ * {@link #DISPLAY_SETTINGS_FOLDER} folder.
+ */
+ public DisplaySettingsManager( final DisplaySettings instance, final boolean loadStyles )
+ {
+ final boolean instanceProvided = ( null != instance );
+ if ( instanceProvided )
+ forwardDefaultStyle = instance;
+ else
+ forwardDefaultStyle = DisplaySettings.defaultStyle().copy();
+
+ updateForwardDefaultListeners = () -> forwardDefaultStyle.set( selectedStyle );
+ selectedStyle.listeners().add( updateForwardDefaultListeners );
+ if ( loadStyles )
+ loadStyles( instanceProvided );
+ }
+
+ /**
+ * Creates a new DisplaySettingsManager and loads the styles from the
+ * {@link #DISPLAY_SETTINGS_FOLDER} folder. The {@link #getInstance()} will
+ * be set to the last configured style by the user.
+ */
+ public DisplaySettingsManager()
+ {
+ this( null, true );
+ }
+
+ /**
+ * Exposes the style that is managed by this manager. This instance will be
+ * modified by the settings editor using this manager.
+ *
+ * @return the style that is managed by this manager.
+ */
+ public DisplaySettings getInstance()
+ {
+ return forwardDefaultStyle;
+ }
+
+ @Override
+ public synchronized void setSelectedStyle( final DisplaySettings ds )
+ {
+ selectedStyle.listeners().remove( updateForwardDefaultListeners );
+ selectedStyle = ds;
+ forwardDefaultStyle.set( selectedStyle );
+ selectedStyle.listeners().add( updateForwardDefaultListeners );
+ }
+
+ @Override
+ protected List< DisplaySettings > loadBuiltinStyles()
+ {
+ final DisplaySettings ds1 = DisplaySettings.defaultStyle();
+
+ final DisplaySettings ds2 = ds1.copy( "Color by track" );
+ ds2.setTrackColorBy( TrackMateObject.TRACKS, TrackIndexAnalyzer.TRACK_INDEX );
+ ds2.setSpotColorBy( TrackMateObject.TRACKS, TrackIndexAnalyzer.TRACK_INDEX );
+
+ final DisplaySettings ds3 = ds2.copy( "Dragon tail" );
+ ds3.setLineThickness( 2. );
+ ds3.setTrackDisplayMode( TrackDisplayMode.LOCAL_BACKWARD );
+ ds3.setSpotFilled( true );
+ ds3.setSpotTransparencyAlpha( 0.8 );
+
+ return List.of( ds1, ds2, ds3 );
+ }
+
+ public void loadStyles( final boolean instanceProvided )
+ {
+ loadStyles( DISPLAY_SETTINGS_FOLDER, instanceProvided );
+ }
+
+ @Override
+ public void saveStyles()
+ {
+ saveStyles( DISPLAY_SETTINGS_FOLDER );
+ }
+
+ public void loadStyles( final String folder, final boolean instanceProvided )
+ {
+ // Load the selected style name from the text file
+ final File selectedFile = new File( folder, SELECTED_STYLE_FILENAME );
+ String selectedName = null;
+ try
+ {
+ selectedName = Files.readString( selectedFile.toPath() ).trim();
+ }
+ catch ( final IOException e )
+ {}
+
+ if ( !instanceProvided )
+ setSelectedStyle( builtinStyles.get( 0 ) );
+
+ userStyles.clear();
+ final Set< String > names = builtinStyles.stream().map( DisplaySettings::getName ).collect( Collectors.toSet() );
+
+ // Get all JSon files in the folder
+ final File[] files = new File( folder ).listFiles( ( dir, name ) -> name.toLowerCase().endsWith( ".json" ) );
+ if ( files == null )
+ return;
+
+ // Read each file and add it if it is valid and has a unique name.
+ for ( final File file : files )
+ {
+ final DisplaySettings ds = DisplaySettingsIO.read( file.getAbsolutePath() );
+ if ( ds == null )
+ continue;
+ if ( names.contains( ds.getName() ) )
+ {
+ System.err.println( "Discarded settings with duplicate name \"" + ds.getName() + "\"." );
+ continue;
+ }
+ userStyles.add( ds );
+ if ( ds.getName().equals( selectedName ) && !instanceProvided )
+ setSelectedStyle( ds );
+ }
+
+ if ( !instanceProvided )
+ {
+ for ( final DisplaySettings ds : builtinStyles )
+ {
+ if ( ds.getName().equals( selectedName ) )
+ setSelectedStyle( ds );
+ }
+ }
+ else
+ {
+ final DisplaySettings copy = forwardDefaultStyle.copy();
+ userStyles.removeIf( ds -> ds.getName().equals( copy.getName() ) );
+ userStyles.add( copy );
+ setSelectedStyle( copy );
+ }
+ }
+
+ public void saveStyles( final String folder )
+ {
+ new File( folder ).mkdirs();
+
+ // Save what style is selected in a text file
+ final File selectedFile = new File( folder, SELECTED_STYLE_FILENAME );
+ try
+ {
+ Files.writeString( selectedFile.toPath(), selectedStyle.getName() );
+ }
+ catch ( final IOException e )
+ {
+ e.printStackTrace();
+ }
+
+ // List all json files in the folder and delete those that do not
+ // correspond to a user style.
+ final File[] files = new File( folder ).listFiles( ( dir, name ) -> name.toLowerCase().endsWith( ".json" ) );
+ if ( files != null )
+ {
+ final Set< String > userStyleNames = userStyles.stream().map( DisplaySettings::getName ).collect( Collectors.toSet() );
+ for ( final File file : files )
+ {
+ final String filename = file.getName().substring( 0, file.getName().length() - 5 );
+ if ( !userStyleNames.contains( filename ) )
+ file.delete();
+ }
+ }
+
+ // Save all user styles to the folder
+ for ( final DisplaySettings ds : userStyles )
+ DisplaySettingsIO.write( ds, new File( folder, ds.getName() + ".json" ).getAbsolutePath() );
+ }
+}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsPanel.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsPanel.java
index a8863f485..7c96ee44f 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsPanel.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/DisplaySettingsPanel.java
@@ -21,26 +21,28 @@
*/
package fiji.plugin.trackmate.gui.displaysettings;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.booleanElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.boundedDoubleElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.colorElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.colormapElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.doubleElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.enumElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.featureElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.fontElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.intElement;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.label;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedCheckBox;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedColorButton;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedColormapChooser;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedComboBoxEnumSelector;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedFeatureSelector;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedFontButton;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedFormattedTextField;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.linkedSliderPanel;
-import static fiji.plugin.trackmate.gui.displaysettings.StyleElements.separator;
-
+import static fiji.plugin.trackmate.gui.displaysettings.TrackMateStyleElements.featureElement;
+import static fiji.plugin.trackmate.gui.displaysettings.TrackMateStyleElements.linkedFeatureSelector;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.booleanElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.boundedDoubleElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.colorElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.colormapElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.doubleElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.enumElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.fontElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.intElement;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.label;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedCheckBox;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedColorButton;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedColormapChooser;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedComboBoxEnumSelector;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedFontButton;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedFormattedTextField;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.linkedSliderPanel;
+import static org.scijava.ui.config.visitors.gui.elements.StyleElements.separator;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -53,194 +55,105 @@
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
+import org.scijava.listeners.Listeners;
+import org.scijava.ui.config.visitors.gui.elements.StyleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BooleanElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.ColorElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.ColormapElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.DoubleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.EnumElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.FontElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.IntElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.LabelElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElements.Separator;
+
import com.itextpdf.text.Font;
+import bdv.ui.settings.ModificationListener;
+import bdv.ui.settings.SelectAndEditProfileSettingsPage.ProfileEditPanel;
+import bdv.ui.settings.style.StyleProfile;
import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackDisplayMode;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BooleanElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.BoundedDoubleElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.ColorElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.ColormapElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.DoubleElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.EnumElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.FeatureElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.FontElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.IntElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.LabelElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.Separator;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.StyleElement;
-import fiji.plugin.trackmate.gui.displaysettings.StyleElements.StyleElementVisitor;
-
-public class DisplaySettingsPanel extends JPanel
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.UpdateListener;
+import fiji.plugin.trackmate.gui.displaysettings.TrackMateStyleElements.FeatureElement;
+import fiji.plugin.trackmate.gui.displaysettings.TrackMateStyleElements.TrackMateStyleElementVisitor;
+
+public class DisplaySettingsPanel extends JPanel implements ProfileEditPanel< StyleProfile< DisplaySettings > >, UpdateListener
{
private static final long serialVersionUID = 1L;
private static final int tfCols = 4;
- private final JColorChooser colorChooser;
+ private final Listeners.SynchronizedList< ModificationListener > modificationListeners;
private final List< StyleElement > styleElements;
+ private final DisplaySettings editedStyle;
+
public DisplaySettingsPanel( final DisplaySettings ds )
{
- super( new GridBagLayout() );
+ super( new BorderLayout() );
+
+ this.editedStyle = ds.copy( "Edited" );
+ this.styleElements = styleElements( editedStyle );
+ this.modificationListeners = new Listeners.SynchronizedList<>();
+ editedStyle.listeners().add( this );
+
+ final JPanel panel = new JPanel( new GridBagLayout() );
+ final GuiVisitor visitor = new GuiVisitor( panel );
+ styleElements.forEach( element -> element.accept( visitor ) );
+ final JScrollPane scrollPane = new JScrollPane( panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
+ scrollPane.getVerticalScrollBar().setUnitIncrement( 8 );
+ add( scrollPane, BorderLayout.CENTER );
+ setPreferredSize( new Dimension( 350, 500 ) );
+ }
- colorChooser = new JColorChooser();
- styleElements = styleElements( ds );
+ @Override
+ public Listeners< ModificationListener > modificationListeners()
+ {
+ return modificationListeners;
+ }
- ds.listeners().add( () -> {
- styleElements.forEach( StyleElement::update );
- repaint();
- } );
-
- final GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.HORIZONTAL;
- c.weightx = 1.0;
- c.gridwidth = 1;
- c.gridx = 0;
- c.gridy = 0;
-
- c.insets = new Insets( 2, 5, 2, 5 );
-
- styleElements.forEach( element -> element.accept(
- new StyleElementVisitor()
- {
- @Override
- public void visit( final Separator element )
- {
- add( Box.createVerticalStrut( 10 ), c );
- ++c.gridy;
- addToLayout( new JSeparator( JSeparator.HORIZONTAL ) );
- }
-
- @Override
- public void visit( final LabelElement element )
- {
- final JLabel label = new JLabel( element.getLabel() );
- label.setFont( getFont().deriveFont( Font.BOLD ).deriveFont( getFont().getSize() + 2f ) );
- addToLayout( label );
- }
-
- @Override
- public void visit( final BooleanElement element )
- {
- final JCheckBox checkbox = linkedCheckBox( element, "" );
- checkbox.setHorizontalAlignment( SwingConstants.TRAILING );
- addToLayout(
- checkbox,
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final BoundedDoubleElement element )
- {
- addToLayout(
- linkedSliderPanel( element, tfCols, 0.1 ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final DoubleElement element )
- {
- addToLayout(
- linkedFormattedTextField( element ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final IntElement element )
- {
- addToLayout(
- linkedSliderPanel( element, tfCols ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final ColorElement element )
- {
- addToLayoutFlushRight(
- linkedColorButton( element, colorChooser ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final FeatureElement element )
- {
- addToLayout(
- linkedFeatureSelector( element ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public < E > void visit( final EnumElement< E > element )
- {
- addToLayout(
- linkedComboBoxEnumSelector( element ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final ColormapElement element )
- {
- addToLayout(
- linkedColormapChooser( element ),
- new JLabel( element.getLabel() ) );
- }
-
- @Override
- public void visit( final FontElement element )
- {
- addToLayout(
- linkedFontButton( element, SwingUtilities.getWindowAncestor( DisplaySettingsPanel.this ) ),
- new JLabel( element.getLabel() ) );
- }
-
- private void addToLayout( final JComponent comp1, final JComponent comp2 )
- {
- c.gridwidth = 1;
- c.anchor = GridBagConstraints.LINE_END;
- add( comp1, c );
- c.gridx++;
- c.weightx = 0.0;
- c.anchor = GridBagConstraints.LINE_START;
- add( comp2, c );
- c.gridx = 0;
- c.weightx = 1.0;
- c.gridy++;
- }
-
- private void addToLayoutFlushRight( final JComponent comp1, final JComponent comp2 )
- {
- c.fill =
- c.gridwidth = 1;
- c.fill = GridBagConstraints.NONE;
- c.anchor = GridBagConstraints.EAST;
- add( comp1, c );
- c.gridx++;
- c.weightx = 0.0;
- c.fill = GridBagConstraints.HORIZONTAL;
- c.anchor = GridBagConstraints.LINE_START;
- add( comp2, c );
- c.gridx = 0;
- c.weightx = 1.0;
- c.gridy++;
- }
-
- private void addToLayout( final JComponent comp )
- {
- c.gridwidth = 2;
- c.anchor = GridBagConstraints.LINE_START;
- c.gridx = 0;
- c.weightx = 1.0;
- add( comp, c );
- c.gridy++;
- }
- } ) );
+ @Override
+ public JPanel getJPanel()
+ {
+ return this;
}
+ private boolean trackModifications = true;
+
+ @Override
+ public void loadProfile( final StyleProfile< DisplaySettings > profile )
+ {
+ trackModifications = false;
+ editedStyle.set( profile.getStyle() );
+ trackModifications = true;
+ }
+
+ @Override
+ public void storeProfile( final StyleProfile< DisplaySettings > profile )
+ {
+ trackModifications = false;
+ editedStyle.setName( profile.getStyle().getName() );
+ trackModifications = true;
+ profile.getStyle().set( editedStyle );
+ }
+
+ @Override
+ public void displaySettingsChanged()
+ {
+ styleElements.forEach( StyleElement::update );
+ if ( trackModifications )
+ {
+ repaint();
+ modificationListeners.list.forEach( ModificationListener::setModified );
+ }
+ }
private List< StyleElement > styleElements( final DisplaySettings ds )
{
@@ -303,4 +216,157 @@ private List< StyleElement > styleElements( final DisplaySettings ds )
separator() );
}
+
+ private static class GuiVisitor implements TrackMateStyleElementVisitor
+ {
+
+ private final JPanel panel;
+
+ private final GridBagConstraints c;
+
+ private final JColorChooser colorChooser;
+
+ public GuiVisitor( final JPanel panel )
+ {
+ this.panel = panel;
+ this.colorChooser = new JColorChooser();
+ this.c = new GridBagConstraints();
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.weightx = 1.0;
+ c.gridwidth = 1;
+ c.gridx = 0;
+ c.gridy = 0;
+ c.insets = new Insets( 2, 5, 2, 5 );
+ }
+
+ @Override
+ public void visit( final Separator element )
+ {
+ panel.add( Box.createVerticalStrut( 10 ), c );
+ ++c.gridy;
+ addToLayout( new JSeparator( JSeparator.HORIZONTAL ) );
+ }
+
+ @Override
+ public void visit( final LabelElement element )
+ {
+ final JLabel label = new JLabel( element.getLabel() );
+ label.setFont( panel.getFont().deriveFont( Font.BOLD ).deriveFont( panel.getFont().getSize() + 2f ) );
+ addToLayout( label );
+ }
+
+ @Override
+ public void visit( final BooleanElement element )
+ {
+ final JCheckBox checkbox = linkedCheckBox( element, "" );
+ checkbox.setHorizontalAlignment( SwingConstants.TRAILING );
+ addToLayout(
+ checkbox,
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final BoundedDoubleElement element )
+ {
+ addToLayout(
+ linkedSliderPanel( element, tfCols, 0.1 ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final DoubleElement element )
+ {
+ addToLayout(
+ linkedFormattedTextField( element, null, null ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final IntElement element )
+ {
+ addToLayout(
+ linkedSliderPanel( element, tfCols ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final ColorElement element )
+ {
+ addToLayoutFlushRight(
+ linkedColorButton( element, colorChooser ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final FeatureElement element )
+ {
+ addToLayout(
+ linkedFeatureSelector( element ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public < E > void visit( final EnumElement< E > element )
+ {
+ addToLayout(
+ linkedComboBoxEnumSelector( element ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final ColormapElement element )
+ {
+ addToLayout(
+ linkedColormapChooser( element ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ @Override
+ public void visit( final FontElement element )
+ {
+ addToLayout(
+ linkedFontButton( element, SwingUtilities.getWindowAncestor( panel ) ),
+ new JLabel( element.getLabel() ) );
+ }
+
+ private void addToLayout( final JComponent comp1, final JComponent comp2 )
+ {
+ c.gridwidth = 1;
+ c.anchor = GridBagConstraints.LINE_END;
+ panel.add( comp1, c );
+ c.gridx++;
+ c.weightx = 0.0;
+ c.anchor = GridBagConstraints.LINE_START;
+ panel.add( comp2, c );
+ c.gridx = 0;
+ c.weightx = 1.0;
+ c.gridy++;
+ }
+
+ private void addToLayoutFlushRight( final JComponent comp1, final JComponent comp2 )
+ {
+ c.fill = c.gridwidth = 1;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.EAST;
+ panel.add( comp1, c );
+ c.gridx++;
+ c.weightx = 0.0;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.anchor = GridBagConstraints.LINE_START;
+ panel.add( comp2, c );
+ c.gridx = 0;
+ c.weightx = 1.0;
+ c.gridy++;
+ }
+
+ private void addToLayout( final JComponent comp )
+ {
+ c.gridwidth = 2;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.gridx = 0;
+ c.weightx = 1.0;
+ panel.add( comp, c );
+ c.gridy++;
+ }
+ }
}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanel.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanel.java
deleted file mode 100644
index a9da3e5f6..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanel.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2024 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.JSpinner;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.SwingConstants;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import fiji.plugin.trackmate.gui.GuiUtils;
-
-/**
- * A {@link JSlider} with a {@link JSpinner} next to it, both modifying the same
- * {@link BoundedValue value}.
- */
-public class SliderPanel extends JPanel implements BoundedValue.UpdateListener
-{
- private static final long serialVersionUID = 6444334522127424416L;
-
- public static final Dimension PANEL_SIZE = new Dimension( 150, 20 );
-
- private final JSlider slider;
-
- private final JSpinner spinner;
-
- private final BoundedValue model;
-
- /**
- * Create a {@link SliderPanel} to modify a given {@link BoundedValue
- * value}.
- *
- * @param name
- * label to show next to the slider.
- * @param model
- * the value that is modified.
- * @param spinnerStepSize
- * the step size in the spinner to create.
- */
- public SliderPanel( final String name, final BoundedValue model, final int spinnerStepSize )
- {
- super();
- setLayout( new BorderLayout( 10, 10 ) );
- setPreferredSize( PANEL_SIZE );
-
- final int imin = model.getRangeMin();
- final int imax = model.getRangeMax();
- int ivalue = model.getCurrentValue();
- ivalue = Math.max( imin, ivalue );
- ivalue = Math.min( imax, ivalue );
- slider = new JSlider( SwingConstants.HORIZONTAL, imin, imax, ivalue );
-
- final double min = model.getRangeMin();
- final double max = model.getRangeMax();
- double value = model.getCurrentValue();
- value = Math.min( max, value );
- value = Math.max( min, value );
- spinner = new JSpinner();
- spinner.setModel( new SpinnerNumberModel( value, min, max, spinnerStepSize ) );
-
- slider.addChangeListener( new ChangeListener()
- {
- @Override
- public void stateChanged( final ChangeEvent e )
- {
- final int value = slider.getValue();
- model.setCurrentValue( value );
- }
- } );
-
- final MouseWheelListener mwl = new MouseWheelListener()
- {
-
- @Override
- public void mouseWheelMoved( final MouseWheelEvent e )
- {
- final int notches = e.getWheelRotation();
- int value = slider.getValue();
- value -= notches * spinnerStepSize;
- if ( value < slider.getMinimum() )
- value = slider.getMinimum();
- else if ( value > slider.getMaximum() )
- value = slider.getMaximum();
- slider.setValue( value );
- }
- };
- slider.addMouseWheelListener( mwl );
- spinner.addMouseWheelListener( mwl );
-
- spinner.addChangeListener( new ChangeListener()
- {
- @Override
- public void stateChanged( final ChangeEvent e )
- {
- final int value = ( ( Integer ) spinner.getValue() ).intValue();
- model.setCurrentValue( value );
- }
- } );
-
- if ( name != null )
- {
- final JLabel label = new JLabel( name, SwingConstants.CENTER );
- label.setAlignmentX( Component.CENTER_ALIGNMENT );
- add( label, BorderLayout.WEST );
- }
-
- add( slider, BorderLayout.CENTER );
- add( spinner, BorderLayout.EAST );
-
- final MouseWheelListener mouseWheelListener = new MouseWheelListener()
- {
-
- @Override
- public void mouseWheelMoved( final MouseWheelEvent e )
- {
- if ( !slider.isEnabled() )
- return;
- final int notches = e.getWheelRotation();
- final int step = notches < 0 ? 1 : -1;
- slider.setValue( slider.getValue() + step );
- }
- };
- slider.addMouseWheelListener( mouseWheelListener );
- spinner.addMouseWheelListener( mouseWheelListener );
-
- this.model = model;
- model.setUpdateListener( this );
- }
-
- public void setNumColummns( final int cols )
- {
- ( ( JSpinner.NumberEditor ) spinner.getEditor() ).getTextField().setColumns( cols );
- }
-
- @Override
- public void setToolTipText( final String text )
- {
- super.setToolTipText( text );
- if ( spinner != null )
- spinner.setToolTipText( text );
- if ( slider != null )
- slider.setToolTipText( text );
- }
-
- @Override
- public void setEnabled( final boolean enabled )
- {
- spinner.setEnabled( enabled );
- slider.setEnabled( enabled );
- super.setEnabled( enabled );
- }
-
- @Override
- public void setFont( final Font font )
- {
- GuiUtils.setFont( this, font );
- }
-
- @Override
- public void update()
- {
- final int value = model.getCurrentValue();
- final int min = model.getRangeMin();
- final int max = model.getRangeMax();
- if ( slider.getMaximum() != max || slider.getMinimum() != min )
- {
- slider.setMinimum( min );
- slider.setMaximum( max );
- final SpinnerNumberModel spinnerModel = ( SpinnerNumberModel ) spinner.getModel();
- spinnerModel.setMinimum( min );
- spinnerModel.setMaximum( max );
- }
- slider.setValue( value );
- spinner.setValue( value );
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanelDouble.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanelDouble.java
deleted file mode 100644
index f707d9d96..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/SliderPanelDouble.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2024 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Font;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JSlider;
-import javax.swing.JSpinner;
-import javax.swing.JSpinner.NumberEditor;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.SwingConstants;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-import fiji.plugin.trackmate.gui.GuiUtils;
-
-/**
- * A {@link JSlider} with a {@link JSpinner} next to it, both modifying the same
- * {@link BoundedValue value}.
- */
-public class SliderPanelDouble extends JPanel implements BoundedValueDouble.UpdateListener
-{
- private static final long serialVersionUID = 6444334522127424416L;
-
- private static final int sliderLength = 50;
-
- private final JSlider slider;
-
- private final JSpinner spinner;
-
- private final BoundedValueDouble model;
-
- private double dmin;
-
- private double dmax;
-
- private boolean userDefinedNumberFormat = false;
-
- private RangeListener rangeListener;
-
- public interface RangeListener
- {
- void rangeChanged();
- }
-
- /**
- * Create a {@link SliderPanelDouble} to modify a given
- * {@link BoundedValueDouble value}.
- *
- * @param name
- * label to show next to the slider.
- * @param model
- * the value that is modified.
- * @param spinnerStepSize
- * the steps size for the spinner created.
- */
- public SliderPanelDouble(
- final String name,
- final BoundedValueDouble model,
- final double spinnerStepSize )
- {
- super();
- setLayout( new BorderLayout( 10, 10 ) );
- setPreferredSize( SliderPanel.PANEL_SIZE );
-
- final int imin = 0;
- final int imax = sliderLength;
- int ivalue = toSlider( model.getCurrentValue() );
- ivalue = Math.max( imin, ivalue );
- ivalue = Math.min( imax, ivalue );
- slider = new JSlider( SwingConstants.HORIZONTAL, imin, imax, ivalue );
-
- spinner = new JSpinner();
- dmin = model.getRangeMin();
- dmax = model.getRangeMax();
-
- double value = model.getCurrentValue();
- value = Math.min( dmax, value );
- value = Math.max( dmin, value );
- spinner.setModel( new SpinnerNumberModel( value, dmin, dmax, spinnerStepSize ) );
-
- slider.addChangeListener( new ChangeListener()
- {
- @Override
- public void stateChanged( final ChangeEvent e )
- {
- final int value = slider.getValue();
- model.setCurrentValue( fromSlider( value ) );
- }
- } );
-
- slider.addComponentListener( new ComponentAdapter()
- {
- @Override
- public void componentResized( final ComponentEvent e )
- {
- updateNumberFormat();
- }
- } );
-
- final MouseWheelListener mwl = new MouseWheelListener()
- {
-
- @Override
- public void mouseWheelMoved( final MouseWheelEvent e )
- {
- final int notches = e.getWheelRotation();
- double value = ( ( Number ) spinner.getValue() ).doubleValue();
- value -= notches * spinnerStepSize;
- if ( value < dmin )
- value = dmin;
- else if ( value > dmax )
- value = dmax;
- spinner.setValue( value );
- }
- };
- slider.addMouseWheelListener( mwl );
- spinner.addMouseWheelListener( mwl );
-
- spinner.addChangeListener( new ChangeListener()
- {
- @Override
- public void stateChanged( final ChangeEvent e )
- {
- final double value = ( ( Double ) spinner.getValue() ).doubleValue();
- model.setCurrentValue( value );
- }
- } );
-
- if ( name != null )
- {
- final JLabel label = new JLabel( name, SwingConstants.CENTER );
- label.setAlignmentX( Component.CENTER_ALIGNMENT );
- add( label, BorderLayout.WEST );
- }
-
- add( slider, BorderLayout.CENTER );
- add( spinner, BorderLayout.EAST );
-
- final MouseWheelListener mouseWheelListener = new MouseWheelListener()
- {
-
- @Override
- public void mouseWheelMoved( final MouseWheelEvent e )
- {
- if ( !slider.isEnabled() )
- return;
- final int notches = e.getWheelRotation();
- final int step = notches < 0 ? 1 : -1;
- slider.setValue( slider.getValue() + step );
- }
- };
- slider.addMouseWheelListener( mouseWheelListener );
- spinner.addMouseWheelListener( mouseWheelListener );
-
- this.model = model;
- model.setUpdateListener( this );
- }
-
- public void setDecimalFormat( final String pattern )
- {
- if ( pattern == null )
- {
- userDefinedNumberFormat = false;
- updateNumberFormat();
- }
- else
- {
- userDefinedNumberFormat = true;
- ( ( JSpinner.NumberEditor ) spinner.getEditor() ).getFormat().applyPattern( pattern );
- }
- }
-
- public void setNumColummns( final int cols )
- {
- ( ( JSpinner.NumberEditor ) spinner.getEditor() ).getTextField().setColumns( cols );
- }
-
- @Override
- public void setToolTipText( final String text )
- {
- super.setToolTipText( text );
- if ( spinner != null )
- spinner.setToolTipText( text );
- if ( slider != null )
- slider.setToolTipText( text );
- }
-
- @Override
- public void setEnabled( final boolean enabled )
- {
- spinner.setEnabled( enabled );
- slider.setEnabled( enabled );
- super.setEnabled( enabled );
- }
-
- @Override
- public void setFont( final Font font )
- {
- GuiUtils.setFont( this, font );
- }
-
- @Override
- public void update()
- {
- final double value = model.getCurrentValue();
- final double min = model.getRangeMin();
- final double max = model.getRangeMax();
-
- final boolean rangeChanged = ( dmax != max || dmin != min );
- if ( rangeChanged )
- {
- dmin = min;
- dmax = max;
- final SpinnerNumberModel spinnerModel = ( SpinnerNumberModel ) spinner.getModel();
- spinnerModel.setMinimum( min );
- spinnerModel.setMaximum( max );
- }
- slider.setValue( toSlider( value ) );
- spinner.setValue( value );
-
- if ( rangeChanged )
- updateNumberFormat();
-
- if ( rangeChanged && rangeListener != null )
- rangeListener.rangeChanged();
-
- }
-
- public void setRangeListener( final RangeListener listener )
- {
- this.rangeListener = listener;
- }
-
- private void updateNumberFormat()
- {
- if ( userDefinedNumberFormat )
- return;
-
- final int sw = slider.getWidth();
- if ( sw > 0 )
- {
- final double range = dmax - dmin;
- final int digits = ( int ) Math.ceil( Math.log10( sw / range ) );
- final NumberEditor numberEditor = ( ( JSpinner.NumberEditor ) spinner.getEditor() );
- numberEditor.getFormat().setMaximumFractionDigits( digits );
- numberEditor.stateChanged( new ChangeEvent( spinner ) );
- }
- }
-
- private int toSlider( final double value )
- {
- return ( int ) Math.round( ( value - dmin ) * sliderLength / ( dmax - dmin ) );
- }
-
- private double fromSlider( final int value )
- {
- return ( value * ( dmax - dmin ) / sliderLength ) + dmin;
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/StyleElements.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/StyleElements.java
deleted file mode 100644
index d4a1b7a6e..000000000
--- a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/StyleElements.java
+++ /dev/null
@@ -1,1208 +0,0 @@
-/*-
- * #%L
- * TrackMate: your buddy for everyday tracking.
- * %%
- * Copyright (C) 2010 - 2026 TrackMate developers.
- * %%
- * This program 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.
- *
- * This program 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 this program. If not, see
- * .
- * #L%
- */
-package fiji.plugin.trackmate.gui.displaysettings;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dialog.ModalityType;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.Insets;
-import java.awt.Window;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusAdapter;
-import java.text.DecimalFormat;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
-import java.util.function.BiConsumer;
-import java.util.function.BooleanSupplier;
-import java.util.function.Consumer;
-import java.util.function.DoubleSupplier;
-import java.util.function.IntSupplier;
-import java.util.function.Supplier;
-
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JColorChooser;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JFormattedTextField;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JSpinner;
-import javax.swing.JSpinner.DefaultEditor;
-import javax.swing.JTextField;
-import javax.swing.ListCellRenderer;
-import javax.swing.SpinnerListModel;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.SwingConstants;
-import javax.swing.WindowConstants;
-import javax.swing.border.EmptyBorder;
-
-import org.drjekyll.fontchooser.FontDialog;
-
-import fiji.plugin.trackmate.Settings;
-import fiji.plugin.trackmate.gui.Fonts;
-import fiji.plugin.trackmate.gui.GuiUtils;
-import fiji.plugin.trackmate.gui.Icons;
-import fiji.plugin.trackmate.gui.components.CategoryJComboBox;
-import fiji.plugin.trackmate.gui.components.FeatureDisplaySelector;
-import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackMateObject;
-
-public class StyleElements
-{
- private static final DecimalFormat format = new DecimalFormat( "#.###" );
-
- public static Separator separator()
- {
- return new Separator();
- }
-
- public static LabelElement label( final String label )
- {
- return new LabelElement( label );
- }
-
- public static StringElement stringElement( final String label, final Supplier< String > get, final Consumer< String > set )
- {
- return new StringElement( label )
- {
-
- @Override
- public String get()
- {
- return get.get();
- }
-
- @Override
- public void set( final String s )
- {
- set.accept( s );
- }
- };
- }
-
- public static BooleanElement booleanElement( final String label, final BooleanSupplier get, final Consumer< Boolean > set )
- {
- return new BooleanElement( label )
- {
- @Override
- public boolean get()
- {
- return get.getAsBoolean();
- }
-
- @Override
- public void set( final boolean b )
- {
- set.accept( b );
- }
- };
- }
-
- public static ColorElement colorElement( final String label, final Supplier< Color > get, final Consumer< Color > set )
- {
- return new ColorElement( label )
- {
- @Override
- public Color getColor()
- {
- return get.get();
- }
-
- @Override
- public void setColor( final Color c )
- {
- set.accept( c );
- }
- };
- }
-
- public static ColormapElement colormapElement( final String label, final Supplier< Colormap > get, final Consumer< Colormap > set )
- {
- return new ColormapElement( label )
- {
-
- @Override
- public Colormap get()
- {
- return get.get();
- }
-
- @Override
- public void set( final Colormap v )
- {
- set.accept( v );
- }
- };
- }
-
- public static BoundedDoubleElement boundedDoubleElement( final String label, final double rangeMin, final double rangeMax, final DoubleSupplier get, final Consumer< Double > set )
- {
- return new BoundedDoubleElement( label, rangeMin, rangeMax )
- {
- @Override
- public double get()
- {
- return get.getAsDouble();
- }
-
- @Override
- public void set( final double v )
- {
- set.accept( v );
- }
- };
- }
-
- public static DoubleElement doubleElement( final String label, final DoubleSupplier get, final Consumer< Double > set )
- {
- return new DoubleElement( label )
- {
- @Override
- public double get()
- {
- return get.getAsDouble();
- }
-
- @Override
- public void set( final double v )
- {
- set.accept( v );
- }
- };
- }
-
- public static IntElement intElement( final String label, final int rangeMin, final int rangeMax, final IntSupplier get, final Consumer< Integer > set )
- {
- return new IntElement( label, rangeMin, rangeMax )
- {
- @Override
- public int get()
- {
- return get.getAsInt();
- }
-
- @Override
- public void set( final int v )
- {
- set.accept( v );
- }
- };
- }
-
- public static < E > EnumElement< E > enumElement( final String label, final E[] values, final Supplier< E > get, final Consumer< E > set )
- {
- return new EnumElement< E >( label, values )
- {
-
- @Override
- public E getValue()
- {
- return get.get();
- }
-
- @Override
- public void setValue( final E e )
- {
- set.accept( e );
- }
- };
- }
-
- public static < E > ListElement< E > listElement( final String label, final List< E > values, final Supplier< E > get, final Consumer< E > set )
- {
- return new ListElement< E >( label, values )
- {
-
- @Override
- public E getValue()
- {
- return get.get();
- }
-
- @Override
- public void setValue( final E e )
- {
- set.accept( e );
- }
- };
- }
-
- public static FeatureElement featureElement( final String label, final Supplier< TrackMateObject > typeGet, final Supplier< String > featureGet, final BiConsumer< TrackMateObject, String > set )
- {
- return new FeatureElement( label )
- {
-
- @Override
- public void setValue( final TrackMateObject type, final String feature )
- {
- set.accept( type, feature );
- }
-
- @Override
- public TrackMateObject getType()
- {
- return typeGet.get();
- }
-
- @Override
- public String getFeature()
- {
- return featureGet.get();
- }
- };
- }
-
- public static FontElement fontElement( final String label, final Supplier< Font > get, final Consumer< Font > set )
- {
- return new FontElement( label )
- {
-
- @Override
- public void set( final Font font )
- {
- set.accept( font );
- }
-
- @Override
- public Font get()
- {
- return get.get();
- }
- };
- }
-
- /*
- * Visitor interface.
- */
-
- public interface StyleElementVisitor
- {
- public default void visit( final Separator element )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final LabelElement label )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final ColorElement colorElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final BooleanElement booleanElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final BoundedDoubleElement doubleElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final DoubleElement doubleElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final IntElement intElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default < E > void visit( final EnumElement< E > enumElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final FeatureElement featureElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final ColormapElement element )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final FontElement fontElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default void visit( final StringElement stringElement )
- {
- throw new UnsupportedOperationException();
- }
-
- public default < E > void visit( final ListElement< E > listElement )
- {
- throw new UnsupportedOperationException();
- }
- }
-
- /*
- *
- * ===============================================================
- *
- */
-
- public interface StyleElement
- {
- public default void update()
- {}
-
- public void accept( StyleElementVisitor visitor );
- }
-
- public static class Separator implements StyleElement
- {
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
- }
-
- public static class LabelElement implements StyleElement
- {
- private final String label;
-
- public LabelElement( final String label )
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
- }
-
- public static abstract class StringElement implements StyleElement
- {
-
- private final ArrayList< Consumer< String > > onSet = new ArrayList<>();
-
- private final String label;
-
- private String value;
-
- public StringElement( final String label )
- {
- this.label = label;
- this.value = "";
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract String get();
-
- public abstract void set( String s );
-
- public void onSet( final Consumer< String > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- if ( get() != value )
- value = get();
- onSet.forEach( c -> c.accept( get() ) );
- }
- }
-
- public static abstract class EnumElement< E > implements StyleElement
- {
- private final ArrayList< Consumer< E > > onSet = new ArrayList<>();
-
- private final String label;
-
- private final E[] values;
-
- public EnumElement( final String label, final E[] values )
- {
- this.label = label;
- this.values = values;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public void onSet( final Consumer< E > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( getValue() ) );
- }
-
- public abstract E getValue();
-
- public abstract void setValue( E e );
-
- public E[] getValues()
- {
- return values;
- }
- }
-
- public static abstract class ListElement< E > implements StyleElement
- {
- private final ArrayList< Consumer< E > > onSet = new ArrayList<>();
-
- private final String label;
-
- private final List< E > values;
-
- public ListElement( final String label, final List< E > values )
- {
- this.label = label;
- this.values = values;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public void onSet( final Consumer< E > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( getValue() ) );
- }
-
- public abstract E getValue();
-
- public abstract void setValue( E e );
-
- public List< E > getValues()
- {
- return values;
- }
- }
-
- public static abstract class FeatureElement implements StyleElement
- {
- private final ArrayList< BiConsumer< TrackMateObject, String > > onSet = new ArrayList<>();
-
- private final String label;
-
- public FeatureElement( final String label )
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public void onSet( final BiConsumer< TrackMateObject, String > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( getType(), getFeature() ) );
- }
-
- public abstract TrackMateObject getType();
-
- public abstract String getFeature();
-
- public abstract void setValue( TrackMateObject type, String feature );
- }
-
- public static abstract class ColorElement implements StyleElement
- {
- private final ArrayList< Consumer< Color > > onSet = new ArrayList<>();
-
- private final String label;
-
- public ColorElement( final String label )
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public void onSet( final Consumer< Color > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( getColor() ) );
- }
-
- public abstract Color getColor();
-
- public abstract void setColor( Color c );
- }
-
- public static abstract class BooleanElement implements StyleElement
- {
- private final String label;
-
- private final ArrayList< Consumer< Boolean > > onSet = new ArrayList<>();
-
- public BooleanElement( final String label )
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public void onSet( final Consumer< Boolean > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( get() ) );
- }
-
- public abstract boolean get();
-
- public abstract void set( boolean b );
- }
-
- public static abstract class BoundedDoubleElement implements StyleElement
- {
- private final BoundedValueDouble value;
-
- private final String label;
-
- public BoundedDoubleElement( final String label, final double rangeMin, final double rangeMax )
- {
- final double currentValue = Math.max( rangeMin, Math.min( rangeMax, get() ) );
- value = new BoundedValueDouble( rangeMin, rangeMax, currentValue )
- {
- @Override
- public void setCurrentValue( final double value )
- {
- super.setCurrentValue( value );
- if ( get() != getCurrentValue() )
- set( getCurrentValue() );
- }
- };
- this.label = label;
- }
-
- public BoundedValueDouble getValue()
- {
- return value;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract double get();
-
- public abstract void set( double v );
-
- @Override
- public void update()
- {
- if ( get() != value.getCurrentValue() )
- value.setCurrentValue( get() );
- }
- }
-
- public static abstract class DoubleElement implements StyleElement
- {
-
- private final ArrayList< Consumer< Double > > onSet = new ArrayList<>();
-
- private double value;
-
- private final String label;
-
- public DoubleElement( final String label )
- {
- value = 0.;
- this.label = label;
- }
-
- public double getValue()
- {
- return value;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract double get();
-
- public abstract void set( double v );
-
- public void onSet( final Consumer< Double > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- if ( get() != value )
- value = get();
- onSet.forEach( c -> c.accept( get() ) );
- }
- }
-
- public static abstract class IntElement implements StyleElement
- {
- private final BoundedValue value;
-
- private final String label;
-
- public IntElement( final String label, final int rangeMin, final int rangeMax )
- {
- final int currentValue = Math.max( rangeMin, Math.min( rangeMax, get() ) );
- value = new BoundedValue( rangeMin, rangeMax, currentValue )
- {
- @Override
- public void setCurrentValue( final int value )
- {
- super.setCurrentValue( value );
- if ( get() != getCurrentValue() )
- set( getCurrentValue() );
- }
- };
- this.label = label;
- }
-
- public BoundedValue getValue()
- {
- return value;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract int get();
-
- public abstract void set( int v );
-
- @Override
- public void update()
- {
- if ( get() != value.getCurrentValue() )
- value.setCurrentValue( get() );
- }
- }
-
- public static abstract class ColormapElement implements StyleElement
- {
- private final ArrayList< Consumer< Colormap > > onSet = new ArrayList<>();
-
- private final String label;
-
- public ColormapElement( final String label )
- {
- this.label = label;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract Colormap get();
-
- public abstract void set( Colormap v );
-
- public void onSet( final Consumer< Colormap > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- onSet.forEach( c -> c.accept( get() ) );
- }
- }
-
- public static abstract class FontElement implements StyleElement
- {
-
- private final ArrayList< Consumer< Font > > onSet = new ArrayList<>();
-
- private Font value;
-
- private final String label;
-
- public FontElement( final String label )
- {
- this.label = label;
- }
-
- public Font getValue()
- {
- return value;
- }
-
- public String getLabel()
- {
- return label;
- }
-
- @Override
- public void accept( final StyleElementVisitor visitor )
- {
- visitor.visit( this );
- }
-
- public abstract Font get();
-
- public abstract void set( Font font );
-
- public void onSet( final Consumer< Font > set )
- {
- onSet.add( set );
- }
-
- @Override
- public void update()
- {
- if ( get() != value )
- value = get();
- }
- }
-
- /*
- *
- * ===============================================================
- *
- */
-
- public static JLabel linkedLabel( final LabelElement element )
- {
- return new JLabel( element.getLabel() );
- }
-
- public static CategoryJComboBox< TrackMateObject, String > linkedFeatureSelector( final FeatureElement element )
- {
- final Settings settings = new Settings();
- settings.addAllAnalyzers();
- final CategoryJComboBox< TrackMateObject, String > selector = FeatureDisplaySelector.createComboBoxSelector( null, settings );
- selector.setSelectedItem( element.getFeature() );
- selector.addActionListener( e -> element.setValue( selector.getSelectedCategory(), selector.getSelectedItem() ) );
- element.onSet( ( type, feature ) -> {
- if ( !feature.equals( selector.getSelectedItem() ) )
- selector.setSelectedItem( feature );
- } );
- return selector;
- }
-
- public static JComboBox< Colormap > linkedColormapChooser( final ColormapElement element )
- {
- final JComboBox< Colormap > cb = new JComboBox< Colormap >(
- Colormap.getAvailableLUTs().toArray( new Colormap[] {} ) );
- cb.setRenderer( new ColormapRenderer() );
- cb.setSelectedItem( element.get() );
- cb.addActionListener( e -> element.set( ( Colormap ) cb.getSelectedItem() ) );
- element.onSet( cm -> {
- if ( cm != cb.getSelectedItem() )
- cb.setSelectedItem( cm );
- } );
- return cb;
- }
-
- private static final class ColormapRenderer extends JPanel implements ListCellRenderer< Colormap >
- {
-
- private static final long serialVersionUID = 1L;
-
- private Colormap lut = Colormap.Jet;
-
- private final DefaultListCellRenderer lbl;
-
- public ColormapRenderer()
- {
- setPreferredSize( new Dimension( 150, 20 ) );
- final BoxLayout itemlayout = new BoxLayout( this, BoxLayout.LINE_AXIS );
- this.lbl = new DefaultListCellRenderer();
- setLayout( itemlayout );
- add( lbl );
- add( Box.createHorizontalGlue() );
- add( new JComponent()
- {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void paint( final Graphics g )
- {
-
- final int width = getWidth();
- final int height = getHeight();
- for ( int i = 0; i < width; i++ )
- {
- final double beta = ( double ) i / ( width - 1 );
- g.setColor( lut.getPaint( beta ) );
- g.drawLine( i, 0, i, height );
- }
- g.setColor( this.getParent().getBackground() );
- g.drawRect( 0, 0, width, height );
- }
-
- @Override
- public Dimension getMaximumSize()
- {
- return new Dimension( 100, 20 );
- }
-
- @Override
- public Dimension getPreferredSize()
- {
- return getMaximumSize();
- }
- } );
- }
-
- @Override
- public Component getListCellRendererComponent(
- final JList< ? extends Colormap > list,
- final Colormap value,
- final int index,
- final boolean isSelected,
- final boolean cellHasFocus )
- {
- this.lut = value;
- lbl.getListCellRendererComponent( list, value.getName(), index, isSelected, cellHasFocus );
- setBackground( lbl.getBackground() );
- return this;
- }
- }
-
- public static JCheckBox linkedCheckBox( final BooleanElement element, final String label )
- {
- final JCheckBox checkbox = new JCheckBox( label, element.get() );
- checkbox.addActionListener( ( e ) -> element.set( checkbox.isSelected() ) );
- element.onSet( b -> {
- if ( b != checkbox.isSelected() )
- checkbox.setSelected( b );
- } );
- return checkbox;
- }
-
- public static JButton linkedColorButton( final ColorElement element, final JColorChooser colorChooser )
- {
- final ColorIcon icon = new ColorIcon( element.getColor(), 16, 0 );
- final JButton button = new JButton( icon );
- button.setOpaque( false );
- button.setContentAreaFilled( false );
- button.setBorderPainted( false );
- button.setFont( new JButton().getFont() );
- button.setMargin( new Insets( 0, 0, 0, 0 ) );
- button.setBorder( new EmptyBorder( 2, 5, 2, 2 ) );
- button.setHorizontalAlignment( SwingConstants.LEFT );
- button.addActionListener( e -> {
- colorChooser.setColor( element.getColor() );
- final JDialog d = JColorChooser.createDialog( button, "Choose a color", true, colorChooser, new ActionListener()
- {
- @Override
- public void actionPerformed( final ActionEvent arg0 )
- {
- final Color c = colorChooser.getColor();
- if ( c != null )
- {
- icon.setColor( c );
- button.repaint();
- element.setColor( c );
- }
- }
- }, null );
- d.setVisible( true );
- } );
- element.onSet( icon::setColor );
- return button;
- }
-
- public static SliderPanel linkedSliderPanel( final IntElement element, final int tfCols )
- {
- final SliderPanel slider = new SliderPanel( null, element.getValue(), 1 );
- slider.setNumColummns( tfCols );
- slider.setBorder( new EmptyBorder( 0, 0, 0, 0 ) );
- return slider;
- }
-
- public static JSpinner linkedSpinner( final IntElement element )
- {
- final BoundedValue value = element.getValue();
- final SpinnerNumberModel model = new SpinnerNumberModel( element.get(), value.getRangeMin(), value.getRangeMax(), 1 );
- final JSpinner spinner = new JSpinner( model );
- spinner.setMaximumSize( new Dimension( 80, spinner.getMaximumSize().height ) );
- model.addChangeListener( e -> element.set( ( ( Number ) model.getValue() ).intValue() ) );
- return spinner;
- }
-
- public static SliderPanelDouble linkedSliderPanel( final BoundedDoubleElement element, final int tfCols )
- {
- return linkedSliderPanel( element, tfCols, 1. );
- }
-
- public static SliderPanelDouble linkedSliderPanel( final BoundedDoubleElement element, final int tfCols, final double stepSize )
- {
- final SliderPanelDouble slider = new SliderPanelDouble( null, element.getValue(), stepSize );
- slider.setDecimalFormat( "0.####" );
- slider.setNumColummns( tfCols );
- slider.setBorder( new EmptyBorder( 0, 0, 0, 0 ) );
- return slider;
- }
-
- @SuppressWarnings( "unchecked" )
- public static < E > JSpinner linkedSpinnerEnumSelector( final EnumElement< E > element )
- {
- final SpinnerListModel model = new SpinnerListModel( element.getValues() );
- final JSpinner spinner = new JSpinner( model );
- spinner.setFont( Fonts.SMALL_FONT );
- ( ( DefaultEditor ) spinner.getEditor() ).getTextField().setEditable( false );
- model.setValue( element.getValue() );
- model.addChangeListener( e -> element.setValue( ( E ) model.getValue() ) );
- element.onSet( e -> {
- if ( e != model.getValue() )
- model.setValue( e );
- } );
- return spinner;
- }
-
- @SuppressWarnings( "unchecked" )
- public static < E > JComboBox< E > linkedComboBoxEnumSelector( final EnumElement< E > element )
- {
- final DefaultComboBoxModel< E > model = new DefaultComboBoxModel<>( element.values );
- final JComboBox< E > cb = new JComboBox<>( model );
- cb.setFont( Fonts.SMALL_FONT );
- cb.addActionListener( e -> element.setValue( ( E ) model.getSelectedItem() ) );
- element.onSet( e -> {
- if ( e != model.getSelectedItem() )
- model.setSelectedItem( e );
- } );
- cb.setSelectedItem( element.getValue() );
- return cb;
- }
-
- @SuppressWarnings( "unchecked" )
- public static < E > JComboBox< E > linkedComboBoxSelector( final ListElement< E > element )
- {
- final DefaultComboBoxModel< E > model = new DefaultComboBoxModel<>( new Vector<>( element.values ) );
- final JComboBox< E > cb = new JComboBox<>( model );
- cb.setFont( Fonts.SMALL_FONT );
- cb.addActionListener( e -> element.setValue( ( E ) model.getSelectedItem() ) );
- element.onSet( e -> {
- if ( e != model.getSelectedItem() )
- model.setSelectedItem( e );
- } );
- return cb;
- }
-
- public static JFormattedTextField linkedFormattedTextField( final DoubleElement element )
- {
- final JFormattedTextField ftf = new JFormattedTextField( format );
- ftf.setHorizontalAlignment( JFormattedTextField.RIGHT );
- ftf.setValue( Double.valueOf( element.get() ) );
-
- ftf.addActionListener( e -> element.set( ( ( Number ) ftf.getValue() ).doubleValue() ) );
- ftf.addFocusListener( new FocusAdapter()
- {
- @Override
- public void focusLost( final java.awt.event.FocusEvent e )
- {
- try
- {
- ftf.commitEdit();
- element.set( ( ( Number ) ftf.getValue() ).doubleValue() );
- }
- catch ( final ParseException e1 )
- {}
- }
- } );
- GuiUtils.selectAllOnFocus( ftf );
- element.onSet( d -> {
- if ( d != ( ( Number ) ftf.getValue() ).doubleValue() )
- ftf.setValue( Double.valueOf( element.value ) );
- } );
-
- return ftf;
- }
-
- public static JTextField linkedTextField( final StringElement element )
- {
- final JTextField tf = new JTextField( element.get() );
- tf.setHorizontalAlignment( JFormattedTextField.LEFT );
-
- tf.addActionListener( e -> element.set( tf.getText() ) );
- GuiUtils.selectAllOnFocus( tf );
- tf.addFocusListener( new FocusAdapter()
- {
- @Override
- public void focusLost( final java.awt.event.FocusEvent e )
- {
- element.set( tf.getText() );
- }
- } );
- element.onSet( d -> {
- if ( d != ( tf.getText() ) )
- tf.setText( element.value );
- } );
-
- return tf;
- }
-
- public static JButton linkedFontButton( final FontElement element, final Window parent )
- {
- final JButton btn = new JButton( "Select font" );
- btn.setFont( element.get() );
- btn.addPropertyChangeListener( "font", e -> element.set( btn.getFont() ) );
- element.onSet( font -> {
- if ( !font.equals( btn.getFont() ) )
- btn.setFont( font );
- } );
- btn.addActionListener( e -> {
- final FontDialog dialog = new FontDialog( parent, "Select font for TrackMate display", ModalityType.APPLICATION_MODAL );
- dialog.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
- dialog.setSelectedFont( btn.getFont() );
- GuiUtils.positionWindow( dialog, parent );
- dialog.setIconImage( Icons.TRACKMATE_ICON.getImage() );
- dialog.setVisible( true );
- if ( !dialog.isCancelSelected() )
- btn.setFont( dialog.getSelectedFont() );
- } );
- return btn;
- }
-}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/displaysettings/TrackMateStyleElements.java b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/TrackMateStyleElements.java
new file mode 100644
index 000000000..97c3265e4
--- /dev/null
+++ b/src/main/java/fiji/plugin/trackmate/gui/displaysettings/TrackMateStyleElements.java
@@ -0,0 +1,118 @@
+package fiji.plugin.trackmate.gui.displaysettings;
+
+import java.util.ArrayList;
+import java.util.function.BiConsumer;
+import java.util.function.Supplier;
+
+import org.scijava.ui.config.visitors.gui.elements.StyleElement;
+import org.scijava.ui.config.visitors.gui.elements.StyleElementVisitor;
+
+import fiji.plugin.trackmate.Settings;
+import fiji.plugin.trackmate.gui.components.CategoryJComboBox;
+import fiji.plugin.trackmate.gui.components.FeatureDisplaySelector;
+import fiji.plugin.trackmate.gui.displaysettings.DisplaySettings.TrackMateObject;
+
+public class TrackMateStyleElements
+{
+
+ public static CategoryJComboBox< TrackMateObject, String > linkedFeatureSelector( final FeatureElement element )
+ {
+ final Settings settings = new Settings();
+ settings.addAllAnalyzers();
+ final CategoryJComboBox< TrackMateObject, String > selector = FeatureDisplaySelector.createComboBoxSelector( null, settings );
+ selector.setSelectedItem( element.getFeature() );
+ selector.addActionListener( e -> element.setValue( selector.getSelectedCategory(), selector.getSelectedItem() ) );
+ element.onSet( ( type, feature ) -> {
+ if ( !feature.equals( selector.getSelectedItem() ) )
+ selector.setSelectedItem( feature );
+ } );
+ return selector;
+ }
+
+ public static FeatureElement featureElement( final String label, final Supplier< TrackMateObject > typeGet, final Supplier< String > featureGet, final BiConsumer< TrackMateObject, String > set )
+ {
+ return new FeatureElement( label )
+ {
+
+ @Override
+ public void setValue( final TrackMateObject type, final String feature )
+ {
+ set.accept( type, feature );
+ }
+
+ @Override
+ public TrackMateObject getType()
+ {
+ return typeGet.get();
+ }
+
+ @Override
+ public String getFeature()
+ {
+ return featureGet.get();
+ }
+
+ @Override
+ public void accept( final StyleElementVisitor visitor )
+ {
+ if ( visitor instanceof final TrackMateStyleElementVisitor extendedVisitor )
+ extendedVisitor.visit( this );
+ else
+ throw new UnsupportedOperationException( "Visitor " + visitor.getClass().getName() + " does not support " + this.getClass().getName() );
+ }
+ };
+ }
+
+ public static interface TrackMateStyleElement extends StyleElement
+ {
+ void accept( TrackMateStyleElementVisitor visitor );
+ }
+
+ public static interface TrackMateStyleElementVisitor extends StyleElementVisitor
+ {
+ public default void visit( final FeatureElement element )
+ {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ public static abstract class FeatureElement implements TrackMateStyleElement
+ {
+ private final ArrayList< BiConsumer< TrackMateObject, String > > onSet = new ArrayList<>();
+
+ private final String label;
+
+ public FeatureElement( final String label )
+ {
+ this.label = label;
+ }
+
+ public String getLabel()
+ {
+ return label;
+ }
+
+ @Override
+ public void accept( final TrackMateStyleElementVisitor visitor )
+ {
+ visitor.visit( this );
+ }
+
+ public void onSet( final BiConsumer< TrackMateObject, String > set )
+ {
+ onSet.add( set );
+ }
+
+ @Override
+ public void update()
+ {
+ onSet.forEach( c -> c.accept( getType(), getFeature() ) );
+ }
+
+ public abstract TrackMateObject getType();
+
+ public abstract String getFeature();
+
+ public abstract void setValue( TrackMateObject type, String feature );
+ }
+}
diff --git a/src/main/java/fiji/plugin/trackmate/gui/wizard/descriptors/SpotFilterDescriptor.java b/src/main/java/fiji/plugin/trackmate/gui/wizard/descriptors/SpotFilterDescriptor.java
index 4037a22fc..2ea163d22 100644
--- a/src/main/java/fiji/plugin/trackmate/gui/wizard/descriptors/SpotFilterDescriptor.java
+++ b/src/main/java/fiji/plugin/trackmate/gui/wizard/descriptors/SpotFilterDescriptor.java
@@ -34,6 +34,7 @@
import fiji.plugin.trackmate.Spot;
import fiji.plugin.trackmate.TrackMate;
import fiji.plugin.trackmate.features.FeatureFilter;
+import fiji.plugin.trackmate.features.FeatureUtils;
import fiji.plugin.trackmate.gui.GuiModel;
import fiji.plugin.trackmate.gui.components.FeatureDisplaySelector;
import fiji.plugin.trackmate.gui.components.FilterGuiPanel;
@@ -140,6 +141,11 @@ public void run()
logger.log( String.format( "Calculating features done in %.1f s.\n", ( end - start ) / 1e3f ) );
panel.showProgressBar( false );
+ // If spots are not very visible because of the display
+ // settings, make them visible.
+ guiModel.getDisplaySettings().setSpotVisible( true );
+ guiModel.getDisplaySettings().setSpotColorBy( TrackMateObject.SPOTS, FeatureUtils.USE_UNIFORM_COLOR_KEY );
+
// Refresh component.
panel.refreshValues();
filterSpots();
diff --git a/src/main/java/fiji/plugin/trackmate/util/config/GenericConfigPanelPreview.java b/src/main/java/fiji/plugin/trackmate/util/config/GenericConfigPanelPreview.java
index 22975e21f..b6e269f16 100644
--- a/src/main/java/fiji/plugin/trackmate/util/config/GenericConfigPanelPreview.java
+++ b/src/main/java/fiji/plugin/trackmate/util/config/GenericConfigPanelPreview.java
@@ -5,10 +5,10 @@
import java.util.function.Supplier;
import org.scijava.ui.config.Configurator;
+import org.scijava.ui.config.visitors.gui.elements.StyleElement;
import org.scijava.ui.config.visitors.gui.elements.StyleElements.BoundedDoubleElement;
import org.scijava.ui.config.visitors.gui.elements.StyleElements.DoubleElement;
import org.scijava.ui.config.visitors.gui.elements.StyleElements.IntElement;
-import org.scijava.ui.config.visitors.gui.elements.StyleElements.StyleElement;
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.Settings;
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/PerEdgeFeatureColorGenerator.java b/src/main/java/fiji/plugin/trackmate/visualization/PerEdgeFeatureColorGenerator.java
index 7eebd01ac..555b4fa78 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/PerEdgeFeatureColorGenerator.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/PerEdgeFeatureColorGenerator.java
@@ -24,9 +24,9 @@
import java.awt.Color;
import org.jgrapht.graph.DefaultWeightedEdge;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
import fiji.plugin.trackmate.Model;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class PerEdgeFeatureColorGenerator implements TrackColorGenerator
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/PerSpotFeatureColorGenerator.java b/src/main/java/fiji/plugin/trackmate/visualization/PerSpotFeatureColorGenerator.java
index e19f219f0..e8c4f8539 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/PerSpotFeatureColorGenerator.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/PerSpotFeatureColorGenerator.java
@@ -24,10 +24,10 @@
import java.awt.Color;
import org.jgrapht.graph.DefaultWeightedEdge;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.Spot;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class PerSpotFeatureColorGenerator implements TrackColorGenerator
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/PerTrackFeatureColorGenerator.java b/src/main/java/fiji/plugin/trackmate/visualization/PerTrackFeatureColorGenerator.java
index 224158a22..cdf05954c 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/PerTrackFeatureColorGenerator.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/PerTrackFeatureColorGenerator.java
@@ -30,12 +30,12 @@
import java.util.Set;
import org.jgrapht.graph.DefaultWeightedEdge;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
import fiji.plugin.trackmate.FeatureModel;
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.TrackModel;
import fiji.plugin.trackmate.features.track.TrackIndexAnalyzer;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
/**
* A {@link TrackColorGenerator} that generate colors based on the whole track
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGenerator.java b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGenerator.java
index 41d32ce75..56216010d 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGenerator.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGenerator.java
@@ -23,8 +23,9 @@
import java.awt.Color;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
+
import fiji.plugin.trackmate.Spot;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class SpotColorGenerator implements FeatureColorGenerator< Spot >
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerEdgeFeature.java b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerEdgeFeature.java
index da70b6101..f2e743e86 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerEdgeFeature.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerEdgeFeature.java
@@ -25,10 +25,10 @@
import java.util.Set;
import org.jgrapht.graph.DefaultWeightedEdge;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.Spot;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class SpotColorGeneratorPerEdgeFeature implements FeatureColorGenerator< Spot >
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerTrackFeature.java b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerTrackFeature.java
index 03538ef8d..42e4ec85c 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerTrackFeature.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/SpotColorGeneratorPerTrackFeature.java
@@ -23,9 +23,10 @@
import java.awt.Color;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
+
import fiji.plugin.trackmate.Model;
import fiji.plugin.trackmate.Spot;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class SpotColorGeneratorPerTrackFeature implements FeatureColorGenerator< Spot >
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/WholeTrackFeatureColorGenerator.java b/src/main/java/fiji/plugin/trackmate/visualization/WholeTrackFeatureColorGenerator.java
index 9a529eda3..f5087f9cb 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/WholeTrackFeatureColorGenerator.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/WholeTrackFeatureColorGenerator.java
@@ -23,8 +23,9 @@
import java.awt.Color;
+import org.scijava.ui.config.visitors.gui.elements.colormap.Colormap;
+
import fiji.plugin.trackmate.Model;
-import fiji.plugin.trackmate.gui.displaysettings.Colormap;
public class WholeTrackFeatureColorGenerator implements FeatureColorGenerator< Integer >
{
diff --git a/src/main/java/fiji/plugin/trackmate/visualization/table/TablePanel.java b/src/main/java/fiji/plugin/trackmate/visualization/table/TablePanel.java
index 83d0ba021..e0a793af2 100644
--- a/src/main/java/fiji/plugin/trackmate/visualization/table/TablePanel.java
+++ b/src/main/java/fiji/plugin/trackmate/visualization/table/TablePanel.java
@@ -68,10 +68,11 @@
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
+import org.scijava.ui.config.visitors.gui.elements.ColorIcon;
+
import com.opencsv.CSVWriter;
import fiji.plugin.trackmate.gui.GuiUtils;
-import fiji.plugin.trackmate.gui.displaysettings.ColorIcon;
import fiji.plugin.trackmate.visualization.FeatureColorGenerator;
import gnu.trove.map.hash.TObjectIntHashMap;
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Algae.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Algae.lut
deleted file mode 100644
index 90f95a659..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Algae.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 17 36 20
-1 17 37 20
-2 18 37 21
-3 18 38 22
-4 18 39 22
-5 19 40 23
-6 19 41 24
-7 19 42 25
-8 20 43 25
-9 20 43 26
-10 20 44 27
-11 21 45 27
-12 21 46 28
-13 21 47 29
-14 21 48 29
-15 22 49 30
-16 22 49 31
-17 22 50 31
-18 22 51 32
-19 23 52 33
-20 23 53 33
-21 23 54 34
-22 23 55 35
-23 23 55 35
-24 23 56 36
-25 24 57 36
-26 24 58 37
-27 24 59 38
-28 24 60 38
-29 24 61 39
-30 24 61 40
-31 25 62 40
-32 25 63 41
-33 25 64 41
-34 25 65 42
-35 25 66 43
-36 25 67 43
-37 25 67 44
-38 25 68 44
-39 25 69 45
-40 25 70 46
-41 25 71 46
-42 25 72 47
-43 25 73 47
-44 25 73 48
-45 25 74 49
-46 25 75 49
-47 25 76 50
-48 25 77 50
-49 25 78 51
-50 25 79 51
-51 25 80 52
-52 25 80 52
-53 25 81 53
-54 25 82 54
-55 25 83 54
-56 25 84 55
-57 25 85 55
-58 25 86 56
-59 25 87 56
-60 24 87 57
-61 24 88 57
-62 24 89 58
-63 24 90 58
-64 24 91 59
-65 23 92 59
-66 23 93 60
-67 23 94 60
-68 23 94 61
-69 23 95 61
-70 22 96 62
-71 22 97 62
-72 22 98 63
-73 22 99 63
-74 21 100 63
-75 21 101 64
-76 21 102 64
-77 20 102 65
-78 20 103 65
-79 19 104 66
-80 19 105 66
-81 19 106 67
-82 18 107 67
-83 18 108 67
-84 18 109 68
-85 17 110 68
-86 17 110 69
-87 16 111 69
-88 16 112 69
-89 15 113 70
-90 15 114 70
-91 14 115 70
-92 14 116 71
-93 13 117 71
-94 13 118 72
-95 12 119 72
-96 12 119 72
-97 11 120 73
-98 11 121 73
-99 10 122 73
-100 10 123 74
-101 9 124 74
-102 9 125 74
-103 8 126 74
-104 8 127 75
-105 7 128 75
-106 7 129 75
-107 7 129 76
-108 7 130 76
-109 6 131 76
-110 6 132 76
-111 6 133 77
-112 6 134 77
-113 6 135 77
-114 7 136 77
-115 7 137 77
-116 7 138 78
-117 8 138 78
-118 8 139 78
-119 9 140 78
-120 9 141 78
-121 10 142 79
-122 11 143 79
-123 12 144 79
-124 13 145 79
-125 15 146 79
-126 16 146 79
-127 17 147 79
-128 19 148 80
-129 20 149 80
-130 21 150 80
-131 23 151 80
-132 25 152 80
-133 26 153 80
-134 28 153 80
-135 30 154 80
-136 31 155 80
-137 33 156 81
-138 35 157 81
-139 37 157 81
-140 39 158 81
-141 41 159 81
-142 43 160 81
-143 45 161 81
-144 47 161 82
-145 50 162 82
-146 52 163 82
-147 54 164 82
-148 56 164 83
-149 58 165 83
-150 61 166 84
-151 63 167 84
-152 65 167 84
-153 67 168 85
-154 69 169 86
-155 71 169 86
-156 74 170 87
-157 76 171 87
-158 78 171 88
-159 80 172 89
-160 82 173 90
-161 83 174 90
-162 85 174 91
-163 87 175 92
-164 89 176 93
-165 91 176 94
-166 93 177 95
-167 94 178 96
-168 96 178 96
-169 98 179 97
-170 100 180 98
-171 101 180 99
-172 103 181 100
-173 104 182 101
-174 106 183 102
-175 108 183 103
-176 109 184 104
-177 111 185 105
-178 112 185 107
-179 114 186 108
-180 115 187 109
-181 117 188 110
-182 118 188 111
-183 120 189 112
-184 121 190 113
-185 123 191 114
-186 124 191 115
-187 126 192 117
-188 127 193 118
-189 129 194 119
-190 130 194 120
-191 132 195 121
-192 133 196 122
-193 134 197 124
-194 136 197 125
-195 137 198 126
-196 139 199 127
-197 140 200 128
-198 141 200 130
-199 143 201 131
-200 144 202 132
-201 145 203 133
-202 147 203 135
-203 148 204 136
-204 149 205 137
-205 151 206 138
-206 152 207 140
-207 153 207 141
-208 155 208 142
-209 156 209 143
-210 157 210 145
-211 159 211 146
-212 160 211 147
-213 161 212 149
-214 163 213 150
-215 164 214 151
-216 165 215 153
-217 166 215 154
-218 168 216 155
-219 169 217 156
-220 170 218 158
-221 172 219 159
-222 173 219 160
-223 174 220 162
-224 175 221 163
-225 177 222 165
-226 178 223 166
-227 179 224 167
-228 180 225 169
-229 182 225 170
-230 183 226 171
-231 184 227 173
-232 186 228 174
-233 187 229 176
-234 188 230 177
-235 189 231 178
-236 191 231 180
-237 192 232 181
-238 193 233 183
-239 194 234 184
-240 196 235 185
-241 197 236 187
-242 198 237 188
-243 199 238 190
-244 201 239 191
-245 202 239 193
-246 203 240 194
-247 204 241 195
-248 206 242 197
-249 207 243 198
-250 208 244 200
-251 209 245 201
-252 211 246 203
-253 212 247 204
-254 213 248 206
-255 214 249 207
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Amp.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Amp.lut
deleted file mode 100644
index 401695c0e..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Amp.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 60 9 17
-1 61 9 18
-2 62 9 19
-3 63 9 19
-4 65 10 20
-5 66 10 20
-6 67 10 21
-7 69 10 22
-8 70 11 22
-9 71 11 23
-10 72 11 24
-11 74 11 24
-12 75 12 25
-13 76 12 25
-14 77 12 26
-15 79 12 27
-16 80 12 27
-17 81 13 28
-18 83 13 28
-19 84 13 29
-20 85 13 29
-21 86 13 30
-22 88 13 30
-23 89 13 31
-24 90 14 32
-25 92 14 32
-26 93 14 32
-27 94 14 33
-28 96 14 33
-29 97 14 34
-30 98 14 34
-31 100 14 35
-32 101 14 35
-33 102 14 36
-34 104 14 36
-35 105 14 37
-36 106 14 37
-37 108 14 37
-38 109 14 38
-39 110 14 38
-40 112 14 38
-41 113 14 39
-42 114 14 39
-43 116 14 39
-44 117 14 39
-45 118 14 40
-46 120 14 40
-47 121 14 40
-48 122 14 40
-49 124 14 40
-50 125 13 41
-51 126 13 41
-52 128 13 41
-53 129 14 41
-54 130 14 41
-55 132 14 41
-56 133 14 41
-57 134 14 41
-58 135 14 41
-59 137 14 41
-60 138 14 41
-61 139 15 41
-62 141 15 40
-63 142 16 40
-64 143 16 40
-65 144 16 40
-66 145 17 40
-67 147 18 40
-68 148 18 40
-69 149 19 39
-70 150 19 39
-71 151 20 39
-72 152 21 39
-73 154 22 38
-74 155 23 38
-75 156 24 38
-76 157 24 38
-77 158 25 38
-78 159 26 37
-79 160 27 37
-80 161 28 37
-81 162 30 37
-82 163 31 37
-83 164 32 36
-84 165 33 36
-85 166 34 36
-86 166 35 36
-87 167 36 36
-88 168 37 36
-89 169 39 36
-90 170 40 36
-91 171 41 36
-92 172 42 36
-93 172 44 36
-94 173 45 36
-95 174 46 36
-96 175 47 36
-97 175 49 36
-98 176 50 36
-99 177 51 37
-100 177 53 37
-101 178 54 37
-102 179 55 38
-103 179 57 38
-104 180 58 38
-105 180 59 39
-106 181 61 40
-107 181 62 40
-108 182 63 41
-109 183 65 41
-110 183 66 42
-111 184 67 43
-112 184 69 44
-113 185 70 44
-114 185 71 45
-115 186 73 46
-116 186 74 47
-117 187 75 48
-118 187 76 49
-119 188 78 50
-120 188 79 51
-121 188 80 52
-122 189 81 53
-123 189 83 54
-124 190 84 55
-125 190 85 56
-126 191 86 57
-127 191 88 58
-128 192 89 60
-129 192 90 61
-130 192 91 62
-131 193 93 63
-132 193 94 64
-133 194 95 65
-134 194 96 67
-135 194 97 68
-136 195 99 69
-137 195 100 70
-138 196 101 71
-139 196 102 73
-140 196 103 74
-141 197 105 75
-142 197 106 77
-143 198 107 78
-144 198 108 79
-145 198 109 80
-146 199 110 82
-147 199 112 83
-148 199 113 84
-149 200 114 86
-150 200 115 87
-151 201 116 88
-152 201 117 90
-153 201 119 91
-154 202 120 92
-155 202 121 94
-156 202 122 95
-157 203 123 96
-158 203 124 98
-159 204 125 99
-160 204 127 100
-161 204 128 102
-162 205 129 103
-163 205 130 105
-164 205 131 106
-165 206 132 107
-166 206 133 109
-167 206 135 110
-168 207 136 111
-169 207 137 113
-170 207 138 114
-171 208 139 116
-172 208 140 117
-173 208 141 119
-174 209 143 120
-175 209 144 121
-176 209 145 123
-177 210 146 124
-178 210 147 126
-179 211 148 127
-180 211 149 128
-181 211 151 130
-182 212 152 131
-183 212 153 133
-184 212 154 134
-185 213 155 136
-186 213 156 137
-187 213 157 138
-188 214 158 140
-189 214 160 141
-190 214 161 143
-191 215 162 144
-192 215 163 146
-193 215 164 147
-194 216 165 148
-195 216 166 150
-196 216 168 151
-197 217 169 153
-198 217 170 154
-199 217 171 156
-200 218 172 157
-201 218 173 159
-202 218 174 160
-203 219 176 161
-204 219 177 163
-205 219 178 164
-206 220 179 166
-207 220 180 167
-208 220 181 169
-209 221 182 170
-210 221 184 172
-211 222 185 173
-212 222 186 174
-213 222 187 176
-214 223 188 177
-215 223 189 179
-216 223 191 180
-217 224 192 182
-218 224 193 183
-219 224 194 185
-220 225 195 186
-221 225 196 188
-222 226 198 189
-223 226 199 190
-224 226 200 192
-225 227 201 193
-226 227 202 195
-227 228 203 196
-228 228 204 198
-229 228 206 199
-230 229 207 200
-231 229 208 202
-232 230 209 203
-233 230 210 205
-234 230 212 206
-235 231 213 208
-236 231 214 209
-237 232 215 211
-238 232 216 212
-239 233 217 213
-240 233 219 215
-241 233 220 216
-242 234 221 218
-243 234 222 219
-244 235 223 220
-245 235 225 222
-246 236 226 223
-247 236 227 225
-248 237 228 226
-249 237 229 227
-250 238 231 229
-251 238 232 230
-252 239 233 232
-253 240 234 233
-254 240 235 234
-255 241 236 236
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Balance.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Balance.lut
deleted file mode 100644
index 3e39ff1da..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Balance.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 23 28 66
-1 24 29 69
-2 25 31 72
-3 26 32 75
-4 27 33 78
-5 28 35 81
-6 29 36 85
-7 30 37 88
-8 31 39 91
-9 32 40 94
-10 33 41 97
-11 34 43 101
-12 35 44 104
-13 35 45 107
-14 36 47 111
-15 37 48 114
-16 37 49 118
-17 38 51 121
-18 39 52 125
-19 39 53 128
-20 40 55 132
-21 40 56 136
-22 40 57 139
-23 41 58 143
-24 41 60 147
-25 41 61 150
-26 41 63 154
-27 40 64 158
-28 40 65 161
-29 39 67 165
-30 39 68 168
-31 38 70 172
-32 36 72 175
-33 35 74 178
-34 33 75 181
-35 30 77 184
-36 27 80 186
-37 24 82 187
-38 21 84 188
-39 18 86 189
-40 15 89 189
-41 13 91 190
-42 11 93 190
-43 10 95 189
-44 9 98 189
-45 10 100 189
-46 11 102 189
-47 12 104 188
-48 14 106 188
-49 16 108 188
-50 19 110 187
-51 21 112 187
-52 24 114 187
-53 27 116 187
-54 29 117 186
-55 32 119 186
-56 35 121 186
-57 37 123 186
-58 40 125 186
-59 43 127 186
-60 45 128 185
-61 48 130 185
-62 51 132 185
-63 53 134 185
-64 56 135 185
-65 59 137 185
-66 61 139 185
-67 64 140 185
-68 66 142 185
-69 69 144 185
-70 72 145 185
-71 74 147 186
-72 77 149 186
-73 80 150 186
-74 83 152 186
-75 86 154 186
-76 89 155 186
-77 91 157 186
-78 94 158 187
-79 97 160 187
-80 100 162 187
-81 104 163 188
-82 107 165 188
-83 110 166 188
-84 113 168 189
-85 116 169 189
-86 119 171 190
-87 123 172 190
-88 126 173 191
-89 129 175 191
-90 132 176 192
-91 135 178 193
-92 139 179 193
-93 142 181 194
-94 145 182 195
-95 148 184 196
-96 151 185 197
-97 154 186 197
-98 157 188 198
-99 160 189 199
-100 163 191 200
-101 166 192 201
-102 169 194 202
-103 172 195 203
-104 175 197 204
-105 178 198 206
-106 181 200 207
-107 184 202 208
-108 187 203 209
-109 190 205 210
-110 193 206 212
-111 196 208 213
-112 199 210 214
-113 202 211 215
-114 204 213 217
-115 207 214 218
-116 210 216 219
-117 213 218 221
-118 216 220 222
-119 219 221 223
-120 221 223 225
-121 224 225 226
-122 227 227 228
-123 230 228 229
-124 232 230 231
-125 235 232 232
-126 238 234 234
-127 240 236 235
-128 240 236 235
-129 239 233 232
-130 238 231 230
-131 237 229 227
-132 236 226 224
-133 235 224 221
-134 234 222 218
-135 233 219 215
-136 232 217 213
-137 231 214 210
-138 231 212 207
-139 230 210 204
-140 229 207 201
-141 228 205 198
-142 227 203 195
-143 227 200 192
-144 226 198 190
-145 225 196 187
-146 224 193 184
-147 223 191 181
-148 223 189 178
-149 222 186 175
-150 221 184 172
-151 221 182 169
-152 220 179 166
-153 219 177 163
-154 218 175 161
-155 218 173 158
-156 217 170 155
-157 216 168 152
-158 216 166 149
-159 215 163 146
-160 214 161 143
-161 214 159 140
-162 213 157 138
-163 212 154 135
-164 212 152 132
-165 211 150 129
-166 210 148 126
-167 210 145 123
-168 209 143 120
-169 208 141 118
-170 208 138 115
-171 207 136 112
-172 206 134 109
-173 205 132 106
-174 205 129 104
-175 204 127 101
-176 203 125 98
-177 203 122 95
-178 202 120 93
-179 201 118 90
-180 200 115 87
-181 200 113 85
-182 199 111 82
-183 198 108 79
-184 197 106 77
-185 197 104 74
-186 196 101 72
-187 195 99 69
-188 194 96 67
-189 193 94 64
-190 192 92 62
-191 192 89 60
-192 191 87 58
-193 190 84 55
-194 189 82 53
-195 188 79 51
-196 187 77 49
-197 186 74 47
-198 185 72 45
-199 184 69 44
-200 183 66 42
-201 182 64 41
-202 181 61 40
-203 180 58 39
-204 179 56 38
-205 177 53 37
-206 176 50 36
-207 175 48 36
-208 173 45 36
-209 172 43 36
-210 170 40 36
-211 168 38 36
-212 167 35 36
-213 165 33 36
-214 163 31 37
-215 161 29 37
-216 159 27 37
-217 157 25 38
-218 155 23 38
-219 153 21 39
-220 150 20 39
-221 148 18 40
-222 146 17 40
-223 143 16 40
-224 141 15 40
-225 138 15 41
-226 136 14 41
-227 133 14 41
-228 130 14 41
-229 128 13 41
-230 125 13 41
-231 122 14 40
-232 120 14 40
-233 117 14 39
-234 114 14 39
-235 112 14 38
-236 109 14 38
-237 106 14 37
-238 104 14 36
-239 101 14 35
-240 98 14 34
-241 96 14 33
-242 93 14 33
-243 90 14 32
-244 88 13 30
-245 85 13 29
-246 83 13 28
-247 80 12 27
-248 77 12 26
-249 75 12 25
-250 72 11 24
-251 70 11 22
-252 67 10 21
-253 65 10 20
-254 62 9 19
-255 60 9 17
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Curl.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Curl.lut
deleted file mode 100644
index 820059123..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Curl.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 20 29 67
-1 21 31 68
-2 21 33 69
-3 22 35 70
-4 22 37 71
-5 23 39 72
-6 23 41 74
-7 24 43 75
-8 24 45 76
-9 24 47 77
-10 25 48 78
-11 25 50 79
-12 25 52 80
-13 26 54 82
-14 26 56 83
-15 26 58 84
-16 27 60 85
-17 27 61 86
-18 27 63 87
-19 27 65 89
-20 27 67 90
-21 27 69 91
-22 28 71 92
-23 28 72 93
-24 28 74 94
-25 28 76 96
-26 28 78 97
-27 27 80 98
-28 27 82 99
-29 27 83 100
-30 27 85 101
-31 27 87 102
-32 26 89 103
-33 26 91 105
-34 26 93 106
-35 25 95 107
-36 25 96 108
-37 24 98 109
-38 23 100 110
-39 23 102 111
-40 22 104 112
-41 21 106 113
-42 21 108 114
-43 20 110 115
-44 19 112 115
-45 18 113 116
-46 18 115 117
-47 17 117 118
-48 17 119 119
-49 16 121 119
-50 16 123 120
-51 16 125 121
-52 17 127 122
-53 17 128 122
-54 18 130 123
-55 20 132 123
-56 21 134 124
-57 23 136 124
-58 26 138 125
-59 28 139 125
-60 31 141 126
-61 34 143 126
-62 37 145 126
-63 41 146 127
-64 44 148 127
-65 48 150 127
-66 52 151 128
-67 56 153 128
-68 60 154 129
-69 64 156 129
-70 68 157 130
-71 72 159 130
-72 76 160 131
-73 80 162 131
-74 84 163 132
-75 88 165 133
-76 92 166 133
-77 95 168 134
-78 99 169 135
-79 103 170 136
-80 107 172 137
-81 111 173 138
-82 115 174 140
-83 118 176 141
-84 122 177 142
-85 125 178 143
-86 129 180 145
-87 133 181 146
-88 136 183 148
-89 140 184 150
-90 143 185 151
-91 146 187 153
-92 150 188 155
-93 153 189 156
-94 156 191 158
-95 160 192 160
-96 163 194 162
-97 166 195 164
-98 169 196 166
-99 173 198 169
-100 176 199 171
-101 179 201 173
-102 182 202 175
-103 185 204 177
-104 188 205 180
-105 191 207 182
-106 194 208 185
-107 197 210 187
-108 200 212 190
-109 203 213 192
-110 206 215 195
-111 209 216 197
-112 212 218 200
-113 214 220 203
-114 217 221 205
-115 220 223 208
-116 223 225 211
-117 226 226 214
-118 229 228 216
-119 231 230 219
-120 234 232 222
-121 237 233 225
-122 240 235 228
-123 243 237 231
-124 245 239 234
-125 248 241 237
-126 251 243 240
-127 253 245 243
-128 253 245 243
-129 251 242 240
-130 250 240 237
-131 249 237 233
-132 248 235 230
-133 247 233 227
-134 246 230 223
-135 245 228 220
-136 244 225 216
-137 243 223 213
-138 242 220 210
-139 241 218 206
-140 240 215 203
-141 239 213 200
-142 238 210 196
-143 237 208 193
-144 236 205 190
-145 236 203 187
-146 235 200 183
-147 234 198 180
-148 233 195 177
-149 233 193 174
-150 232 190 171
-151 231 188 168
-152 231 186 165
-153 230 183 162
-154 229 181 159
-155 229 178 156
-156 228 176 153
-157 227 173 150
-158 227 171 147
-159 226 168 145
-160 225 166 142
-161 225 163 139
-162 224 160 137
-163 223 158 134
-164 223 155 132
-165 222 153 129
-166 221 150 127
-167 221 148 125
-168 220 145 123
-169 219 143 121
-170 219 140 119
-171 218 138 117
-172 217 135 115
-173 216 133 113
-174 215 130 112
-175 215 128 110
-176 214 125 109
-177 213 123 107
-178 212 120 106
-179 211 118 105
-180 210 115 104
-181 209 113 103
-182 208 111 102
-183 206 108 101
-184 205 106 100
-185 204 104 100
-186 203 101 99
-187 201 99 98
-188 200 97 98
-189 199 94 97
-190 197 92 97
-191 196 90 97
-192 194 88 96
-193 193 86 96
-194 191 83 96
-195 189 81 96
-196 188 79 96
-197 186 77 96
-198 184 75 96
-199 183 73 95
-200 181 71 95
-201 179 69 95
-202 177 67 95
-203 176 65 95
-204 174 63 95
-205 172 61 96
-206 170 60 96
-207 168 58 96
-208 166 56 96
-209 164 54 96
-210 162 52 96
-211 160 51 96
-212 158 49 96
-213 156 47 96
-214 154 45 96
-215 151 44 96
-216 149 42 96
-217 147 41 96
-218 145 39 96
-219 143 38 96
-220 140 36 96
-221 138 35 96
-222 136 33 96
-223 133 32 95
-224 131 31 95
-225 129 30 95
-226 126 28 95
-227 124 27 94
-228 121 26 94
-229 119 25 93
-230 116 25 93
-231 114 24 92
-232 111 23 91
-233 109 22 90
-234 106 22 89
-235 103 21 88
-236 101 21 87
-237 98 20 86
-238 95 20 85
-239 93 20 83
-240 90 19 82
-241 87 19 80
-242 85 19 79
-243 82 18 77
-244 79 18 75
-245 77 18 74
-246 74 17 72
-247 72 17 70
-248 69 16 68
-249 66 16 66
-250 64 16 64
-251 61 15 61
-252 59 14 59
-253 56 14 57
-254 54 13 55
-255 51 13 53
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Deep.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Deep.lut
deleted file mode 100644
index 8da16d49f..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Deep.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 39 26 44
-1 40 26 45
-2 41 27 46
-3 41 28 48
-4 42 29 49
-5 43 29 50
-6 43 30 52
-7 44 31 53
-8 45 32 55
-9 45 32 56
-10 46 33 57
-11 47 34 59
-12 47 35 60
-13 48 35 62
-14 49 36 63
-15 49 37 65
-16 50 38 66
-17 50 38 68
-18 51 39 69
-19 52 40 71
-20 52 41 72
-21 53 41 74
-22 53 42 75
-23 54 43 77
-24 55 43 78
-25 55 44 80
-26 56 45 82
-27 56 46 83
-28 57 46 85
-29 57 47 86
-30 58 48 88
-31 58 48 90
-32 59 49 91
-33 59 50 93
-34 60 51 95
-35 60 51 96
-36 61 52 98
-37 61 53 99
-38 61 54 101
-39 62 54 103
-40 62 55 105
-41 62 56 106
-42 63 57 108
-43 63 57 110
-44 63 58 111
-45 64 59 113
-46 64 60 115
-47 64 61 116
-48 64 61 118
-49 65 62 120
-50 65 63 121
-51 65 64 123
-52 65 65 124
-53 65 66 126
-54 65 67 127
-55 65 68 129
-56 65 69 130
-57 65 69 132
-58 65 70 133
-59 65 71 134
-60 64 72 135
-61 64 74 136
-62 64 75 137
-63 64 76 138
-64 64 77 139
-65 63 78 140
-66 63 79 141
-67 63 80 142
-68 63 81 142
-69 62 82 143
-70 62 83 143
-71 62 84 144
-72 62 85 144
-73 62 87 145
-74 62 88 145
-75 61 89 145
-76 61 90 146
-77 61 91 146
-78 61 92 146
-79 61 93 147
-80 61 94 147
-81 61 95 147
-82 61 96 147
-83 61 97 148
-84 61 98 148
-85 61 99 148
-86 61 100 148
-87 61 101 149
-88 61 102 149
-89 62 103 149
-90 62 105 149
-91 62 106 149
-92 62 107 150
-93 62 108 150
-94 62 109 150
-95 62 110 150
-96 63 111 150
-97 63 112 151
-98 63 113 151
-99 63 114 151
-100 64 115 151
-101 64 116 151
-102 64 117 152
-103 64 118 152
-104 64 119 152
-105 65 120 152
-106 65 121 153
-107 65 122 153
-108 66 123 153
-109 66 124 153
-110 66 125 153
-111 66 126 154
-112 67 127 154
-113 67 128 154
-114 67 129 154
-115 68 129 154
-116 68 130 155
-117 68 131 155
-118 69 132 155
-119 69 133 155
-120 69 134 156
-121 70 135 156
-122 70 136 156
-123 70 137 156
-124 71 138 157
-125 71 139 157
-126 71 140 157
-127 72 141 157
-128 72 142 157
-129 72 143 158
-130 73 144 158
-131 73 145 158
-132 73 146 158
-133 74 147 159
-134 74 148 159
-135 74 149 159
-136 75 150 159
-137 75 151 159
-138 75 152 160
-139 76 153 160
-140 76 154 160
-141 76 155 160
-142 77 156 160
-143 77 157 161
-144 78 159 161
-145 78 160 161
-146 78 161 161
-147 79 162 161
-148 79 163 162
-149 80 164 162
-150 80 165 162
-151 81 166 162
-152 81 167 162
-153 81 168 162
-154 82 169 162
-155 82 170 163
-156 83 171 163
-157 83 172 163
-158 84 173 163
-159 85 174 163
-160 85 175 163
-161 86 176 163
-162 86 177 163
-163 87 178 163
-164 88 179 163
-165 88 180 163
-166 89 181 163
-167 90 182 163
-168 91 183 163
-169 92 184 163
-170 92 185 163
-171 93 186 163
-172 94 187 163
-173 95 188 163
-174 96 189 163
-175 97 190 163
-176 98 191 163
-177 99 192 163
-178 100 193 163
-179 102 194 163
-180 103 195 163
-181 104 196 163
-182 105 197 163
-183 107 198 163
-184 108 199 163
-185 110 200 163
-186 111 201 163
-187 113 202 163
-188 114 202 163
-189 116 203 163
-190 118 204 163
-191 119 205 162
-192 121 206 162
-193 123 207 162
-194 125 208 162
-195 127 209 162
-196 129 209 162
-197 131 210 162
-198 133 211 162
-199 135 212 163
-200 137 213 163
-201 139 213 163
-202 141 214 163
-203 143 215 163
-204 145 216 163
-205 147 216 163
-206 149 217 164
-207 152 218 164
-208 154 219 164
-209 156 219 165
-210 158 220 165
-211 160 221 165
-212 163 222 166
-213 165 222 166
-214 167 223 167
-215 169 224 167
-216 171 225 168
-217 174 225 168
-218 176 226 169
-219 178 227 169
-220 180 227 170
-221 182 228 171
-222 184 229 171
-223 187 230 172
-224 189 230 173
-225 191 231 173
-226 193 232 174
-227 195 232 175
-228 197 233 176
-229 199 234 176
-230 201 235 177
-231 204 235 178
-232 206 236 179
-233 208 237 180
-234 210 237 181
-235 212 238 182
-236 214 239 183
-237 216 240 184
-238 218 240 185
-239 220 241 186
-240 222 242 187
-241 224 242 188
-242 226 243 189
-243 228 244 190
-244 230 245 191
-245 232 245 192
-246 235 246 193
-247 237 247 194
-248 239 248 195
-249 241 248 196
-250 243 249 198
-251 245 250 199
-252 247 251 200
-253 249 252 201
-254 251 252 202
-255 253 253 204
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Delta.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Delta.lut
deleted file mode 100644
index 63d48561c..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Delta.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 16 31 63
-1 18 32 66
-2 19 34 69
-3 20 35 73
-4 22 37 76
-5 23 38 79
-6 24 39 82
-7 25 41 86
-8 27 42 89
-9 28 43 92
-10 29 45 96
-11 30 46 99
-12 31 47 103
-13 32 48 107
-14 33 50 110
-15 34 51 114
-16 35 52 118
-17 36 53 122
-18 37 55 125
-19 37 56 129
-20 38 57 133
-21 38 59 137
-22 38 60 141
-23 38 62 144
-24 37 64 148
-25 35 66 150
-26 34 68 152
-27 33 70 153
-28 31 72 154
-29 30 75 155
-30 29 77 155
-31 29 79 156
-32 28 81 156
-33 27 83 157
-34 27 86 157
-35 27 88 157
-36 26 90 157
-37 26 92 158
-38 26 94 158
-39 26 96 158
-40 27 98 159
-41 27 100 159
-42 27 102 159
-43 28 104 160
-44 28 106 160
-45 29 108 160
-46 30 110 161
-47 31 112 161
-48 31 114 161
-49 32 116 162
-50 33 118 162
-51 34 120 163
-52 35 121 163
-53 36 123 164
-54 38 125 164
-55 39 127 165
-56 40 129 165
-57 41 131 165
-58 42 133 166
-59 44 135 166
-60 45 137 167
-61 46 139 167
-62 48 141 168
-63 49 142 168
-64 51 144 169
-65 53 146 169
-66 54 148 170
-67 56 150 170
-68 58 152 171
-69 60 154 171
-70 62 156 172
-71 64 157 172
-72 66 159 173
-73 68 161 173
-74 71 163 174
-75 73 165 174
-76 76 167 174
-77 79 168 175
-78 82 170 175
-79 86 172 176
-80 89 173 176
-81 93 175 176
-82 96 177 177
-83 100 178 177
-84 104 180 178
-85 108 181 179
-86 112 183 179
-87 116 184 180
-88 120 185 181
-89 124 187 182
-90 128 188 183
-91 132 190 184
-92 136 191 185
-93 140 193 186
-94 143 194 187
-95 147 196 188
-96 151 197 190
-97 154 198 191
-98 158 200 192
-99 162 201 193
-100 165 203 195
-101 169 204 196
-102 172 206 197
-103 175 208 199
-104 179 209 200
-105 182 211 202
-106 185 212 203
-107 189 214 204
-108 192 215 206
-109 195 217 207
-110 199 219 209
-111 202 220 210
-112 205 222 212
-113 208 224 213
-114 211 226 215
-115 214 227 216
-116 217 229 218
-117 221 231 219
-118 224 233 220
-119 227 235 222
-120 230 237 223
-121 233 238 224
-122 236 240 225
-123 239 242 226
-124 243 244 227
-125 246 246 228
-126 249 248 229
-127 253 250 229
-128 254 252 203
-129 253 249 199
-130 251 247 195
-131 250 244 191
-132 249 242 187
-133 247 240 182
-134 246 237 178
-135 245 235 174
-136 243 233 169
-137 242 230 165
-138 241 228 161
-139 239 226 156
-140 238 223 152
-141 236 221 148
-142 235 219 143
-143 233 217 139
-144 232 215 135
-145 230 213 130
-146 229 210 126
-147 227 208 122
-148 226 206 117
-149 224 204 113
-150 222 202 109
-151 220 201 104
-152 218 199 100
-153 216 197 96
-154 214 195 91
-155 212 193 87
-156 210 192 83
-157 207 190 79
-158 205 188 75
-159 203 187 71
-160 200 185 67
-161 197 184 63
-162 195 182 59
-163 192 181 56
-164 189 179 52
-165 186 178 48
-166 183 177 45
-167 180 175 42
-168 177 174 39
-169 174 173 35
-170 170 172 32
-171 167 170 29
-172 164 169 27
-173 160 168 24
-174 157 167 21
-175 154 166 19
-176 150 164 16
-177 147 163 14
-178 143 162 12
-179 140 161 10
-180 136 160 8
-181 133 158 7
-182 129 157 6
-183 126 156 5
-184 122 155 5
-185 119 153 5
-186 115 152 5
-187 112 151 6
-188 108 150 7
-189 104 149 8
-190 101 147 9
-191 97 146 11
-192 93 145 12
-193 90 143 14
-194 86 142 15
-195 82 141 17
-196 79 139 19
-197 75 138 20
-198 71 137 22
-199 68 135 23
-200 64 134 25
-201 61 132 26
-202 57 131 28
-203 54 129 29
-204 50 128 30
-205 47 126 32
-206 43 125 33
-207 40 123 34
-208 37 122 35
-209 34 120 36
-210 31 118 37
-211 28 117 38
-212 25 115 39
-213 23 113 40
-214 20 112 40
-215 18 110 41
-216 16 108 42
-217 14 106 42
-218 13 105 43
-219 12 103 43
-220 11 101 44
-221 10 99 44
-222 10 97 44
-223 11 95 44
-224 11 94 44
-225 12 92 44
-226 12 90 44
-227 13 88 44
-228 14 86 44
-229 15 84 44
-230 16 82 43
-231 17 80 43
-232 18 78 43
-233 19 76 42
-234 20 75 42
-235 20 73 41
-236 21 71 40
-237 22 69 40
-238 22 67 39
-239 23 65 38
-240 23 63 37
-241 24 61 36
-242 24 59 35
-243 24 57 34
-244 25 55 33
-245 25 53 32
-246 25 52 31
-247 25 50 30
-248 25 48 28
-249 25 46 27
-250 24 44 26
-251 24 42 24
-252 24 40 23
-253 23 38 21
-254 23 36 20
-255 23 35 18
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Dense.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Dense.lut
deleted file mode 100644
index 8dc548f29..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Dense.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 54 14 36
-1 55 14 37
-2 56 14 38
-3 57 15 39
-4 59 15 40
-5 60 15 42
-6 61 15 43
-7 62 16 44
-8 64 16 45
-9 65 16 47
-10 66 16 48
-11 67 17 49
-12 68 17 50
-13 69 17 52
-14 71 17 53
-15 72 18 55
-16 73 18 56
-17 74 18 57
-18 75 18 59
-19 76 19 60
-20 77 19 62
-21 78 19 63
-22 79 19 65
-23 80 20 66
-24 81 20 68
-25 82 20 69
-26 83 21 71
-27 84 21 73
-28 85 22 74
-29 86 22 76
-30 87 22 77
-31 88 23 79
-32 89 23 81
-33 90 24 82
-34 91 24 84
-35 92 25 86
-36 92 25 87
-37 93 26 89
-38 94 26 91
-39 95 27 92
-40 96 28 94
-41 96 28 96
-42 97 29 97
-43 98 29 99
-44 99 30 101
-45 99 31 102
-46 100 31 104
-47 101 32 106
-48 101 33 107
-49 102 34 109
-50 103 34 110
-51 103 35 112
-52 104 36 114
-53 105 37 115
-54 105 37 117
-55 106 38 119
-56 106 39 120
-57 107 40 122
-58 107 41 123
-59 108 42 125
-60 108 42 127
-61 109 43 128
-62 109 44 130
-63 110 45 131
-64 110 46 133
-65 111 47 134
-66 111 48 136
-67 112 49 138
-68 112 49 139
-69 113 50 141
-70 113 51 142
-71 113 52 144
-72 114 53 145
-73 114 54 147
-74 115 55 148
-75 115 56 150
-76 115 57 151
-77 116 58 153
-78 116 59 154
-79 116 60 155
-80 116 61 157
-81 117 62 158
-82 117 63 160
-83 117 64 161
-84 118 65 163
-85 118 66 164
-86 118 67 165
-87 118 68 167
-88 119 69 168
-89 119 70 170
-90 119 71 171
-91 119 72 172
-92 119 73 174
-93 119 74 175
-94 120 75 176
-95 120 76 178
-96 120 77 179
-97 120 78 180
-98 120 80 181
-99 120 81 183
-100 120 82 184
-101 120 83 185
-102 120 84 186
-103 121 85 188
-104 121 86 189
-105 121 87 190
-106 121 88 191
-107 121 89 192
-108 121 91 194
-109 121 92 195
-110 121 93 196
-111 121 94 197
-112 121 95 198
-113 121 96 199
-114 121 97 200
-115 120 99 201
-116 120 100 202
-117 120 101 203
-118 120 102 204
-119 120 103 205
-120 120 104 206
-121 120 105 207
-122 120 107 208
-123 120 108 209
-124 119 109 210
-125 119 110 211
-126 119 111 212
-127 119 113 213
-128 119 114 213
-129 119 115 214
-130 118 116 215
-131 118 117 216
-132 118 119 216
-133 118 120 217
-134 118 121 218
-135 118 122 218
-136 117 123 219
-137 117 125 220
-138 117 126 220
-139 117 127 221
-140 117 128 221
-141 116 129 222
-142 116 131 222
-143 116 132 223
-144 116 133 223
-145 116 134 224
-146 116 135 224
-147 115 137 225
-148 115 138 225
-149 115 139 225
-150 115 140 226
-151 115 141 226
-152 115 143 226
-153 115 144 227
-154 115 145 227
-155 115 146 227
-156 115 147 227
-157 115 148 227
-158 115 150 227
-159 115 151 228
-160 115 152 228
-161 115 153 228
-162 115 154 228
-163 116 155 228
-164 116 156 228
-165 116 158 228
-166 116 159 228
-167 117 160 228
-168 117 161 228
-169 117 162 228
-170 118 163 228
-171 118 164 228
-172 119 165 228
-173 119 166 228
-174 120 167 228
-175 120 169 228
-176 121 170 228
-177 122 171 228
-178 122 172 228
-179 123 173 227
-180 124 174 227
-181 124 175 227
-182 125 176 227
-183 126 177 227
-184 127 178 227
-185 128 179 227
-186 129 180 227
-187 130 181 227
-188 131 182 227
-189 132 183 227
-190 133 184 226
-191 134 185 226
-192 135 186 226
-193 136 187 226
-194 137 188 226
-195 138 189 226
-196 139 190 226
-197 140 190 226
-198 141 191 226
-199 143 192 226
-200 144 193 226
-201 145 194 226
-202 146 195 226
-203 148 196 226
-204 149 197 226
-205 150 198 226
-206 152 199 226
-207 153 200 226
-208 154 201 226
-209 156 201 226
-210 157 202 226
-211 159 203 226
-212 160 204 226
-213 161 205 226
-214 163 206 226
-215 164 207 226
-216 166 208 226
-217 167 209 226
-218 169 209 226
-219 170 210 226
-220 172 211 227
-221 173 212 227
-222 175 213 227
-223 176 214 227
-224 178 215 227
-225 179 215 227
-226 181 216 228
-227 183 217 228
-228 184 218 228
-229 186 219 228
-230 187 220 228
-231 189 220 229
-232 191 221 229
-233 192 222 229
-234 194 223 230
-235 196 224 230
-236 197 225 230
-237 199 225 231
-238 201 226 231
-239 202 227 231
-240 204 228 232
-241 206 229 232
-242 207 230 233
-243 209 230 233
-244 211 231 234
-245 212 232 234
-246 214 233 235
-247 216 234 235
-248 217 235 236
-249 219 235 236
-250 221 236 237
-251 223 237 237
-252 224 238 238
-253 226 239 239
-254 228 239 239
-255 230 240 240
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Gray.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Gray.lut
deleted file mode 100644
index 685dcfc3a..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Gray.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 0 0 0
-1 0 0 0
-2 0 0 0
-3 0 0 0
-4 0 0 0
-5 1 1 1
-6 1 1 1
-7 2 1 2
-8 2 2 2
-9 3 3 3
-10 3 3 3
-11 4 4 4
-12 5 5 5
-13 6 6 6
-14 7 7 7
-15 8 7 7
-16 9 8 8
-17 10 10 9
-18 11 11 11
-19 12 12 12
-20 13 13 13
-21 14 14 14
-22 15 15 15
-23 16 16 16
-24 17 17 17
-25 18 18 18
-26 19 19 19
-27 20 20 20
-28 21 21 21
-29 22 22 22
-30 23 23 23
-31 24 24 24
-32 25 25 25
-33 26 26 26
-34 27 27 27
-35 28 28 28
-36 29 29 28
-37 30 30 29
-38 31 30 30
-39 32 31 31
-40 33 32 32
-41 34 33 33
-42 35 34 34
-43 36 35 35
-44 37 36 36
-45 37 37 37
-46 38 38 38
-47 39 39 39
-48 40 40 40
-49 41 41 41
-50 42 42 41
-51 43 43 42
-52 44 43 43
-53 45 44 44
-54 46 45 45
-55 47 46 46
-56 48 47 47
-57 48 48 48
-58 49 49 49
-59 50 50 50
-60 51 51 51
-61 52 52 51
-62 53 52 52
-63 54 53 53
-64 55 54 54
-65 56 55 55
-66 57 56 56
-67 57 57 57
-68 58 58 58
-69 59 59 59
-70 60 60 59
-71 61 61 60
-72 62 61 61
-73 63 62 62
-74 64 63 63
-75 65 64 64
-76 66 65 65
-77 66 66 66
-78 67 67 67
-79 68 68 67
-80 69 69 68
-81 70 70 69
-82 71 70 70
-83 72 71 71
-84 73 72 72
-85 74 73 73
-86 75 74 74
-87 75 75 75
-88 76 76 76
-89 77 77 76
-90 78 78 77
-91 79 79 78
-92 80 79 79
-93 81 80 80
-94 82 81 81
-95 83 82 82
-96 84 83 83
-97 84 84 84
-98 85 85 84
-99 86 86 85
-100 87 87 86
-101 88 88 87
-102 89 89 88
-103 90 89 89
-104 91 90 90
-105 92 91 91
-106 93 92 92
-107 94 93 93
-108 94 94 94
-109 95 95 94
-110 96 96 95
-111 97 97 96
-112 98 98 97
-113 99 99 98
-114 100 100 99
-115 101 100 100
-116 102 101 101
-117 103 102 102
-118 104 103 103
-119 105 104 104
-120 106 105 105
-121 106 106 106
-122 107 107 106
-123 108 108 107
-124 109 109 108
-125 110 110 109
-126 111 111 110
-127 112 112 111
-128 113 113 112
-129 114 114 113
-130 115 114 114
-131 116 115 115
-132 117 116 116
-133 118 117 117
-134 119 118 118
-135 120 119 119
-136 121 120 120
-137 122 121 121
-138 123 122 122
-139 124 123 122
-140 125 124 123
-141 125 125 124
-142 126 126 125
-143 127 127 126
-144 128 128 127
-145 129 129 128
-146 130 130 129
-147 131 131 130
-148 132 132 131
-149 133 133 132
-150 134 134 133
-151 135 135 134
-152 136 136 135
-153 137 137 136
-154 138 138 137
-155 139 139 138
-156 140 140 139
-157 141 141 140
-158 142 142 141
-159 143 143 142
-160 144 144 143
-161 145 145 144
-162 146 146 145
-163 147 147 146
-164 148 148 147
-165 149 149 148
-166 150 150 149
-167 151 151 150
-168 152 152 151
-169 153 153 152
-170 154 154 153
-171 155 155 154
-172 156 156 155
-173 157 157 156
-174 158 158 157
-175 160 159 158
-176 161 160 159
-177 162 161 160
-178 163 162 161
-179 164 163 163
-180 165 164 164
-181 166 165 165
-182 167 167 166
-183 168 168 167
-184 169 169 168
-185 170 170 169
-186 171 171 170
-187 172 172 171
-188 173 173 172
-189 174 174 173
-190 176 175 174
-191 177 176 175
-192 178 177 176
-193 179 178 178
-194 180 180 179
-195 181 181 180
-196 182 182 181
-197 183 183 182
-198 184 184 183
-199 185 185 184
-200 187 186 185
-201 188 187 186
-202 189 189 188
-203 190 190 189
-204 191 191 190
-205 192 192 191
-206 193 193 192
-207 194 194 193
-208 196 195 194
-209 197 197 195
-210 198 198 197
-211 199 199 198
-212 200 200 199
-213 201 201 200
-214 203 202 201
-215 204 204 202
-216 205 205 204
-217 206 206 205
-218 207 207 206
-219 209 208 207
-220 210 209 208
-221 211 211 210
-222 212 212 211
-223 213 213 212
-224 215 214 213
-225 216 216 214
-226 217 217 216
-227 218 218 217
-228 219 219 218
-229 221 220 219
-230 222 222 220
-231 223 223 222
-232 224 224 223
-233 226 225 224
-234 227 227 225
-235 228 228 227
-236 229 229 228
-237 231 230 229
-238 232 232 230
-239 233 233 232
-240 235 234 233
-241 236 236 234
-242 237 237 236
-243 238 238 237
-244 240 239 238
-245 241 241 240
-246 242 242 241
-247 244 243 242
-248 245 245 243
-249 246 246 245
-250 248 247 246
-251 249 249 247
-252 250 250 249
-253 252 251 250
-254 253 253 251
-255 254 254 253
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Haline.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Haline.lut
deleted file mode 100644
index 1d97c65df..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Haline.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 41 24 107
-1 42 24 110
-2 42 24 112
-3 42 25 114
-4 43 25 117
-5 43 25 119
-6 44 25 122
-7 44 26 124
-8 44 26 127
-9 45 26 129
-10 45 26 132
-11 45 27 134
-12 45 27 137
-13 46 27 139
-14 46 28 142
-15 46 28 144
-16 46 29 147
-17 46 29 149
-18 45 30 151
-19 45 31 153
-20 45 32 155
-21 44 33 157
-22 43 34 159
-23 42 35 160
-24 41 37 161
-25 40 39 162
-26 39 40 162
-27 38 42 162
-28 37 44 162
-29 35 46 162
-30 34 48 162
-31 33 49 162
-32 31 51 161
-33 30 53 161
-34 29 55 160
-35 27 56 160
-36 26 58 159
-37 25 59 159
-38 24 61 158
-39 22 62 157
-40 21 64 157
-41 20 65 156
-42 19 66 155
-43 18 68 155
-44 17 69 154
-45 16 70 153
-46 15 71 153
-47 15 73 152
-48 14 74 152
-49 13 75 151
-50 13 76 150
-51 12 77 150
-52 12 78 149
-53 12 79 149
-54 12 81 148
-55 12 82 148
-56 12 83 147
-57 12 84 147
-58 12 85 146
-59 12 86 146
-60 13 87 145
-61 13 88 145
-62 14 89 144
-63 14 90 144
-64 15 91 144
-65 15 92 143
-66 16 93 143
-67 17 93 143
-68 18 94 142
-69 18 95 142
-70 19 96 142
-71 20 97 141
-72 21 98 141
-73 21 99 141
-74 22 100 140
-75 23 101 140
-76 24 102 140
-77 25 102 140
-78 26 103 139
-79 26 104 139
-80 27 105 139
-81 28 106 139
-82 29 107 139
-83 30 108 139
-84 31 109 138
-85 31 109 138
-86 32 110 138
-87 33 111 138
-88 34 112 138
-89 35 113 138
-90 36 114 137
-91 36 115 137
-92 37 115 137
-93 38 116 137
-94 39 117 137
-95 39 118 137
-96 40 119 137
-97 41 120 137
-98 42 121 137
-99 42 121 137
-100 43 122 137
-101 44 123 136
-102 44 124 136
-103 45 125 136
-104 46 126 136
-105 46 127 136
-106 47 127 136
-107 48 128 136
-108 48 129 136
-109 49 130 136
-110 49 131 136
-111 50 132 136
-112 51 133 136
-113 51 133 136
-114 52 134 136
-115 52 135 136
-116 53 136 136
-117 54 137 136
-118 54 138 135
-119 55 139 135
-120 55 140 135
-121 56 140 135
-122 56 141 135
-123 57 142 135
-124 57 143 135
-125 58 144 135
-126 58 145 135
-127 59 146 135
-128 59 147 135
-129 60 148 134
-130 60 148 134
-131 61 149 134
-132 61 150 134
-133 62 151 134
-134 62 152 134
-135 63 153 134
-136 64 154 133
-137 64 155 133
-138 65 156 133
-139 65 157 133
-140 66 158 132
-141 66 158 132
-142 67 159 132
-143 67 160 132
-144 68 161 131
-145 69 162 131
-146 69 163 131
-147 70 164 131
-148 70 165 130
-149 71 166 130
-150 72 167 130
-151 72 168 129
-152 73 169 129
-153 74 169 128
-154 74 170 128
-155 75 171 128
-156 76 172 127
-157 77 173 127
-158 78 174 126
-159 78 175 126
-160 79 176 125
-161 80 177 125
-162 81 178 124
-163 82 179 124
-164 83 179 123
-165 84 180 123
-166 85 181 122
-167 86 182 121
-168 87 183 121
-169 88 184 120
-170 89 185 120
-171 90 186 119
-172 91 187 118
-173 92 187 118
-174 94 188 117
-175 95 189 116
-176 96 190 115
-177 98 191 115
-178 99 192 114
-179 100 193 113
-180 102 193 112
-181 103 194 112
-182 105 195 111
-183 106 196 110
-184 108 197 109
-185 109 198 108
-186 111 198 107
-187 113 199 107
-188 114 200 106
-189 116 201 105
-190 118 201 104
-191 120 202 103
-192 122 203 102
-193 124 204 101
-194 126 204 100
-195 128 205 100
-196 130 206 99
-197 132 206 98
-198 134 207 97
-199 136 208 96
-200 138 208 96
-201 141 209 95
-202 143 210 94
-203 145 210 93
-204 148 211 93
-205 150 211 92
-206 152 212 92
-207 155 213 92
-208 157 213 91
-209 160 214 91
-210 162 214 91
-211 165 215 91
-212 167 215 91
-213 170 216 92
-214 172 216 92
-215 175 216 92
-216 177 217 93
-217 179 217 94
-218 182 218 94
-219 184 218 95
-220 186 219 96
-221 189 219 97
-222 191 220 98
-223 193 220 99
-224 195 221 100
-225 197 221 102
-226 199 222 103
-227 202 222 104
-228 204 223 106
-229 206 223 107
-230 208 224 109
-231 210 224 110
-232 212 225 112
-233 214 225 113
-234 216 226 115
-235 217 226 117
-236 219 227 118
-237 221 228 120
-238 223 228 122
-239 225 229 123
-240 227 229 125
-241 229 230 127
-242 230 230 129
-243 232 231 131
-244 234 232 132
-245 236 232 134
-246 238 233 136
-247 239 233 138
-248 241 234 140
-249 243 235 142
-250 245 235 144
-251 246 236 145
-252 248 236 147
-253 250 237 149
-254 251 238 151
-255 253 238 153
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Ice.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Ice.lut
deleted file mode 100644
index a59bf0cc9..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Ice.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 3 5 18
-1 4 6 19
-2 5 7 21
-3 6 8 22
-4 6 8 24
-5 7 9 25
-6 8 10 27
-7 9 11 28
-8 10 12 30
-9 11 13 31
-10 12 14 32
-11 13 15 34
-12 14 16 35
-13 15 16 37
-14 16 17 38
-15 17 18 40
-16 18 19 41
-17 19 20 42
-18 20 21 44
-19 21 21 45
-20 22 22 47
-21 23 23 48
-22 24 24 50
-23 25 25 51
-24 26 25 53
-25 27 26 54
-26 27 27 56
-27 28 28 57
-28 29 29 59
-29 30 29 60
-30 31 30 62
-31 32 31 63
-32 33 32 65
-33 34 32 66
-34 34 33 68
-35 35 34 69
-36 36 35 71
-37 37 35 72
-38 38 36 74
-39 39 37 75
-40 39 38 77
-41 40 38 79
-42 41 39 80
-43 42 40 82
-44 42 41 83
-45 43 41 85
-46 44 42 87
-47 45 43 88
-48 45 44 90
-49 46 45 91
-50 47 45 93
-51 48 46 95
-52 48 47 96
-53 49 48 98
-54 50 48 100
-55 50 49 101
-56 51 50 103
-57 52 51 105
-58 52 51 106
-59 53 52 108
-60 53 53 110
-61 54 54 111
-62 55 55 113
-63 55 55 115
-64 56 56 116
-65 56 57 118
-66 57 58 120
-67 57 59 121
-68 58 59 123
-69 58 60 125
-70 58 61 126
-71 59 62 128
-72 59 63 130
-73 60 64 131
-74 60 65 133
-75 60 65 134
-76 60 66 136
-77 61 67 138
-78 61 68 139
-79 61 69 141
-80 61 70 142
-81 62 71 144
-82 62 72 145
-83 62 73 147
-84 62 74 148
-85 62 75 150
-86 62 76 151
-87 62 77 152
-88 62 78 154
-89 62 79 155
-90 62 80 156
-91 62 81 157
-92 62 82 159
-93 62 83 160
-94 62 84 161
-95 62 85 162
-96 62 87 163
-97 62 88 164
-98 62 89 165
-99 62 90 166
-100 62 91 167
-101 62 92 168
-102 62 93 168
-103 62 94 169
-104 62 96 170
-105 62 97 171
-106 62 98 172
-107 62 99 172
-108 62 100 173
-109 62 101 174
-110 62 102 174
-111 62 103 175
-112 62 105 175
-113 62 106 176
-114 62 107 177
-115 62 108 177
-116 62 109 178
-117 63 110 178
-118 63 111 179
-119 63 112 179
-120 63 114 180
-121 63 115 180
-122 64 116 180
-123 64 117 181
-124 64 118 181
-125 65 119 182
-126 65 120 182
-127 65 121 183
-128 66 122 183
-129 66 123 183
-130 67 125 184
-131 67 126 184
-132 68 127 185
-133 68 128 185
-134 69 129 185
-135 69 130 186
-136 70 131 186
-137 70 132 186
-138 71 133 187
-139 72 134 187
-140 72 135 188
-141 73 136 188
-142 74 137 188
-143 74 139 189
-144 75 140 189
-145 76 141 189
-146 76 142 190
-147 77 143 190
-148 78 144 190
-149 79 145 191
-150 79 146 191
-151 80 147 192
-152 81 148 192
-153 82 149 192
-154 82 150 193
-155 83 151 193
-156 84 152 193
-157 85 153 194
-158 86 154 194
-159 87 156 195
-160 88 157 195
-161 88 158 195
-162 89 159 196
-163 90 160 196
-164 91 161 197
-165 92 162 197
-166 93 163 197
-167 94 164 198
-168 95 165 198
-169 96 166 199
-170 97 167 199
-171 98 168 199
-172 99 169 200
-173 100 170 200
-174 101 171 201
-175 102 172 201
-176 103 174 201
-177 104 175 202
-178 105 176 202
-179 106 177 203
-180 107 178 203
-181 109 179 203
-182 110 180 204
-183 111 181 204
-184 112 182 205
-185 113 183 205
-186 114 184 205
-187 116 185 206
-188 117 186 206
-189 118 187 207
-190 119 188 207
-191 121 189 208
-192 122 190 208
-193 123 191 208
-194 125 192 209
-195 126 193 209
-196 128 194 210
-197 129 195 210
-198 131 196 211
-199 132 198 211
-200 134 199 211
-201 135 200 212
-202 137 201 212
-203 138 202 213
-204 140 203 213
-205 142 203 214
-206 143 204 214
-207 145 205 215
-208 147 206 215
-209 149 207 216
-210 150 208 216
-211 152 209 217
-212 154 210 217
-213 156 211 218
-214 158 212 219
-215 160 213 219
-216 161 214 220
-217 163 215 220
-218 165 216 221
-219 167 217 222
-220 169 218 222
-221 171 219 223
-222 173 220 224
-223 175 221 225
-224 176 221 225
-225 178 222 226
-226 180 223 227
-227 182 224 228
-228 184 225 228
-229 186 226 229
-230 188 227 230
-231 190 228 231
-232 192 229 232
-233 193 230 233
-234 195 231 234
-235 197 232 234
-236 199 233 235
-237 201 234 236
-238 203 235 237
-239 205 236 238
-240 207 237 239
-241 208 238 240
-242 210 239 241
-243 212 240 242
-244 214 241 243
-245 216 242 244
-246 218 243 245
-247 219 244 245
-248 221 245 246
-249 223 246 247
-250 225 247 248
-251 227 248 249
-252 228 249 250
-253 230 250 251
-254 232 251 252
-255 234 252 253
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Matter.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Matter.lut
deleted file mode 100644
index 826cb16c9..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Matter.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 47 15 61
-1 48 15 62
-2 49 15 63
-3 50 16 64
-4 52 16 65
-5 53 16 66
-6 54 17 67
-7 56 17 68
-8 57 17 68
-9 58 18 69
-10 59 18 70
-11 61 18 71
-12 62 18 72
-13 63 19 73
-14 64 19 73
-15 66 19 74
-16 67 19 75
-17 68 20 76
-18 70 20 76
-19 71 20 77
-20 72 20 78
-21 74 21 79
-22 75 21 79
-23 76 21 80
-24 78 21 81
-25 79 21 82
-26 80 22 82
-27 82 22 83
-28 83 22 84
-29 84 22 84
-30 85 22 85
-31 87 22 86
-32 88 23 86
-33 89 23 87
-34 91 23 87
-35 92 23 88
-36 94 23 89
-37 95 23 89
-38 96 23 90
-39 98 23 90
-40 99 24 91
-41 100 24 91
-42 102 24 92
-43 103 24 92
-44 104 24 93
-45 106 24 93
-46 107 24 93
-47 108 25 94
-48 110 25 94
-49 111 25 95
-50 112 25 95
-51 114 25 95
-52 115 25 96
-53 116 25 96
-54 118 26 96
-55 119 26 97
-56 120 26 97
-57 122 26 97
-58 123 26 97
-59 125 26 98
-60 126 27 98
-61 127 27 98
-62 129 27 98
-63 130 27 98
-64 131 28 98
-65 133 28 99
-66 134 28 99
-67 135 28 99
-68 136 29 99
-69 138 29 99
-70 139 29 99
-71 140 30 99
-72 142 30 99
-73 143 30 99
-74 144 31 99
-75 146 31 99
-76 147 31 99
-77 148 32 99
-78 149 32 99
-79 151 33 99
-80 152 33 99
-81 153 33 98
-82 155 34 98
-83 156 34 98
-84 157 35 98
-85 158 35 98
-86 160 36 98
-87 161 36 98
-88 162 37 97
-89 163 37 97
-90 165 38 97
-91 166 39 97
-92 167 39 97
-93 168 40 96
-94 169 40 96
-95 171 41 96
-96 172 42 96
-97 173 42 95
-98 174 43 95
-99 175 44 95
-100 177 44 95
-101 178 45 94
-102 179 46 94
-103 180 46 94
-104 181 47 93
-105 182 48 93
-106 184 48 93
-107 185 49 93
-108 186 50 92
-109 187 51 92
-110 188 51 92
-111 189 52 91
-112 190 53 91
-113 191 54 91
-114 192 55 90
-115 193 56 90
-116 195 56 90
-117 196 57 89
-118 197 58 89
-119 198 59 89
-120 199 60 88
-121 200 61 88
-122 201 62 88
-123 202 63 87
-124 203 64 87
-125 204 65 87
-126 205 66 86
-127 206 67 86
-128 207 68 86
-129 208 69 85
-130 208 70 85
-131 209 71 85
-132 210 72 84
-133 211 73 84
-134 212 74 84
-135 213 75 84
-136 214 76 83
-137 215 78 83
-138 215 79 83
-139 216 80 83
-140 217 81 83
-141 218 82 83
-142 218 83 82
-143 219 85 82
-144 220 86 82
-145 221 87 82
-146 221 88 82
-147 222 89 82
-148 223 91 82
-149 223 92 82
-150 224 93 82
-151 225 95 82
-152 225 96 82
-153 226 97 82
-154 226 98 82
-155 227 100 83
-156 227 101 83
-157 228 102 83
-158 229 104 83
-159 229 105 83
-160 230 106 84
-161 230 108 84
-162 231 109 84
-163 231 110 85
-164 232 112 85
-165 232 113 85
-166 232 114 86
-167 233 116 86
-168 233 117 87
-169 234 118 87
-170 234 120 88
-171 235 121 88
-172 235 123 89
-173 235 124 89
-174 236 125 90
-175 236 127 91
-176 237 128 91
-177 237 129 92
-178 237 131 92
-179 238 132 93
-180 238 133 94
-181 238 135 94
-182 239 136 95
-183 239 138 96
-184 239 139 97
-185 240 140 97
-186 240 142 98
-187 240 143 99
-188 241 144 100
-189 241 146 101
-190 241 147 101
-191 241 148 102
-192 242 150 103
-193 242 151 104
-194 242 153 105
-195 243 154 106
-196 243 155 107
-197 243 157 108
-198 243 158 108
-199 244 159 109
-200 244 161 110
-201 244 162 111
-202 244 163 112
-203 245 165 113
-204 245 166 114
-205 245 168 115
-206 245 169 116
-207 245 170 117
-208 246 172 118
-209 246 173 119
-210 246 174 120
-211 246 176 121
-212 247 177 122
-213 247 178 124
-214 247 180 125
-215 247 181 126
-216 247 183 127
-217 247 184 128
-218 248 185 129
-219 248 187 130
-220 248 188 131
-221 248 189 132
-222 248 191 134
-223 249 192 135
-224 249 194 136
-225 249 195 137
-226 249 196 138
-227 249 198 139
-228 249 199 141
-229 250 200 142
-230 250 202 143
-231 250 203 144
-232 250 205 145
-233 250 206 147
-234 250 207 148
-235 250 209 149
-236 251 210 150
-237 251 212 152
-238 251 213 153
-239 251 214 154
-240 251 216 156
-241 251 217 157
-242 251 219 158
-243 252 220 159
-244 252 221 161
-245 252 223 162
-246 252 224 163
-247 252 226 165
-248 252 227 166
-249 252 228 167
-250 252 230 169
-251 253 231 170
-252 253 233 172
-253 253 234 173
-254 253 235 174
-255 253 237 176
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Oxy.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Oxy.lut
deleted file mode 100644
index cabc53237..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Oxy.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 63 5 5
-1 65 5 5
-2 67 5 5
-3 68 5 6
-4 70 6 6
-5 72 6 7
-6 73 6 7
-7 75 6 7
-8 77 6 8
-9 78 6 8
-10 80 6 9
-11 82 6 9
-12 83 7 10
-13 85 7 10
-14 87 7 11
-15 89 7 11
-16 90 7 11
-17 92 7 12
-18 94 7 12
-19 95 7 12
-20 97 7 13
-21 99 6 13
-22 101 6 13
-23 102 6 14
-24 104 6 14
-25 106 6 14
-26 107 6 14
-27 109 6 14
-28 111 5 15
-29 113 5 15
-30 114 5 15
-31 116 5 15
-32 118 5 15
-33 119 4 14
-34 121 4 14
-35 123 4 14
-36 124 5 14
-37 126 5 13
-38 128 6 13
-39 129 6 12
-40 131 7 12
-41 132 9 11
-42 133 10 10
-43 135 12 10
-44 136 14 9
-45 137 16 9
-46 138 17 8
-47 139 19 8
-48 141 21 8
-49 142 23 7
-50 143 24 7
-51 92 68 64
-52 80 79 79
-53 81 80 80
-54 82 81 81
-55 83 82 82
-56 84 83 83
-57 85 84 84
-58 86 85 85
-59 86 86 86
-60 87 87 87
-61 88 88 87
-62 89 89 88
-63 90 90 89
-64 91 91 90
-65 92 92 91
-66 93 92 92
-67 94 93 93
-68 95 94 94
-69 96 95 95
-70 97 96 96
-71 98 97 97
-72 99 98 98
-73 100 99 99
-74 101 100 100
-75 102 101 101
-76 102 102 102
-77 103 103 102
-78 104 104 103
-79 105 105 104
-80 106 106 105
-81 107 107 106
-82 108 108 107
-83 109 109 108
-84 110 110 109
-85 111 111 110
-86 112 112 111
-87 113 113 112
-88 114 114 113
-89 115 114 114
-90 116 115 115
-91 117 116 116
-92 118 117 117
-93 119 118 118
-94 120 119 119
-95 121 120 120
-96 122 121 121
-97 123 122 122
-98 124 123 123
-99 125 124 124
-100 126 125 125
-101 127 126 126
-102 128 127 127
-103 129 128 128
-104 130 129 129
-105 131 130 130
-106 132 131 131
-107 133 132 132
-108 134 133 133
-109 135 134 134
-110 136 135 135
-111 137 136 136
-112 138 137 137
-113 139 138 138
-114 140 139 139
-115 141 140 140
-116 142 141 141
-117 143 143 142
-118 144 144 143
-119 145 145 144
-120 146 146 145
-121 147 147 146
-122 148 148 147
-123 149 149 148
-124 150 150 149
-125 151 151 150
-126 152 152 151
-127 153 153 152
-128 154 154 153
-129 156 155 154
-130 157 156 155
-131 158 157 156
-132 159 158 157
-133 160 159 159
-134 161 160 160
-135 162 162 161
-136 163 163 162
-137 164 164 163
-138 165 165 164
-139 166 166 165
-140 167 167 166
-141 168 168 167
-142 170 169 168
-143 171 170 169
-144 172 171 171
-145 173 173 172
-146 174 174 173
-147 175 175 174
-148 176 176 175
-149 177 177 176
-150 178 178 177
-151 180 179 178
-152 181 180 179
-153 182 182 181
-154 183 183 182
-155 184 184 183
-156 185 185 184
-157 186 186 185
-158 188 187 186
-159 189 188 187
-160 190 190 189
-161 191 191 190
-162 192 192 191
-163 193 193 192
-164 195 194 193
-165 196 195 194
-166 197 197 196
-167 198 198 197
-168 199 199 198
-169 201 200 199
-170 202 201 200
-171 203 203 202
-172 204 204 203
-173 205 205 204
-174 207 206 205
-175 208 208 206
-176 209 209 208
-177 210 210 209
-178 211 211 210
-179 213 212 211
-180 214 214 213
-181 215 215 214
-182 216 216 215
-183 218 217 216
-184 219 219 218
-185 220 220 219
-186 222 221 220
-187 223 223 221
-188 224 224 223
-189 225 225 224
-190 227 226 225
-191 228 228 226
-192 229 229 228
-193 231 230 229
-194 232 232 230
-195 233 233 232
-196 234 234 233
-197 236 236 234
-198 237 237 236
-199 238 238 237
-200 240 240 238
-201 241 241 240
-202 242 242 241
-203 244 244 242
-204 245 247 216
-205 247 253 103
-206 245 252 100
-207 243 251 97
-208 242 250 94
-209 240 249 91
-210 238 247 88
-211 237 246 84
-212 236 245 80
-213 235 243 76
-214 234 242 73
-215 234 240 69
-216 234 239 66
-217 233 237 63
-218 233 235 61
-219 233 233 59
-220 233 232 57
-221 233 230 55
-222 233 228 53
-223 233 226 52
-224 232 225 51
-225 232 223 49
-226 232 221 48
-227 232 220 47
-228 231 218 46
-229 231 216 45
-230 231 214 44
-231 230 213 43
-232 230 211 42
-233 230 209 41
-234 229 208 40
-235 229 206 39
-236 229 205 38
-237 228 203 38
-238 228 201 37
-239 227 200 36
-240 227 198 35
-241 227 196 34
-242 226 195 34
-243 226 193 33
-244 225 192 32
-245 225 190 32
-246 224 188 31
-247 224 187 30
-248 223 185 30
-249 223 184 29
-250 223 182 28
-251 222 181 28
-252 222 179 27
-253 221 178 26
-254 221 176 26
-255 220 174 25
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Phase.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Phase.lut
deleted file mode 100644
index 39ad52cd3..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Phase.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 167 119 12
-1 169 118 14
-2 170 117 16
-3 172 116 18
-4 173 115 20
-5 175 115 22
-6 176 114 23
-7 178 113 25
-8 179 112 27
-9 180 111 28
-10 182 110 30
-11 183 109 31
-12 184 107 33
-13 186 106 35
-14 187 105 36
-15 188 104 38
-16 189 103 39
-17 190 102 41
-18 192 101 43
-19 193 100 44
-20 194 99 46
-21 195 98 47
-22 196 97 49
-23 197 96 51
-24 198 95 52
-25 199 93 54
-26 200 92 56
-27 201 91 58
-28 202 90 59
-29 203 89 61
-30 204 88 63
-31 205 86 65
-32 206 85 67
-33 207 84 68
-34 208 83 70
-35 209 81 72
-36 210 80 74
-37 211 79 76
-38 211 78 78
-39 212 76 80
-40 213 75 83
-41 214 74 85
-42 214 72 87
-43 215 71 89
-44 216 69 91
-45 216 68 94
-46 217 67 96
-47 218 65 99
-48 218 64 101
-49 219 62 104
-50 219 61 106
-51 220 59 109
-52 220 58 112
-53 220 57 114
-54 221 55 117
-55 221 54 120
-56 221 52 123
-57 222 51 126
-58 222 49 129
-59 222 48 132
-60 222 47 135
-61 222 45 138
-62 222 44 141
-63 222 43 144
-64 222 42 147
-65 222 41 150
-66 222 40 153
-67 221 39 156
-68 221 38 160
-69 221 38 163
-70 220 37 166
-71 220 37 169
-72 219 37 172
-73 219 37 175
-74 218 37 178
-75 217 37 181
-76 216 38 184
-77 216 38 187
-78 215 39 190
-79 214 40 193
-80 213 41 195
-81 212 42 198
-82 211 43 201
-83 210 44 203
-84 209 45 206
-85 207 47 208
-86 206 48 210
-87 205 50 212
-88 204 51 215
-89 202 53 217
-90 201 54 219
-91 199 56 220
-92 198 58 222
-93 196 60 224
-94 195 61 226
-95 193 63 227
-96 192 65 229
-97 190 66 230
-98 188 68 232
-99 187 70 233
-100 185 71 234
-101 183 73 235
-102 181 75 236
-103 180 77 237
-104 178 78 238
-105 176 80 239
-106 174 82 240
-107 172 83 240
-108 170 85 241
-109 168 86 242
-110 166 88 242
-111 164 90 242
-112 162 91 243
-113 160 93 243
-114 158 94 243
-115 156 96 243
-116 153 97 244
-117 151 99 244
-118 149 100 244
-119 147 102 243
-120 144 103 243
-121 142 105 243
-122 140 106 243
-123 137 107 242
-124 135 109 242
-125 132 110 242
-126 130 112 241
-127 127 113 240
-128 125 114 240
-129 122 115 239
-130 120 117 238
-131 117 118 237
-132 115 119 236
-133 112 120 235
-134 109 122 234
-135 106 123 233
-136 104 124 232
-137 101 125 230
-138 98 126 229
-139 95 127 228
-140 93 128 226
-141 90 129 225
-142 87 130 223
-143 84 131 221
-144 82 132 220
-145 79 133 218
-146 76 134 216
-147 73 135 214
-148 71 136 212
-149 68 137 210
-150 66 137 208
-151 63 138 206
-152 61 139 204
-153 58 139 202
-154 56 140 200
-155 53 141 198
-156 51 141 196
-157 49 142 194
-158 47 142 192
-159 45 143 190
-160 43 143 188
-161 42 144 185
-162 40 144 183
-163 38 144 181
-164 37 145 179
-165 35 145 177
-166 34 146 175
-167 33 146 173
-168 32 146 171
-169 31 147 169
-170 30 147 167
-171 29 147 165
-172 28 147 163
-173 27 148 161
-174 26 148 159
-175 25 148 157
-176 24 148 156
-177 23 149 154
-178 22 149 152
-179 22 149 150
-180 21 149 148
-181 20 150 146
-182 19 150 144
-183 18 150 142
-184 17 150 140
-185 16 151 138
-186 15 151 136
-187 15 151 134
-188 14 151 132
-189 13 151 130
-190 12 152 128
-191 12 152 125
-192 11 152 123
-193 11 152 121
-194 11 152 119
-195 11 153 116
-196 11 153 114
-197 12 153 112
-198 13 153 109
-199 15 153 107
-200 16 153 104
-201 18 153 102
-202 20 153 99
-203 22 153 96
-204 25 154 93
-205 27 154 91
-206 30 154 88
-207 33 154 85
-208 36 153 82
-209 39 153 79
-210 42 153 76
-211 45 153 73
-212 49 153 69
-213 52 153 66
-214 56 152 63
-215 59 152 60
-216 63 152 56
-217 67 151 53
-218 71 151 50
-219 74 150 46
-220 78 150 43
-221 82 149 40
-222 86 149 37
-223 90 148 34
-224 93 147 32
-225 97 146 29
-226 100 146 27
-227 104 145 25
-228 107 144 23
-229 110 143 21
-230 113 142 19
-231 116 141 18
-232 119 141 17
-233 121 140 16
-234 124 139 15
-235 127 138 15
-236 129 137 14
-237 131 136 14
-238 134 135 13
-239 136 135 13
-240 138 134 13
-241 140 133 13
-242 142 132 13
-243 145 131 13
-244 147 130 13
-245 149 129 13
-246 151 128 13
-247 153 127 13
-248 154 126 13
-249 156 125 13
-250 158 124 13
-251 160 123 13
-252 162 122 13
-253 164 121 13
-254 166 120 12
-255 167 119 12
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Solar.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Solar.lut
deleted file mode 100644
index 1a4b19b3d..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Solar.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 51 19 23
-1 52 20 24
-2 53 20 24
-3 55 21 25
-4 56 21 25
-5 57 21 26
-6 58 22 26
-7 59 22 27
-8 61 23 27
-9 62 23 28
-10 63 23 28
-11 64 24 28
-12 66 24 29
-13 67 25 29
-14 68 25 30
-15 69 25 30
-16 71 26 30
-17 72 26 31
-18 73 27 31
-19 74 27 31
-20 76 27 32
-21 77 28 32
-22 78 28 32
-23 79 28 33
-24 81 29 33
-25 82 29 33
-26 83 29 34
-27 84 30 34
-28 86 30 34
-29 87 30 34
-30 88 31 35
-31 89 31 35
-32 91 31 35
-33 92 32 35
-34 93 32 35
-35 94 32 35
-36 96 33 36
-37 97 33 36
-38 98 33 36
-39 99 34 36
-40 101 34 36
-41 102 34 36
-42 103 35 36
-43 104 35 36
-44 106 36 36
-45 107 36 36
-46 108 36 36
-47 109 37 36
-48 111 37 36
-49 112 37 36
-50 113 38 36
-51 114 38 36
-52 116 38 36
-53 117 39 36
-54 118 39 36
-55 119 40 36
-56 120 40 35
-57 122 41 35
-58 123 41 35
-59 124 42 35
-60 125 42 35
-61 126 43 34
-62 127 43 34
-63 129 44 34
-64 130 44 34
-65 131 45 33
-66 132 45 33
-67 133 46 33
-68 134 46 33
-69 135 47 32
-70 136 48 32
-71 137 48 32
-72 138 49 31
-73 139 50 31
-74 140 50 31
-75 141 51 31
-76 142 52 30
-77 143 52 30
-78 144 53 30
-79 145 54 29
-80 146 55 29
-81 147 56 29
-82 148 56 28
-83 149 57 28
-84 150 58 28
-85 151 59 27
-86 151 60 27
-87 152 60 27
-88 153 61 27
-89 154 62 26
-90 155 63 26
-91 156 64 26
-92 156 65 25
-93 157 66 25
-94 158 67 25
-95 159 67 25
-96 160 68 24
-97 160 69 24
-98 161 70 24
-99 162 71 23
-100 163 72 23
-101 164 73 23
-102 164 74 23
-103 165 75 23
-104 166 76 22
-105 166 77 22
-106 167 78 22
-107 168 79 22
-108 169 80 21
-109 169 81 21
-110 170 82 21
-111 171 83 21
-112 171 84 21
-113 172 85 20
-114 173 86 20
-115 173 87 20
-116 174 88 20
-117 175 89 20
-118 175 90 20
-119 176 91 20
-120 177 92 19
-121 177 93 19
-122 178 94 19
-123 179 95 19
-124 179 96 19
-125 180 97 19
-126 180 98 19
-127 181 99 19
-128 182 100 19
-129 182 101 19
-130 183 102 19
-131 183 103 18
-132 184 104 18
-133 185 105 18
-134 185 106 18
-135 186 107 18
-136 186 108 18
-137 187 109 18
-138 187 110 18
-139 188 111 19
-140 188 113 19
-141 189 114 19
-142 190 115 19
-143 190 116 19
-144 191 117 19
-145 191 118 19
-146 192 119 19
-147 192 120 19
-148 193 121 19
-149 193 122 20
-150 194 123 20
-151 194 124 20
-152 195 126 20
-153 195 127 20
-154 196 128 20
-155 196 129 21
-156 197 130 21
-157 197 131 21
-158 198 132 21
-159 198 133 22
-160 199 134 22
-161 199 135 22
-162 199 137 22
-163 200 138 23
-164 200 139 23
-165 201 140 23
-166 201 141 24
-167 202 142 24
-168 202 143 24
-169 203 144 25
-170 203 146 25
-171 203 147 25
-172 204 148 26
-173 204 149 26
-174 205 150 27
-175 205 151 27
-176 205 153 27
-177 206 154 28
-178 206 155 28
-179 207 156 29
-180 207 157 29
-181 207 158 30
-182 208 159 30
-183 208 161 31
-184 209 162 31
-185 209 163 32
-186 209 164 32
-187 210 165 32
-188 210 167 33
-189 210 168 33
-190 211 169 34
-191 211 170 34
-192 211 171 35
-193 212 173 36
-194 212 174 36
-195 212 175 37
-196 213 176 37
-197 213 177 38
-198 213 179 38
-199 214 180 39
-200 214 181 39
-201 214 182 40
-202 215 183 40
-203 215 185 41
-204 215 186 42
-205 216 187 42
-206 216 188 43
-207 216 190 43
-208 216 191 44
-209 217 192 44
-210 217 193 45
-211 217 195 46
-212 217 196 46
-213 218 197 47
-214 218 198 47
-215 218 200 48
-216 218 201 49
-217 219 202 49
-218 219 203 50
-219 219 205 51
-220 219 206 51
-221 220 207 52
-222 220 208 52
-223 220 210 53
-224 220 211 54
-225 220 212 54
-226 221 214 55
-227 221 215 56
-228 221 216 56
-229 221 218 57
-230 221 219 58
-231 222 220 58
-232 222 222 59
-233 222 223 60
-234 222 224 60
-235 222 226 61
-236 222 227 61
-237 223 228 62
-238 223 230 63
-239 223 231 63
-240 223 232 64
-241 223 234 65
-242 223 235 65
-243 223 236 66
-244 223 238 67
-245 223 239 68
-246 224 240 68
-247 224 242 69
-248 224 243 70
-249 224 245 70
-250 224 246 71
-251 224 247 72
-252 224 249 72
-253 224 250 73
-254 224 252 74
-255 224 253 74
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Speed.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Speed.lut
deleted file mode 100644
index e450ce9eb..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Speed.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 23 35 18
-1 23 35 19
-2 23 36 20
-3 23 37 21
-4 23 38 21
-5 24 39 22
-6 24 40 23
-7 24 41 24
-8 24 42 24
-9 24 43 25
-10 24 44 26
-11 25 45 26
-12 25 46 27
-13 25 47 28
-14 25 48 28
-15 25 49 29
-16 25 50 30
-17 25 51 30
-18 25 52 31
-19 25 52 32
-20 25 53 32
-21 25 54 33
-22 25 55 33
-23 25 56 34
-24 24 57 34
-25 24 58 35
-26 24 59 35
-27 24 60 36
-28 24 61 36
-29 24 62 37
-30 23 63 37
-31 23 64 38
-32 23 65 38
-33 23 66 39
-34 22 67 39
-35 22 68 39
-36 22 69 40
-37 21 70 40
-38 21 71 40
-39 21 72 41
-40 20 73 41
-41 20 74 41
-42 20 74 42
-43 19 75 42
-44 19 76 42
-45 18 77 42
-46 18 78 43
-47 17 79 43
-48 17 80 43
-49 16 81 43
-50 16 82 43
-51 15 83 44
-52 15 84 44
-53 15 85 44
-54 14 86 44
-55 14 87 44
-56 13 88 44
-57 13 89 44
-58 12 90 44
-59 12 91 44
-60 12 92 44
-61 11 92 44
-62 11 93 44
-63 11 94 44
-64 11 95 44
-65 10 96 44
-66 10 97 44
-67 10 98 44
-68 10 99 44
-69 11 100 44
-70 11 101 44
-71 11 102 43
-72 12 103 43
-73 12 103 43
-74 13 104 43
-75 13 105 43
-76 14 106 42
-77 15 107 42
-78 16 108 42
-79 17 109 41
-80 18 110 41
-81 19 111 41
-82 20 111 41
-83 21 112 40
-84 22 113 40
-85 24 114 39
-86 25 115 39
-87 26 116 39
-88 28 117 38
-89 29 117 38
-90 31 118 37
-91 32 119 37
-92 34 120 36
-93 35 121 36
-94 37 121 35
-95 38 122 35
-96 40 123 34
-97 42 124 33
-98 43 125 33
-99 45 125 32
-100 46 126 32
-101 48 127 31
-102 50 128 30
-103 52 129 30
-104 53 129 29
-105 55 130 28
-106 57 131 28
-107 59 131 27
-108 60 132 26
-109 62 133 26
-110 64 134 25
-111 66 134 24
-112 67 135 23
-113 69 136 23
-114 71 137 22
-115 73 137 21
-116 75 138 20
-117 77 139 20
-118 78 139 19
-119 80 140 18
-120 82 141 17
-121 84 141 16
-122 86 142 16
-123 87 143 15
-124 89 143 14
-125 91 144 13
-126 93 145 12
-127 95 145 12
-128 97 146 11
-129 98 146 10
-130 100 147 9
-131 102 148 9
-132 104 148 8
-133 106 149 8
-134 107 150 7
-135 109 150 7
-136 111 151 6
-137 113 151 6
-138 115 152 5
-139 116 153 5
-140 118 153 5
-141 120 154 5
-142 122 155 5
-143 124 155 5
-144 125 156 5
-145 127 156 6
-146 129 157 6
-147 131 158 6
-148 132 158 7
-149 134 159 7
-150 136 159 8
-151 138 160 9
-152 139 161 10
-153 141 161 11
-154 143 162 12
-155 145 162 13
-156 146 163 14
-157 148 164 15
-158 150 164 16
-159 151 165 17
-160 153 165 18
-161 155 166 20
-162 157 167 21
-163 158 167 22
-164 160 168 23
-165 162 168 25
-166 163 169 26
-167 165 170 28
-168 167 170 29
-169 168 171 30
-170 170 171 32
-171 171 172 33
-172 173 173 35
-173 175 173 36
-174 176 174 38
-175 178 175 40
-176 179 175 41
-177 181 176 43
-178 182 177 44
-179 184 177 46
-180 185 178 48
-181 187 179 50
-182 188 179 51
-183 190 180 53
-184 191 181 55
-185 193 181 57
-186 194 182 59
-187 195 183 60
-188 197 183 62
-189 198 184 64
-190 199 185 66
-191 201 186 68
-192 202 186 70
-193 203 187 72
-194 205 188 74
-195 206 189 76
-196 207 190 78
-197 208 190 80
-198 209 191 82
-199 211 192 84
-200 212 193 86
-201 213 194 88
-202 214 195 91
-203 215 196 93
-204 216 196 95
-205 217 197 97
-206 218 198 99
-207 219 199 101
-208 220 200 103
-209 221 201 106
-210 222 202 108
-211 223 203 110
-212 223 204 112
-213 224 205 114
-214 225 206 116
-215 226 207 119
-216 227 208 121
-217 228 209 123
-218 229 210 125
-219 229 211 127
-220 230 212 129
-221 231 213 132
-222 232 214 134
-223 232 215 136
-224 233 216 138
-225 234 217 140
-226 235 219 143
-227 235 220 145
-228 236 221 147
-229 237 222 149
-230 238 223 151
-231 238 224 153
-232 239 225 156
-233 240 226 158
-234 240 227 160
-235 241 229 162
-236 242 230 164
-237 242 231 166
-238 243 232 168
-239 244 233 171
-240 244 234 173
-241 245 236 175
-242 246 237 177
-243 246 238 179
-244 247 239 181
-245 248 240 183
-246 248 241 185
-247 249 243 188
-248 250 244 190
-249 250 245 192
-250 251 246 194
-251 252 247 196
-252 252 249 198
-253 253 250 200
-254 254 251 202
-255 254 252 205
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Tempo.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Tempo.lut
deleted file mode 100644
index 8a6985a5e..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Tempo.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 20 29 67
-1 21 30 68
-2 21 31 68
-3 21 32 69
-4 21 33 69
-5 22 34 70
-6 22 35 70
-7 22 36 71
-8 22 37 71
-9 22 38 72
-10 23 39 72
-11 23 40 73
-12 23 41 74
-13 23 42 74
-14 24 43 75
-15 24 44 75
-16 24 45 76
-17 24 46 76
-18 24 47 77
-19 24 47 78
-20 25 48 78
-21 25 49 79
-22 25 50 79
-23 25 51 80
-24 25 52 80
-25 26 53 81
-26 26 54 82
-27 26 55 82
-28 26 56 83
-29 26 57 83
-30 26 58 84
-31 26 59 84
-32 27 60 85
-33 27 60 86
-34 27 61 86
-35 27 62 87
-36 27 63 87
-37 27 64 88
-38 27 65 89
-39 27 66 89
-40 27 67 90
-41 27 68 90
-42 27 69 91
-43 28 70 91
-44 28 70 92
-45 28 71 93
-46 28 72 93
-47 28 73 94
-48 28 74 94
-49 28 75 95
-50 28 76 96
-51 28 77 96
-52 28 78 97
-53 28 79 97
-54 27 80 98
-55 27 81 98
-56 27 81 99
-57 27 82 100
-58 27 83 100
-59 27 84 101
-60 27 85 101
-61 27 86 102
-62 27 87 102
-63 27 88 103
-64 26 89 103
-65 26 90 104
-66 26 91 105
-67 26 92 105
-68 26 93 106
-69 25 94 106
-70 25 94 107
-71 25 95 107
-72 25 96 108
-73 24 97 108
-74 24 98 109
-75 24 99 109
-76 23 100 110
-77 23 101 110
-78 23 102 111
-79 22 103 111
-80 22 104 112
-81 22 105 112
-82 21 106 113
-83 21 107 113
-84 21 108 114
-85 20 109 114
-86 20 109 115
-87 20 110 115
-88 19 111 115
-89 19 112 116
-90 19 113 116
-91 18 114 117
-92 18 115 117
-93 18 116 117
-94 17 117 118
-95 17 118 118
-96 17 119 119
-97 17 120 119
-98 16 121 119
-99 16 122 120
-100 16 123 120
-101 16 124 120
-102 16 125 121
-103 16 125 121
-104 17 126 121
-105 17 127 122
-106 17 128 122
-107 18 129 122
-108 18 130 123
-109 19 131 123
-110 19 132 123
-111 20 133 123
-112 21 134 124
-113 22 135 124
-114 23 136 124
-115 24 137 124
-116 25 137 125
-117 26 138 125
-118 28 139 125
-119 29 140 125
-120 31 141 125
-121 32 142 126
-122 34 143 126
-123 35 144 126
-124 37 144 126
-125 38 145 126
-126 40 146 127
-127 42 147 127
-128 44 148 127
-129 46 149 127
-130 47 149 127
-131 49 150 128
-132 51 151 128
-133 53 152 128
-134 55 153 128
-135 57 153 128
-136 59 154 129
-137 61 155 129
-138 63 156 129
-139 65 157 129
-140 67 157 129
-141 69 158 130
-142 71 159 130
-143 73 160 130
-144 75 160 131
-145 77 161 131
-146 79 162 131
-147 81 162 131
-148 83 163 132
-149 85 164 132
-150 87 165 133
-151 89 165 133
-152 91 166 133
-153 93 167 134
-154 95 167 134
-155 97 168 135
-156 99 169 135
-157 101 169 136
-158 103 170 136
-159 105 171 137
-160 106 171 137
-161 108 172 138
-162 110 173 138
-163 112 174 139
-164 114 174 139
-165 116 175 140
-166 118 176 141
-167 119 176 141
-168 121 177 142
-169 123 178 143
-170 125 178 143
-171 127 179 144
-172 128 180 145
-173 130 180 145
-174 132 181 146
-175 134 182 147
-176 136 182 148
-177 137 183 148
-178 139 184 149
-179 141 184 150
-180 142 185 151
-181 144 186 152
-182 146 186 153
-183 148 187 153
-184 149 188 154
-185 151 188 155
-186 153 189 156
-187 154 190 157
-188 156 191 158
-189 157 191 159
-190 159 192 160
-191 161 193 161
-192 162 193 162
-193 164 194 163
-194 166 195 164
-195 167 195 165
-196 169 196 166
-197 170 197 167
-198 172 198 168
-199 174 198 169
-200 175 199 170
-201 177 200 171
-202 178 201 172
-203 180 201 174
-204 181 202 175
-205 183 203 176
-206 184 204 177
-207 186 204 178
-208 187 205 179
-209 189 206 181
-210 190 207 182
-211 192 207 183
-212 193 208 184
-213 195 209 185
-214 196 210 187
-215 198 210 188
-216 199 211 189
-217 201 212 190
-218 202 213 192
-219 204 214 193
-220 205 214 194
-221 207 215 195
-222 208 216 197
-223 210 217 198
-224 211 218 199
-225 212 218 201
-226 214 219 202
-227 215 220 203
-228 217 221 205
-229 218 222 206
-230 220 223 207
-231 221 223 209
-232 222 224 210
-233 224 225 212
-234 225 226 213
-235 227 227 214
-236 228 228 216
-237 229 229 217
-238 231 229 219
-239 232 230 220
-240 234 231 221
-241 235 232 223
-242 236 233 224
-243 238 234 226
-244 239 235 227
-245 241 236 229
-246 242 237 230
-247 243 238 232
-248 245 238 233
-249 246 239 235
-250 247 240 236
-251 249 241 238
-252 250 242 239
-253 252 243 241
-254 253 244 242
-255 254 245 244
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Thermal.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Thermal.lut
deleted file mode 100644
index 63408e96b..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Thermal.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 3 35 51
-1 4 35 53
-2 4 36 55
-3 4 37 57
-4 4 38 58
-5 4 38 60
-6 5 39 62
-7 5 40 64
-8 5 40 66
-9 5 41 68
-10 5 42 70
-11 6 42 73
-12 6 43 75
-13 6 43 77
-14 7 44 79
-15 7 44 81
-16 8 45 83
-17 8 46 86
-18 9 46 88
-19 10 47 90
-20 10 47 93
-21 11 48 95
-22 12 48 98
-23 13 48 100
-24 14 49 103
-25 15 49 105
-26 16 50 108
-27 17 50 110
-28 18 50 113
-29 20 50 116
-30 21 51 118
-31 23 51 121
-32 24 51 124
-33 26 51 126
-34 27 51 129
-35 29 51 132
-36 31 51 134
-37 33 51 137
-38 35 51 140
-39 37 51 142
-40 39 51 144
-41 41 51 147
-42 43 51 149
-43 46 51 151
-44 48 51 153
-45 50 51 154
-46 53 50 156
-47 55 51 157
-48 57 51 157
-49 59 51 158
-50 61 51 159
-51 63 51 159
-52 65 52 159
-53 67 52 159
-54 69 53 159
-55 71 53 159
-56 73 54 159
-57 74 54 158
-58 76 55 158
-59 78 55 158
-60 79 56 157
-61 81 57 157
-62 83 57 156
-63 84 58 156
-64 86 59 156
-65 87 59 155
-66 89 60 155
-67 90 61 154
-68 92 61 154
-69 93 62 153
-70 95 63 153
-71 96 64 152
-72 97 64 152
-73 99 65 151
-74 100 66 151
-75 102 66 150
-76 103 67 150
-77 104 67 149
-78 106 68 149
-79 107 69 148
-80 108 69 148
-81 110 70 148
-82 111 71 147
-83 112 71 147
-84 114 72 146
-85 115 73 146
-86 116 73 146
-87 118 74 145
-88 119 74 145
-89 121 75 144
-90 122 76 144
-91 123 76 144
-92 125 77 143
-93 126 77 143
-94 127 78 143
-95 129 78 142
-96 130 79 142
-97 131 80 142
-98 133 80 142
-99 134 81 141
-100 135 81 141
-101 137 82 141
-102 138 82 140
-103 140 83 140
-104 141 83 140
-105 142 84 139
-106 144 84 139
-107 145 85 139
-108 147 85 138
-109 148 86 138
-110 150 86 138
-111 151 87 137
-112 152 87 137
-113 154 88 136
-114 155 88 136
-115 157 89 136
-116 158 89 135
-117 160 90 135
-118 161 90 134
-119 163 91 134
-120 164 91 133
-121 166 92 133
-122 167 92 133
-123 169 93 132
-124 170 93 131
-125 172 93 131
-126 173 94 130
-127 175 94 130
-128 176 95 129
-129 178 95 129
-130 179 96 128
-131 181 96 127
-132 182 97 127
-133 184 97 126
-134 185 97 125
-135 187 98 124
-136 188 98 124
-137 190 99 123
-138 191 99 122
-139 193 100 121
-140 194 100 120
-141 196 101 120
-142 197 101 119
-143 199 102 118
-144 200 102 117
-145 202 103 116
-146 203 103 115
-147 205 104 114
-148 206 104 113
-149 207 105 112
-150 209 105 111
-151 210 106 110
-152 212 107 109
-153 213 107 108
-154 214 108 107
-155 216 108 105
-156 217 109 104
-157 219 110 103
-158 220 110 102
-159 221 111 101
-160 222 112 100
-161 224 112 98
-162 225 113 97
-163 226 114 96
-164 227 115 95
-165 229 116 93
-166 230 116 92
-167 231 117 91
-168 232 118 90
-169 233 119 88
-170 234 120 87
-171 235 121 86
-172 236 122 85
-173 237 123 83
-174 238 124 82
-175 239 125 81
-176 240 126 80
-177 241 127 79
-178 241 128 78
-179 242 130 76
-180 243 131 75
-181 243 132 74
-182 244 133 73
-183 245 135 72
-184 245 136 71
-185 246 137 70
-186 246 139 69
-187 247 140 69
-188 247 141 68
-189 248 143 67
-190 248 144 66
-191 249 146 65
-192 249 147 65
-193 249 148 64
-194 250 150 63
-195 250 151 63
-196 250 153 62
-197 250 154 62
-198 250 156 62
-199 251 157 61
-200 251 159 61
-201 251 161 61
-202 251 162 60
-203 251 164 60
-204 251 165 60
-205 251 167 60
-206 251 168 60
-207 251 170 60
-208 251 172 60
-209 251 173 60
-210 251 175 60
-211 251 176 60
-212 251 178 60
-213 251 180 60
-214 251 181 61
-215 251 183 61
-216 250 184 61
-217 250 186 62
-218 250 188 62
-219 250 189 62
-220 250 191 63
-221 249 193 63
-222 249 194 64
-223 249 196 64
-224 249 198 65
-225 248 199 65
-226 248 201 66
-227 248 203 67
-228 247 204 67
-229 247 206 68
-230 246 208 69
-231 246 209 69
-232 246 211 70
-233 245 213 71
-234 245 214 72
-235 244 216 72
-236 244 218 73
-237 243 219 74
-238 243 221 75
-239 242 223 76
-240 242 224 77
-241 241 226 77
-242 241 228 78
-243 240 229 79
-244 239 231 80
-245 239 233 81
-246 238 234 82
-247 237 236 83
-248 237 238 84
-249 236 240 85
-250 235 241 86
-251 235 243 86
-252 234 245 87
-253 233 246 88
-254 232 248 89
-255 231 250 90
diff --git a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Turbid.lut b/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Turbid.lut
deleted file mode 100644
index d4454fd08..000000000
--- a/src/main/resources/fiji/plugin/trackmate/gui/displaysettings/luts/Turbid.lut
+++ /dev/null
@@ -1,257 +0,0 @@
-Index Red Green Blue
-0 34 30 27
-1 35 31 27
-2 36 31 28
-3 37 32 28
-4 38 33 29
-5 39 33 29
-6 40 34 30
-7 41 35 30
-8 42 35 31
-9 43 36 31
-10 44 37 31
-11 45 37 32
-12 46 38 32
-13 47 39 33
-14 48 39 33
-15 49 40 34
-16 50 40 34
-17 51 41 35
-18 52 42 35
-19 53 42 36
-20 54 43 36
-21 55 44 36
-22 56 44 37
-23 57 45 37
-24 58 45 38
-25 59 46 38
-26 60 47 39
-27 61 47 39
-28 62 48 39
-29 63 49 40
-30 64 49 40
-31 65 50 41
-32 66 50 41
-33 67 51 41
-34 68 52 42
-35 69 52 42
-36 70 53 42
-37 71 53 43
-38 72 54 43
-39 73 55 44
-40 74 55 44
-41 75 56 44
-42 76 56 45
-43 77 57 45
-44 78 58 45
-45 79 58 46
-46 80 59 46
-47 81 59 46
-48 82 60 47
-49 83 60 47
-50 84 61 47
-51 85 62 48
-52 86 62 48
-53 87 63 48
-54 88 63 49
-55 89 64 49
-56 90 65 49
-57 92 65 49
-58 93 66 50
-59 94 66 50
-60 95 67 50
-61 96 68 51
-62 97 68 51
-63 98 69 51
-64 99 69 51
-65 100 70 52
-66 101 71 52
-67 102 71 52
-68 103 72 52
-69 104 72 53
-70 105 73 53
-71 106 74 53
-72 107 74 53
-73 108 75 53
-74 109 75 54
-75 110 76 54
-76 111 76 54
-77 112 77 54
-78 113 78 54
-79 114 78 55
-80 115 79 55
-81 116 80 55
-82 117 80 55
-83 119 81 55
-84 120 81 55
-85 121 82 55
-86 122 83 56
-87 123 83 56
-88 124 84 56
-89 125 85 56
-90 126 85 56
-91 127 86 56
-92 128 86 56
-93 129 87 56
-94 130 88 57
-95 131 88 57
-96 132 89 57
-97 133 90 57
-98 134 90 57
-99 135 91 57
-100 136 92 57
-101 137 92 57
-102 138 93 57
-103 139 94 57
-104 140 94 57
-105 141 95 57
-106 142 96 57
-107 142 97 58
-108 143 97 58
-109 144 98 58
-110 145 99 58
-111 146 99 58
-112 147 100 58
-113 148 101 58
-114 149 102 58
-115 150 102 58
-116 151 103 58
-117 152 104 58
-118 153 105 58
-119 154 105 58
-120 154 106 58
-121 155 107 58
-122 156 108 58
-123 157 108 58
-124 158 109 58
-125 159 110 59
-126 160 111 59
-127 161 111 59
-128 161 112 59
-129 162 113 59
-130 163 114 59
-131 164 115 59
-132 165 116 59
-133 166 116 59
-134 166 117 59
-135 167 118 59
-136 168 119 60
-137 169 120 60
-138 169 121 60
-139 170 121 60
-140 171 122 60
-141 172 123 60
-142 173 124 60
-143 173 125 61
-144 174 126 61
-145 175 127 61
-146 175 128 61
-147 176 129 61
-148 177 129 62
-149 178 130 62
-150 178 131 62
-151 179 132 62
-152 180 133 63
-153 180 134 63
-154 181 135 63
-155 182 136 64
-156 182 137 64
-157 183 138 64
-158 184 139 65
-159 184 140 65
-160 185 141 66
-161 185 142 66
-162 186 143 66
-163 187 144 67
-164 187 145 67
-165 188 146 68
-166 188 147 68
-167 189 148 69
-168 190 149 69
-169 190 150 70
-170 191 151 71
-171 191 152 71
-172 192 153 72
-173 192 154 73
-174 193 155 73
-175 193 156 74
-176 194 157 75
-177 194 158 75
-178 195 159 76
-179 195 160 77
-180 196 161 78
-181 196 162 78
-182 197 163 79
-183 197 164 80
-184 198 165 81
-185 198 167 82
-186 199 168 83
-187 199 169 84
-188 200 170 84
-189 200 171 85
-190 201 172 86
-191 201 173 87
-192 202 174 88
-193 202 175 89
-194 202 176 90
-195 203 177 91
-196 203 178 92
-197 204 180 94
-198 204 181 95
-199 205 182 96
-200 205 183 97
-201 206 184 98
-202 206 185 99
-203 206 186 100
-204 207 187 101
-205 207 188 102
-206 208 189 104
-207 208 191 105
-208 209 192 106
-209 209 193 107
-210 210 194 108
-211 210 195 110
-212 210 196 111
-213 211 197 112
-214 211 198 113
-215 212 199 115
-216 212 201 116
-217 213 202 117
-218 213 203 119
-219 214 204 120
-220 214 205 121
-221 215 206 122
-222 215 207 124
-223 216 208 125
-224 216 210 126
-225 217 211 128
-226 217 212 129
-227 217 213 130
-228 218 214 132
-229 218 215 133
-230 219 216 135
-231 219 218 136
-232 220 219 137
-233 220 220 139
-234 221 221 140
-235 221 222 142
-236 222 223 143
-237 222 224 144
-238 223 226 146
-239 223 227 147
-240 224 228 149
-241 225 229 150
-242 225 230 152
-243 226 231 153
-244 226 232 155
-245 227 234 156
-246 227 235 157
-247 228 236 159
-248 228 237 160
-249 229 238 162
-250 229 239 163
-251 230 241 165
-252 231 242 166
-253 231 243 168
-254 232 244 169
-255 232 245 171