From e3061fce7d7e6aa88ac86ad96eba67eb4d0170e4 Mon Sep 17 00:00:00 2001 From: Thomas <thomas.musset@pasteur.fr> Date: Sun, 7 Jul 2024 17:23:04 +0200 Subject: [PATCH] updated pom to v2.0.0-a.1, fix classes accordingly to new architecture, updated .gitignore --- .gitignore | 41 ++++++- pom.xml | 36 +----- .../TimeStampOverlay$DisplayStyle.class | Bin 1243 -> 0 bytes .../fab/timestamp/TimeStampOverlay.class | Bin 5735 -> 0 bytes .../fab/timestamp/TimeStampOverlay.java | 112 +++++++++--------- .../plugins/fab/timestamp/Timestamp.class | Bin 1124 -> 0 bytes .../java/plugins/fab/timestamp/Timestamp.java | 33 ++++-- 7 files changed, 125 insertions(+), 97 deletions(-) delete mode 100644 src/main/java/plugins/fab/timestamp/TimeStampOverlay$DisplayStyle.class delete mode 100644 src/main/java/plugins/fab/timestamp/TimeStampOverlay.class delete mode 100644 src/main/java/plugins/fab/timestamp/Timestamp.class diff --git a/.gitignore b/.gitignore index 3d47f98..57f16fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +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 +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath .project -.classpath \ No newline at end of file +.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 3a88b34..b1cf0ac 100644 --- a/pom.xml +++ b/pom.xml @@ -6,16 +6,14 @@ <!-- Inherited Icy Parent POM --> <parent> - <artifactId>pom-icy</artifactId> + <artifactId>pom-icy</artifactId> <groupId>org.bioimageanalysis.icy</groupId> - <version>2.0.0</version> - </parent> + <version>3.0.0-a.1</version> + </parent> <!-- Project Information --> <artifactId>timestamp-overlay</artifactId> - <version>1.0.6</version> - - <packaging>jar</packaging> + <version>2.0.0-a.1</version> <name>Timestamp Overlay</name> <description>Displays a customizable time stamp over a 2D sequence.</description> @@ -53,35 +51,11 @@ </developer> </developers> - <!-- Project properties --> - <properties> - - </properties> - - <profiles> - <profile> - <id>icy-plugin</id> - <activation> - <activeByDefault>true</activeByDefault> - </activation> - </profile> - </profiles> - - <!-- List of project's dependencies --> - <dependencies> - <!-- The core of Icy --> - <dependency> - <groupId>org.bioimageanalysis.icy</groupId> - <artifactId>icy-kernel</artifactId> - </dependency> - </dependencies> - <!-- Icy Maven repository (to find parent POM) --> <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> diff --git a/src/main/java/plugins/fab/timestamp/TimeStampOverlay$DisplayStyle.class b/src/main/java/plugins/fab/timestamp/TimeStampOverlay$DisplayStyle.class deleted file mode 100644 index dfca7e9ba05cd8567731af1d9f74b4c160bbee1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1243 zcmbVL?@!uL6g|%Zh1#iO1M$axGY9BEXJ(c_jK<+Y2AWtTA^Y@TPgYY3X^RQ})rKE5 zTW0oof7G)3D${1kl7%Miz4yI)&O5g~{rT(b6@X2=QZdD_*|!EA({>9dyjAebu5dlx z?HB5l88SOO6OP4)>9?lar)YRXOQ;Aj%$)KwUa+{`DU|I&mm$1=v|B4Pysl0_S!4*+ zD-u3kJ~*zW8@tuxvca(RVM4ZOsco6I>1{J8nQVjT_j(^i6k!bvvpVK*mmyLbw<I&w z+i?ufG3`#Vl5NDO_nwY0B2lQaNa|1#ky%Pd6fvTznzlF?bX&ry^OhwT;?-W8TMh1* zvi27>D3~P)-Y3(gQ_r|H5R|;hWG5R>!(%*E@q}S6AbaR~qO0Q>(hM=~IDFXd^@j|( z;BbenQ_=Q{mB74zmS|uG)fabo!cYmq#_uFM(btgUXLLMAmfR6!-Ltss76Vdlj=3F6 znv2|_8NGqi7W<}r#fiV|nV0=EwPAK_?hPF3c^9CS9Hoh*Z`09w#kPgxYZb1Fb%vGy zb2veRzs=4%`9`6CPuW?Jo&qS6oq)MTX(rkUQPeO^eL7V~RLd*>4Xhczqg-I-9C5$6 zAM%St_&aSWBgBnnXoQ4uj`=Tyn8E@*HHttAi%8NfSLIF4AM<aJ8mULktu9|+=@uBF z28=<vpQ~7wLP_KUJRHNfXb1^UjxgVRujH<pC8?&SEM4N!+GpCimT}F-ZY0FW2`gic l9QDYvv^dLM;>8cJf8!M7e9l#@`SB(45=nT50ycJ1zX4a!Fq{AY diff --git a/src/main/java/plugins/fab/timestamp/TimeStampOverlay.class b/src/main/java/plugins/fab/timestamp/TimeStampOverlay.class deleted file mode 100644 index a3e9ba1400212327f34cf891c077f373e2dac685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5735 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 b1q#F>v6#;is-2Fv#S+>(i3P~ghVu6T;7P@w diff --git a/src/main/java/plugins/fab/timestamp/TimeStampOverlay.java b/src/main/java/plugins/fab/timestamp/TimeStampOverlay.java index 0d3ea62..dfb558f 100644 --- a/src/main/java/plugins/fab/timestamp/TimeStampOverlay.java +++ b/src/main/java/plugins/fab/timestamp/TimeStampOverlay.java @@ -1,28 +1,43 @@ +/* + * Copyright (c) 2010-2024. Institut Pasteur. + * + * This file is part of Icy. + * Icy 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. + * + * Icy 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 Icy. If not, see <https://www.gnu.org/licenses/>. + */ + package plugins.fab.timestamp; -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics2D; +import org.bioimageanalysis.icy.common.geom.point.Point5D; +import org.bioimageanalysis.icy.common.math.MathUtil; +import org.bioimageanalysis.icy.common.math.UnitUtil; +import org.bioimageanalysis.icy.common.string.StringUtil; +import org.bioimageanalysis.icy.gui.GraphicsUtil; +import org.bioimageanalysis.icy.gui.canvas.IcyCanvas; +import org.bioimageanalysis.icy.model.overlay.Overlay; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.bioimageanalysis.icy.system.logging.IcyLogger; +import org.jetbrains.annotations.NotNull; + +import java.awt.*; import java.awt.event.KeyEvent; -import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.util.concurrent.TimeUnit; -import icy.canvas.IcyCanvas; -import icy.gui.frame.progress.AnnounceFrame; -import icy.math.MathUtil; -import icy.math.UnitUtil; -import icy.painter.Overlay; -import icy.sequence.Sequence; -import icy.util.GraphicsUtil; -import icy.util.StringUtil; - -public class TimeStampOverlay extends Overlay -{ - enum DisplayStyle - { +public class TimeStampOverlay extends Overlay { + enum DisplayStyle { FRAME, TIME - }; + } String timeStampText; int x; @@ -33,8 +48,7 @@ public class TimeStampOverlay extends Overlay int fontSize = 20; int displaySelectionIndex = 0; - public TimeStampOverlay(Sequence sequence) - { + public TimeStampOverlay(final @NotNull Sequence sequence) { super("Timestamp"); x = 20; @@ -44,14 +58,12 @@ public class TimeStampOverlay extends Overlay /** * Display the time with all the units. - * - * @param valueInMs - * : value in milliseconds + * + * @param valueInMs : value in milliseconds * @param displayMs : Even if a unit is not relevant (equals to zero), it will be displayed. * @return <b>Example:</b> "2h 3min 40sec 350ms". */ - public static String getTimeAsString(double valueInMs, boolean displayMs) - { + public static String getTimeAsString(final double valueInMs, final boolean displayMs) { double v = Math.abs(valueInMs); final int day = (int) (v / (24d * 60d * 60d * 1000d)); @@ -69,37 +81,34 @@ public class TimeStampOverlay extends Overlay if (day > 0) result += day + "d "; if (hour > 0) - result += String.format("%2dh ", Integer.valueOf(hour)); + result += String.format("%2dh ", hour); else if (!StringUtil.isEmpty(result)) result += "00h "; if (minute > 0) - result += String.format("%2dmin ", Integer.valueOf(minute)); + result += String.format("%2dmin ", minute); else if (!StringUtil.isEmpty(result)) result += "00min "; if (second > 0) - result += String.format("%2dsec ", Integer.valueOf(second)); + result += String.format("%2dsec ", second); else if (!StringUtil.isEmpty(result)) result += "00sec "; if (ms > 0d) - result += String.format("%05.1fms", Double.valueOf(ms)); + result += String.format("%05.1fms", ms); else if (displayMs && !StringUtil.isEmpty(result)) - result += String.format("%05.1fms", Double.valueOf(0)); + result += String.format("%05.1fms", 0d); return result; } @Override - public void paint(Graphics2D g, Sequence sequence, IcyCanvas canvas) - { - + public void paint(final Graphics2D g, final Sequence sequence, final IcyCanvas canvas) { if (g == null) return; g.setColor(Color.white); g.setFont(font); - switch (displayStyle) - { + switch (displayStyle) { case FRAME: timeStampText = "Current frame: " + canvas.getPositionT(); break; @@ -107,7 +116,7 @@ public class TimeStampOverlay extends Overlay case TIME: final double timeIntervalMs = sequence.getTimeInterval() * 1000d; final TimeUnit unit = UnitUtil.getBestTimeUnit(timeIntervalMs * 10); - double ms = canvas.getPositionT() * timeIntervalMs; + final double ms = canvas.getPositionT() * timeIntervalMs; // minute or "higher" time unit ? if (unit.ordinal() >= TimeUnit.MINUTES.ordinal()) @@ -119,32 +128,28 @@ public class TimeStampOverlay extends Overlay g.drawString(timeStampText, x, y); - Rectangle2D r = GraphicsUtil.getStringBounds(g, font, timeStampText); + final Rectangle2D r = GraphicsUtil.getStringBounds(g, font, timeStampText); r.setRect(r.getX() + x, r.getY() + y, r.getWidth(), r.getHeight()); textBound = r; } @Override - public void keyPressed(KeyEvent e, Point2D imagePoint, IcyCanvas canvas) - { + public void keyPressed(final KeyEvent e, final Point5D.Double imagePoint, final IcyCanvas canvas) { if (e.isConsumed()) return; - if (e.getKeyChar() == 'm') - { + if (e.getKeyChar() == 'm') { x = (int) imagePoint.getX(); y = (int) imagePoint.getY(); - canvas.getSequence().painterChanged(this); + canvas.getSequence().overlayChanged(this); return; } // if ( !isPointInTextArea( imagePoint ) ) return; - if (e.getKeyChar() == 't') - { + if (e.getKeyChar() == 't') { displaySelectionIndex++; - if (displaySelectionIndex >= DisplayStyle.values().length) - { + if (displaySelectionIndex >= DisplayStyle.values().length) { displaySelectionIndex = 0; } @@ -152,26 +157,23 @@ public class TimeStampOverlay extends Overlay } - if (e.getKeyChar() == '+') - { + if (e.getKeyChar() == '+') { fontSize++; } - if (e.getKeyChar() == '-') - { + if (e.getKeyChar() == '-') { fontSize--; if (fontSize < 2) fontSize = 2; } - if (e.getKeyChar() == 'k') - { - canvas.getSequence().removePainter(this); - new AnnounceFrame("Time Stamp removed", 2); + if (e.getKeyChar() == 'k') { + canvas.getSequence().removeOverlay(this); + IcyLogger.info(this.getClass(), "Time Stamp removed"); } font = new Font("Arial", Font.BOLD, fontSize); - canvas.getSequence().painterChanged(this); + canvas.getSequence().overlayChanged(this); e.consume(); } diff --git a/src/main/java/plugins/fab/timestamp/Timestamp.class b/src/main/java/plugins/fab/timestamp/Timestamp.class deleted file mode 100644 index 09638ce64d13ceab40237f6f438d4c8e12bb17ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmah|O;1xn6g@)=t+fbL`BY&LftE&Q;f^*<)Pz-4k~SFKnCa`Z9eI84F>eaif8_=e zNnE<{HyPud*9QwDaWUWbo_p>+cYgl<_8q`;?By`Uuo3yAz7As1lO198P{mdbBhkLz z<&b6A*4|i542A5()=1BO6i12Y3(x8>kR4w!%+z(DZG$0Gt{gLDUxi&&Kn8b;n8pml zTvG??&1l$Brakc}HA7GO$I@tbPA{`|pks#3=6|@=D3BQiIm|O`Ig0&}7Cj?}N<=2? z8x_Z*9fp2eM~Ch<j}l`q>jOLV8}&}Z<=ArBa@p;w?tWc#=-MRX$d{ht<8WlSH!^W( zczC7^w*$p*+;(Gb)o06P(B*a<DINwidWlgl^!@N$2Yv1<Yn36>kb46e^i}fS)p6v@ z@j(*L*9~s@0gunM^#;6W!XZsW*f}{(czF~%tYjZk!BmB(2zBRN70<|B2cA(fR$TC| zO1Hf*usqgZRAM(It05(l0wuXSUXu)clEP`3n4XZSQGXfNMN+#0=J3Ety2!9tZhn$y zQuvgbXjwxvYn9^y7?z7z!79T-Us=~AXR4)6M=J2BQC7>9rV}hqZ^ZReEr*8;JGTp; z2=<n=pz0N{hR2S_I>TD|7C=Xa<4F#iME0LCi`c?bh5~g#3e2!Ffs3RLNIj9>*D4<v z^4Fv(#am)B%o0!U<h6{_mM*lYl{|H*-8Z@CS}1na-*>gcCRHm#e-fCY9sLxVb9554 zGFqqiE|LG5JQrwo&me=lG#4iZw9e9rpl_T{ktH}_;|g=7g-hJuyTDSj`UCUTE3Cb* zUgFUOHr_ed3>@qdMFuIG$0C6(V}ayb$7&L0X#$monMDcP*r9N{<dFyah4ma2nW0SQ HDOCOd63#F@ diff --git a/src/main/java/plugins/fab/timestamp/Timestamp.java b/src/main/java/plugins/fab/timestamp/Timestamp.java index e6d10a7..e54ab37 100644 --- a/src/main/java/plugins/fab/timestamp/Timestamp.java +++ b/src/main/java/plugins/fab/timestamp/Timestamp.java @@ -1,17 +1,34 @@ -package plugins.fab.timestamp; +/* + * Copyright (c) 2010-2024. Institut Pasteur. + * + * This file is part of Icy. + * Icy 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. + * + * Icy 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 Icy. If not, see <https://www.gnu.org/licenses/>. + */ -import icy.gui.frame.progress.ToolTipFrame; -import icy.plugin.abstract_.PluginActionable; -import icy.sequence.Sequence; +package plugins.fab.timestamp; -public class Timestamp extends PluginActionable -{ +import org.bioimageanalysis.icy.extension.plugin.abstract_.PluginActionable; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.gui.frame.progress.ToolTipFrame; +import org.bioimageanalysis.icy.model.sequence.Sequence; +@IcyPluginName("Timestamp") +public class Timestamp extends PluginActionable { // IcyFrame mainFrame ; @Override - public void run() - { + public void run() { new ToolTipFrame("<html>" + "<b>TimeStamp added.</b>" + "<br>" + "<br>Place your cursor over the TimeStamp's text and type one of the following letters to change the display:" + "<br>" + "<li> t : switch from frame to time (using time scale) display" -- GitLab