Bundle: fix memory leak at init/reset
[fanfix.git] / ui / WaitingDialog.java
index 2c02c092fa4152bf89566dd82c62bfbafbaeded9..0fd4574d893aa5e5650e4adc73e83ae9efba15ae 100644 (file)
@@ -32,7 +32,7 @@ public class WaitingDialog extends JDialog {
         *            the parent/owner of this {@link WaitingDialog}
         * @param delayMs
         *            the delay after which to show the dialog if it is still not
-        *            dismiss (see {@link WaitingDialog#done()})
+        *            dismiss (see {@link WaitingDialog#dismiss()})
         */
        public WaitingDialog(Window parent, long delayMs) {
                this(parent, delayMs, null, null);
@@ -45,12 +45,12 @@ public class WaitingDialog extends JDialog {
         *            the parent/owner of this {@link WaitingDialog}
         * @param delayMs
         *            the delay after which to show the dialog if it is still not
-        *            dismiss (see {@link WaitingDialog#done()})
+        *            dismiss (see {@link WaitingDialog#dismiss()})
         * @param pg
         *            the {@link Progress} to listen on -- when it is
         *            {@link Progress#done()}, this {@link WaitingDialog} will
-        *            automatically be dismissed as if {@link WaitingDialog#done()}
-        *            was called
+        *            automatically be dismissed as if
+        *            {@link WaitingDialog#dismiss()} was called
         */
        public WaitingDialog(Window parent, long delayMs, Progress pg) {
                this(parent, delayMs, pg, null);
@@ -63,7 +63,7 @@ public class WaitingDialog extends JDialog {
         *            the parent/owner of this {@link WaitingDialog}
         * @param delayMs
         *            the delay after which to show the dialog if it is still not
-        *            dismiss (see {@link WaitingDialog#done()})
+        *            dismiss (see {@link WaitingDialog#dismiss()})
         * @param waitingText
         *            a waiting text to display (note: you may want to subclass it
         *            for nicer UI)
@@ -79,12 +79,12 @@ public class WaitingDialog extends JDialog {
         *            the parent/owner of this {@link WaitingDialog}
         * @param delayMs
         *            the delay after which to show the dialog if it is still not
-        *            dismiss (see {@link WaitingDialog#done()})
+        *            dismiss (see {@link WaitingDialog#dismiss()})
         * @param pg
         *            the {@link Progress} to listen on -- when it is
         *            {@link Progress#done()}, this {@link WaitingDialog} will
-        *            automatically be dismissed as if {@link WaitingDialog#done()}
-        *            was called
+        *            automatically be dismissed as if
+        *            {@link WaitingDialog#dismiss()} was called
         * @param waitingText
         *            a waiting text to display (note: you may want to subclass it
         *            for nicer UI)
@@ -93,6 +93,8 @@ public class WaitingDialog extends JDialog {
                        String waitingText) {
                super(parent);
 
+               this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
+
                this.pg = pg;
 
                if (waitingText != null) {
@@ -117,7 +119,7 @@ public class WaitingDialog extends JDialog {
 
                                                        @Override
                                                        public void done() {
-                                                               WaitingDialog.this.done();
+                                                               dismiss();
                                                        }
                                                }.execute();
                                        }
@@ -127,7 +129,7 @@ public class WaitingDialog extends JDialog {
                        pg.addProgressListener(pgl);
 
                        if (pg.isDone()) {
-                               done();
+                               dismiss();
                                return;
                        }
                }
@@ -154,8 +156,10 @@ public class WaitingDialog extends JDialog {
        /**
         * Notify this {@link WaitingDialog} that the job is done, and dismiss it if
         * it was already showing on screen (or never show it if it was not).
+        * <p>
+        * Will also dispose the {@link WaitingDialog}.
         */
-       public void done() {
+       public void dismiss() {
                synchronized (waitLock) {
                        if (waitScreen) {
                                setVisible(false);
@@ -166,5 +170,7 @@ public class WaitingDialog extends JDialog {
                if (pg != null) {
                        pg.removeProgressListener(pgl);
                }
+
+               dispose();
        }
 }