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 66e632e42062de4569185d6a0fe698df70bf2785..c51c2ade63a16aa81859b73ec7bbdaa91794c602 100644 --- a/pom.xml +++ b/pom.xml @@ -8,12 +8,12 @@ <parent> <artifactId>pom-icy</artifactId> <groupId>org.bioimageanalysis.icy</groupId> - <version>2.2.0</version> + <version>3.0.0-a.1</version> </parent> <!-- Project Information --> <artifactId>microscope-remote</artifactId> - <version>3.0.0</version> + <version>3.0.0-a.1</version> <name>Microscope Remote</name> <description>Move your XY Stage and Focus Device with your mouse.</description> @@ -63,8 +63,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/tprovoost/Microscopy/MicroscopeRemote/MicroscopeRemotePlugin.java b/src/main/java/plugins/tprovoost/Microscopy/MicroscopeRemote/MicroscopeRemotePlugin.java index d49896a9ce9440b461bf6cd6afb2702ee10fd194..8269d8466df6c432ce40a149ae9c4bcff7f8a393 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/MicroscopeRemote/MicroscopeRemotePlugin.java +++ b/src/main/java/plugins/tprovoost/Microscopy/MicroscopeRemote/MicroscopeRemotePlugin.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,14 +18,18 @@ package plugins.tprovoost.Microscopy.MicroscopeRemote; -import icy.gui.frame.IcyFrameAdapter; -import icy.gui.frame.IcyFrameEvent; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.gui.frame.IcyFrameAdapter; +import org.bioimageanalysis.icy.gui.frame.IcyFrameEvent; import plugins.tprovoost.Microscopy.MicroManagerForIcy.MicroscopePlugin; import plugins.tprovoost.Microscopy.gui.RemoteFrame; /** * @author Irsath Nguyen */ +@IcyPluginName("Microscope Remote") +@IcyPluginIcon(path = "/micro-remote.png") public class MicroscopeRemotePlugin extends MicroscopePlugin { // static instance static RemoteFrame instance = null; diff --git a/src/main/java/plugins/tprovoost/Microscopy/gui/InverterCheckBox.java b/src/main/java/plugins/tprovoost/Microscopy/gui/InverterCheckBox.java index 2f1625876872c079ca41fee799cbec600e76bbef..b64c4fb0dafec351c6c5acb5d006839ab8ef0aa3 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/gui/InverterCheckBox.java +++ b/src/main/java/plugins/tprovoost/Microscopy/gui/InverterCheckBox.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify diff --git a/src/main/java/plugins/tprovoost/Microscopy/gui/MemoryButton.java b/src/main/java/plugins/tprovoost/Microscopy/gui/MemoryButton.java index 4cf2a336f9db0ff3f29a834e8a990137a24f506d..13dee07ccd8b7248e03654657f509270ff07c270 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/gui/MemoryButton.java +++ b/src/main/java/plugins/tprovoost/Microscopy/gui/MemoryButton.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,9 +18,8 @@ package plugins.tprovoost.Microscopy.gui; -import icy.gui.frame.progress.AnnounceFrame; -import icy.gui.frame.progress.FailedAnnounceFrame; -import icy.type.point.Point3D; +import org.bioimageanalysis.icy.common.geom.point.Point3D; +import org.bioimageanalysis.icy.system.logging.IcyLogger; import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover; import javax.swing.*; @@ -103,7 +102,7 @@ public class MemoryButton extends JButton implements MouseListener { gotoPoint(); } catch (final Exception e1) { - new AnnounceFrame("Error while going to the saved point."); + IcyLogger.error(this.getClass(), e1, "Error while going to the saved point."); } } else { @@ -112,7 +111,7 @@ public class MemoryButton extends JButton implements MouseListener { rememberPoint(); } catch (final Exception e1) { - new FailedAnnounceFrame("Failed to save position, please try again", 3); + IcyLogger.error(this.getClass(), e1, "Failed to save position, please try again."); } } } diff --git a/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverXY.java b/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverXY.java index ce128cc336cbd3bbd4a7b31a0a068a8109c142c5..796915654f4ce5a9c81646609c2e7c24382068a5 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverXY.java +++ b/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverXY.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,6 +18,8 @@ package plugins.tprovoost.Microscopy.gui; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.jetbrains.annotations.NotNull; import plugins.tprovoost.Microscopy.MicroManager.MicroManager; import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover; @@ -45,7 +47,7 @@ public class PanelMoverXY extends JPanel implements MouseListener, MouseMotionLi private final RemoteFrame frame; private final Thread moveThread; - public PanelMoverXY(final RemoteFrame frame) { + public PanelMoverXY(final @NotNull RemoteFrame frame) { super(); this.frame = frame; @@ -154,14 +156,14 @@ public class PanelMoverXY extends JPanel implements MouseListener, MouseMotionLi StageMover.moveXYRelative(movementX, movementY, true); } - private double norm(final Point2D vector) { + private double norm(final @NotNull Point2D vector) { final double x = vector.getX(); final double y = vector.getY(); return Math.sqrt(x * x + y * y); } @Override - public void mouseDragged(final MouseEvent e) { + public void mouseDragged(final @NotNull MouseEvent e) { int x = e.getX(); int y = e.getY(); final int width = getWidth(); @@ -181,7 +183,7 @@ public class PanelMoverXY extends JPanel implements MouseListener, MouseMotionLi } @Override - public void mousePressed(final MouseEvent e) { + public void mousePressed(final @NotNull MouseEvent e) { vector.setLocation(e.getX() - (getWidth() / 2d), e.getY() - (getHeight() / 2d)); repaint(); } @@ -208,6 +210,7 @@ public class PanelMoverXY extends JPanel implements MouseListener, MouseMotionLi public void mouseExited(final MouseEvent e) { } + @SuppressWarnings("BusyWait") @Override public void run() { while (!moveThread.isInterrupted()) { @@ -219,7 +222,7 @@ public class PanelMoverXY extends JPanel implements MouseListener, MouseMotionLi moveThread.interrupt(); } catch (final Exception e) { - System.err.println(e.getMessage()); + IcyLogger.error(this.getClass(), e); } } } diff --git a/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverZ.java b/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverZ.java index 6aa7088d1d0490f83076f2fb5ed68170b17db160..e082b4ba5b7bb4c193dc7d774c0c38b06512b4b5 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverZ.java +++ b/src/main/java/plugins/tprovoost/Microscopy/gui/PanelMoverZ.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,6 +18,8 @@ package plugins.tprovoost.Microscopy.gui; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.jetbrains.annotations.NotNull; import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover; import javax.swing.*; @@ -50,7 +52,7 @@ public class PanelMoverZ extends JPanel implements MouseListener, MouseMotionLis private final Thread moveThread; private double offZ = 0d; - public PanelMoverZ(final RemoteFrame frame) { + public PanelMoverZ(final @NotNull RemoteFrame frame) { super(); this.frame = frame; @@ -100,7 +102,7 @@ public class PanelMoverZ extends JPanel implements MouseListener, MouseMotionLis } @Override - public void mouseDragged(final MouseEvent e) { + public void mouseDragged(final @NotNull MouseEvent e) { final int movY = e.getY() - oldY; if (movY == 0) return; @@ -143,7 +145,7 @@ public class PanelMoverZ extends JPanel implements MouseListener, MouseMotionLis } @Override - public void mousePressed(final MouseEvent e) { + public void mousePressed(final @NotNull MouseEvent e) { oldY = e.getY(); setCursor(new Cursor(Cursor.S_RESIZE_CURSOR)); repaint(); @@ -155,6 +157,7 @@ public class PanelMoverZ extends JPanel implements MouseListener, MouseMotionLis repaint(); } + @SuppressWarnings("BusyWait") @Override public void run() { while (!moveThread.isInterrupted()) { @@ -174,7 +177,7 @@ public class PanelMoverZ extends JPanel implements MouseListener, MouseMotionLis moveThread.interrupt(); } catch (final Exception e) { - System.err.println(e.getMessage()); + IcyLogger.error(this.getClass(), e); } } } diff --git a/src/main/java/plugins/tprovoost/Microscopy/gui/RemoteFrame.java b/src/main/java/plugins/tprovoost/Microscopy/gui/RemoteFrame.java index 0decec3250a03c4a9c07461205a02e05091b3a35..28214dde6945a96bdb9313787be6baca99a502c5 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/gui/RemoteFrame.java +++ b/src/main/java/plugins/tprovoost/Microscopy/gui/RemoteFrame.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,14 @@ package plugins.tprovoost.Microscopy.gui; -import icy.gui.frame.IcyFrame; -import icy.gui.util.GuiUtil; -import icy.image.ImageUtil; -import icy.network.NetworkUtil; -import icy.resource.icon.IcyIcon; -import icy.type.point.Point3D; -import icy.util.StringUtil; +import org.bioimageanalysis.icy.common.geom.point.Point3D; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.gui.GuiUtil; +import org.bioimageanalysis.icy.gui.LookAndFeelUtil; +import org.bioimageanalysis.icy.gui.frame.IcyFrame; +import org.bioimageanalysis.icy.model.image.ImageUtil; +import org.bioimageanalysis.icy.network.NetworkUtil; +import org.jetbrains.annotations.NotNull; import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover; import plugins.tprovoost.Microscopy.MicroManager.tools.StageMover.StageListener; import plugins.tprovoost.Microscopy.MicroManagerForIcy.MicroscopePlugin; @@ -84,7 +85,7 @@ public class RemoteFrame extends IcyFrame implements StageListener { private static final String REMOTE = "prefs_remote"; private static final String SPEED = "speed"; - public RemoteFrame(final MicroscopeRemotePlugin plugin) { + public RemoteFrame(final @NotNull MicroscopeRemotePlugin plugin) { super("Remote", false, true, false, true); this.plugin = plugin; @@ -130,7 +131,6 @@ public class RemoteFrame extends IcyFrame implements StageListener { panel_speed.setOpaque(false); _sliderSpeed = new JSlider(1, 10, 1) { - private static final long serialVersionUID = 1L; private final BufferedImage toDraw; final int heightKnob; @@ -188,9 +188,8 @@ public class RemoteFrame extends IcyFrame implements StageListener { final MemoryButton btnM3 = new MemoryButton("M3", imgMemBtnOn, imgMemBtnOff); final MemoryButton btnM4 = new MemoryButton("M4", imgMemBtnOn, imgMemBtnOff); - final JButton btnHelp = new JButton(new IcyIcon(imgMemBtnOff)) { - private static final long serialVersionUID = 1L; - + final int iconSize = LookAndFeelUtil.getDefaultIconSize(); + final JButton btnHelp = new JButton(new ImageIcon(imgMemBtnOff.getScaledInstance(iconSize, iconSize, Image.SCALE_SMOOTH))) { @Override public void paint(final Graphics g) { final int w = getWidth(); @@ -245,7 +244,7 @@ public class RemoteFrame extends IcyFrame implements StageListener { final JPanel panelAll = new JPanel() { @Override - protected void paintComponent(final Graphics g) { + protected void paintComponent(final @NotNull Graphics g) { checkInverts(); g.drawImage(imgRemoteBg, 0, 0, getWidth(), getHeight(), null); } diff --git a/src/main/resources/micro-remote.png b/src/main/resources/micro-remote.png new file mode 100644 index 0000000000000000000000000000000000000000..733d83a9526fa9eeda04f6a6bba56f9d76bd5a7f Binary files /dev/null and b/src/main/resources/micro-remote.png differ