diff --git a/.gitignore b/.gitignore index 8d47cace3a5bd898da9fb12bed716d60838191a4..57f16fb67c1b1589981416b323d7a9debc728665 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,41 @@ -.idea/ +/build* +/workspace +setting.xml +release/ target/ -.settings/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +icy.log + +### IntelliJ IDEA ### +.idea/ +*.iws *.iml -.project +*.ipr + +### Eclipse ### +.apt_generated .classpath -**/.DS_Store \ No newline at end of file +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +**/.DS_Store +Icon? \ No newline at end of file diff --git a/pom.xml b/pom.xml index 82a4ff738b8bfe382d4ea39ab5ab9001f564ec6c..3056144983b622609e635b26b0dba6954963c776 100644 --- a/pom.xml +++ b/pom.xml @@ -8,12 +8,12 @@ <parent> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>pom-icy</artifactId> - <version>2.2.0</version> + <version>3.0.0-a.1</version> </parent> <!-- Project Information --> <artifactId>kmeans-color-quantization</artifactId> - <version>2.0.0</version> + <version>2.0.0-a.1</version> <name>KMeans Color Quantization</name> <description>Quantize a color image in any given number of colors.</description> @@ -68,8 +68,7 @@ <repositories> <repository> <id>icy</id> - <name>Icy's Nexus</name> - <url>https://icy-nexus.pasteur.fr/repository/Icy/</url> + <url>https://nexus-icy.pasteur.cloud/repository/icy/</url> </repository> </repositories> </project> \ No newline at end of file diff --git a/src/main/java/plugins/nherve/colorquantization/KMeansColorQuantization.java b/src/main/java/plugins/nherve/colorquantization/KMeansColorQuantization.java index 767e55a549d61777b9378f478772d1aba1198f9f..ac1e89f8d25a97824c9eb0ab1a742c8831e3c049 100644 --- a/src/main/java/plugins/nherve/colorquantization/KMeansColorQuantization.java +++ b/src/main/java/plugins/nherve/colorquantization/KMeansColorQuantization.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,13 +18,16 @@ package plugins.nherve.colorquantization; -import icy.gui.util.ComponentUtil; -import icy.gui.util.GuiUtil; -import icy.main.Icy; -import icy.preferences.XMLPreferences; -import icy.sequence.Sequence; -import icy.swimmingPool.SwimmingObject; -import icy.system.IcyExceptionHandler; +import org.bioimageanalysis.icy.Icy; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.gui.GuiUtil; +import org.bioimageanalysis.icy.gui.component.ComponentUtil; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.model.swimmingPool.SwimmingObject; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.bioimageanalysis.icy.system.preferences.XMLPreferences; +import org.jetbrains.annotations.NotNull; import plugins.nherve.maskeditor.MaskEditor; import plugins.nherve.toolbox.Algorithm; import plugins.nherve.toolbox.NherveToolbox; @@ -68,6 +71,8 @@ import java.util.Map; * * @author Nicolas HERVE - nicolas.herve@pasteur.fr */ +@IcyPluginName("KMeans Color Quantization") +@IcyPluginIcon(path = "/KMeansColorQuantization_icon.png") public class KMeansColorQuantization extends SingletonPlugin implements ActionListener { private static final String HELP = "<html>" + "<p align=\"center\"><b>" + HelpWindow.getTagFullPluginName() + "</b></p>" + "<p align=\"center\"><b>" + NherveToolbox.getDevNameHtml() + "</b></p>" + "<p align=\"center\"><b>" + NherveToolbox.getCopyrightHtml() + "</b></p>" + "<hr/>" + "<p>" + HelpWindow.getTagPluginName() + NherveToolbox.getLicenceHtml() + "</p>" + "<p>" + NherveToolbox.getLicenceHtmllink() + "</p>" + "</html>"; @@ -145,7 +150,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi } @Override - public void fillInterface(final JPanel mainPanel) { + public void fillInterface(final @NotNull JPanel mainPanel) { currentlyRunning = null; final XMLPreferences preferences = getPreferences(); @@ -224,7 +229,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi preferences.putBoolean("dsp", cbDisplay.isSelected()); } catch (final NumberFormatException e) { - IcyExceptionHandler.showErrorMessage(e, true); + IcyLogger.error(this.getClass(), e, "Error parsing color space."); } } @@ -235,7 +240,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override - public void actionPerformed(final ActionEvent e) { + public void actionPerformed(final @NotNull ActionEvent e) { final JButton b = (JButton) e.getSource(); if (b == null) { return; @@ -272,7 +277,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi } } catch (final SupportRegionException | SegmentationException | InterruptedException | InvocationTargetException | MaskException | NumberFormatException | SignatureException e1) { - logError(e1.getClass().getName() + " : " + e1.getMessage()); + IcyLogger.error(this.getClass(), e1, "Error while clustering."); } }); currentlyRunning.start(); @@ -304,7 +309,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi * @param seg the seg * @return the some stats */ - private void getSomeStats(final Segmentation seg) { + private void getSomeStats(final @NotNull Segmentation seg) { final DecimalFormat df = new DecimalFormat("0"); Algorithm.out("id;label;h1;h2;h3"); for (final Mask m : seg) { @@ -325,7 +330,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi * @throws NumberFormatException the number format exception * @throws SignatureException the signature exception */ - private Segmentation doClustering(final Sequence currentSequence) throws SupportRegionException, SegmentationException, MaskException, NumberFormatException, SignatureException { + private @NotNull Segmentation doClustering(final Sequence currentSequence) throws SupportRegionException, SegmentationException, MaskException, NumberFormatException, SignatureException { final Segmentation seg; seg = doClusteringKM(currentSequence); @@ -346,7 +351,7 @@ public class KMeansColorQuantization extends SingletonPlugin implements ActionLi * @throws SegmentationException the segmentation exception * @throws NumberFormatException the number format exception */ - private Segmentation doClusteringKM(final Sequence currentSequence) throws SupportRegionException, SegmentationException, NumberFormatException { + private Segmentation doClusteringKM(final @NotNull Sequence currentSequence) throws SupportRegionException, SegmentationException, NumberFormatException { final int nbc2 = Integer.parseInt(tfNbCluster2.getText()); final int nbi2 = Integer.parseInt(tfNbIteration2.getText()); final double stab2 = Double.parseDouble(tfStabCrit2.getText());