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