From 53aa40cd7f9a9b794bf6e93efbfd5440c08f645c Mon Sep 17 00:00:00 2001
From: tpietzsch <tobias.pietzsch@gmail.com>
Date: Mon, 7 Sep 2020 11:51:15 +0200
Subject: [PATCH] Rename MemoryFixedDialog to DelayedPackDialog, don't mess
 with defaultCloseOperation

---
 src/main/java/bdv/tools/HelpDialog.java       |  5 ++---
 .../bdv/tools/RecordMaxProjectionDialog.java  |  5 ++---
 .../java/bdv/tools/RecordMovieDialog.java     |  5 ++---
 .../tools/VisibilityAndGroupingDialog.java    |  5 ++---
 .../tools/brightness/BrightnessDialog.java    |  5 ++---
 ...ixedDialog.java => DelayedPackDialog.java} | 21 ++++++-------------
 6 files changed, 16 insertions(+), 30 deletions(-)
 rename src/main/java/bdv/util/{MemoryFixedDialog.java => DelayedPackDialog.java} (54%)

diff --git a/src/main/java/bdv/tools/HelpDialog.java b/src/main/java/bdv/tools/HelpDialog.java
index 4ccd0fcb..61edcb7e 100644
--- a/src/main/java/bdv/tools/HelpDialog.java
+++ b/src/main/java/bdv/tools/HelpDialog.java
@@ -28,7 +28,7 @@
  */
 package bdv.tools;
 
-import bdv.util.MemoryFixedDialog;
+import bdv.util.DelayedPackDialog;
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
@@ -48,9 +48,8 @@ import javax.swing.JEditorPane;
 import javax.swing.JScrollPane;
 import javax.swing.KeyStroke;
 import javax.swing.ScrollPaneConstants;
-import javax.swing.WindowConstants;
 
-public class HelpDialog extends MemoryFixedDialog
+public class HelpDialog extends DelayedPackDialog
 {
 	private static final long serialVersionUID = 1L;
 
diff --git a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
index dcc42668..3ec54303 100644
--- a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
+++ b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
@@ -30,7 +30,7 @@ package bdv.tools;
 
 import bdv.cache.CacheControl;
 import bdv.export.ProgressWriter;
-import bdv.util.MemoryFixedDialog;
+import bdv.util.DelayedPackDialog;
 import bdv.util.Prefs;
 import bdv.viewer.BasicViewerState;
 import bdv.viewer.ViewerPanel;
@@ -64,7 +64,6 @@ import javax.swing.JSpinner;
 import javax.swing.JTextField;
 import javax.swing.KeyStroke;
 import javax.swing.SpinnerNumberModel;
-import javax.swing.WindowConstants;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import net.imglib2.Cursor;
@@ -77,7 +76,7 @@ import bdv.viewer.OverlayRenderer;
 import bdv.viewer.render.RenderTarget;
 import net.imglib2.util.LinAlgHelpers;
 
-public class RecordMaxProjectionDialog extends MemoryFixedDialog implements OverlayRenderer
+public class RecordMaxProjectionDialog extends DelayedPackDialog implements OverlayRenderer
 {
 	private static final long serialVersionUID = 1L;
 
diff --git a/src/main/java/bdv/tools/RecordMovieDialog.java b/src/main/java/bdv/tools/RecordMovieDialog.java
index ae5c564f..cf35bcbd 100644
--- a/src/main/java/bdv/tools/RecordMovieDialog.java
+++ b/src/main/java/bdv/tools/RecordMovieDialog.java
@@ -30,7 +30,7 @@ package bdv.tools;
 
 import bdv.cache.CacheControl;
 import bdv.export.ProgressWriter;
-import bdv.util.MemoryFixedDialog;
+import bdv.util.DelayedPackDialog;
 import bdv.util.Prefs;
 import bdv.viewer.BasicViewerState;
 import bdv.viewer.ViewerPanel;
@@ -63,14 +63,13 @@ import javax.swing.JSpinner;
 import javax.swing.JTextField;
 import javax.swing.KeyStroke;
 import javax.swing.SpinnerNumberModel;
-import javax.swing.WindowConstants;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import net.imglib2.realtransform.AffineTransform3D;
 import bdv.viewer.OverlayRenderer;
 import bdv.viewer.render.RenderTarget;
 
-public class RecordMovieDialog extends MemoryFixedDialog implements OverlayRenderer
+public class RecordMovieDialog extends DelayedPackDialog implements OverlayRenderer
 {
 	private static final long serialVersionUID = 1L;
 
diff --git a/src/main/java/bdv/tools/VisibilityAndGroupingDialog.java b/src/main/java/bdv/tools/VisibilityAndGroupingDialog.java
index 9b5b2bac..b1da27e2 100644
--- a/src/main/java/bdv/tools/VisibilityAndGroupingDialog.java
+++ b/src/main/java/bdv/tools/VisibilityAndGroupingDialog.java
@@ -28,7 +28,7 @@
  */
 package bdv.tools;
 
-import bdv.util.MemoryFixedDialog;
+import bdv.util.DelayedPackDialog;
 import bdv.viewer.SourceAndConverter;
 import bdv.viewer.ViewerState;
 import bdv.viewer.VisibilityAndGrouping;
@@ -68,12 +68,11 @@ import javax.swing.JRadioButton;
 import javax.swing.JTextField;
 import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
-import javax.swing.WindowConstants;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 
 @Deprecated
-public class VisibilityAndGroupingDialog extends MemoryFixedDialog
+public class VisibilityAndGroupingDialog extends DelayedPackDialog
 {
 	private static final long serialVersionUID = 1L;
 
diff --git a/src/main/java/bdv/tools/brightness/BrightnessDialog.java b/src/main/java/bdv/tools/brightness/BrightnessDialog.java
index aabaeea4..ce98337f 100644
--- a/src/main/java/bdv/tools/brightness/BrightnessDialog.java
+++ b/src/main/java/bdv/tools/brightness/BrightnessDialog.java
@@ -60,12 +60,11 @@ import javax.swing.JSpinner;
 import javax.swing.KeyStroke;
 import javax.swing.SpinnerNumberModel;
 import javax.swing.SwingUtilities;
-import javax.swing.WindowConstants;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 
 import bdv.util.InvokeOnEDT;
-import bdv.util.MemoryFixedDialog;
+import bdv.util.DelayedPackDialog;
 import mpicbg.spim.data.generic.sequence.BasicViewSetup;
 import net.imglib2.type.numeric.ARGBType;
 
@@ -76,7 +75,7 @@ import net.imglib2.type.numeric.ARGBType;
  * @author Tobias Pietzsch &lt;tobias.pietzsch@gmail.com&gt;
  */
 @Deprecated
-public class BrightnessDialog extends MemoryFixedDialog
+public class BrightnessDialog extends DelayedPackDialog
 {
 	public BrightnessDialog( final Frame owner, final SetupAssignments setupAssignments )
 	{
diff --git a/src/main/java/bdv/util/MemoryFixedDialog.java b/src/main/java/bdv/util/DelayedPackDialog.java
similarity index 54%
rename from src/main/java/bdv/util/MemoryFixedDialog.java
rename to src/main/java/bdv/util/DelayedPackDialog.java
index 9f60c07b..3d3d1787 100644
--- a/src/main/java/bdv/util/MemoryFixedDialog.java
+++ b/src/main/java/bdv/util/DelayedPackDialog.java
@@ -3,17 +3,14 @@ package bdv.util;
 import javax.swing.*;
 import java.awt.*;
 
-public class MemoryFixedDialog extends JDialog
+/**
+ * A {@code JDialog} that delays {@code pack()} calls until the dialog is made visible.
+ */
+public class DelayedPackDialog extends JDialog
 {
-	private boolean packIsPending = false;
+	private volatile boolean packIsPending = false;
 
-	public MemoryFixedDialog()
-	{
-		super();
-		super.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
-	}
-
-	public MemoryFixedDialog( Frame owner, String title, boolean modal )
+	public DelayedPackDialog( Frame owner, String title, boolean modal )
 	{
 		super( owner, title, modal );
 	}
@@ -40,10 +37,4 @@ public class MemoryFixedDialog extends JDialog
 		}
 		super.setVisible( visible );
 	}
-
-	@Override
-	public void setDefaultCloseOperation( int operation )
-	{
-		// do nothing
-	}
 }
-- 
GitLab