git://source.jalview.org
/
jalview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
abb4c1c
)
JAL-2608 tidy up OverviewPanel when closed
author
gmungoc
<g.m.carstairs@dundee.ac.uk>
Tue, 4 Jul 2017 08:35:01 +0000
(09:35 +0100)
committer
gmungoc
<g.m.carstairs@dundee.ac.uk>
Tue, 4 Jul 2017 08:35:01 +0000
(09:35 +0100)
src/jalview/appletgui/AlignFrame.java
patch
|
blob
|
history
src/jalview/appletgui/OverviewPanel.java
patch
|
blob
|
history
src/jalview/gui/AlignFrame.java
patch
|
blob
|
history
src/jalview/gui/OverviewPanel.java
patch
|
blob
|
history
diff --git
a/src/jalview/appletgui/AlignFrame.java
b/src/jalview/appletgui/AlignFrame.java
index
4ffdfc1
..
65d652d
100644
(file)
--- a/
src/jalview/appletgui/AlignFrame.java
+++ b/
src/jalview/appletgui/AlignFrame.java
@@
-2617,7
+2617,7
@@
public class AlignFrame extends EmbmenuFrame implements ActionListener,
}
Frame frame = new Frame();
}
Frame frame = new Frame();
- OverviewPanel overview = new OverviewPanel(alignPanel);
+ final OverviewPanel overview = new OverviewPanel(alignPanel);
frame.add(overview);
// +50 must allow for applet frame window
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
frame.add(overview);
// +50 must allow for applet frame window
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
@@
-2632,6
+2632,7
@@
public class AlignFrame extends EmbmenuFrame implements ActionListener,
@Override
public void windowClosing(WindowEvent e)
{
@Override
public void windowClosing(WindowEvent e)
{
+ overview.dispose();
if (ap != null)
{
ap.setOverviewPanel(null);
if (ap != null)
{
ap.setOverviewPanel(null);
diff --git
a/src/jalview/appletgui/OverviewPanel.java
b/src/jalview/appletgui/OverviewPanel.java
index
b3c4a37
..
ccdfee1
100755
(executable)
--- a/
src/jalview/appletgui/OverviewPanel.java
+++ b/
src/jalview/appletgui/OverviewPanel.java
@@
-160,6
+160,14
@@
public class OverviewPanel extends Panel implements Runnable,
*/
public void updateOverviewImage()
{
*/
public void updateOverviewImage()
{
+ if (oviewCanvas == null)
+ {
+ /*
+ * panel has been disposed
+ */
+ return;
+ }
+
if ((getSize().width > 0) && (getSize().height > 0))
{
od.setWidth(getSize().width);
if ((getSize().width > 0) && (getSize().height > 0))
{
od.setWidth(getSize().width);
@@
-257,4
+265,21
@@
public class OverviewPanel extends Panel implements Runnable,
oviewCanvas.resetOviewDims(od);
updateOverviewImage();
}
oviewCanvas.resetOviewDims(od);
updateOverviewImage();
}
+
+ /**
+ * Removes this object as a property change listener, and nulls references
+ */
+ protected void dispose()
+ {
+ try
+ {
+ av.getRanges().removePropertyChangeListener(this);
+ } finally
+ {
+ av = null;
+ oviewCanvas = null;
+ ap = null;
+ od = null;
+ }
+ }
}
}
diff --git
a/src/jalview/gui/AlignFrame.java
b/src/jalview/gui/AlignFrame.java
index
1a58e21
..
6b6ff9a
100644
(file)
--- a/
src/jalview/gui/AlignFrame.java
+++ b/
src/jalview/gui/AlignFrame.java
@@
-3259,7
+3259,7
@@
public class AlignFrame extends GAlignFrame implements DropTargetListener,
}
JInternalFrame frame = new JInternalFrame();
}
JInternalFrame frame = new JInternalFrame();
- OverviewPanel overview = new OverviewPanel(alignPanel);
+ final OverviewPanel overview = new OverviewPanel(alignPanel);
frame.setContentPane(overview);
Desktop.addInternalFrame(frame, MessageManager.formatMessage(
"label.overview_params", new Object[] { this.getTitle() }),
frame.setContentPane(overview);
Desktop.addInternalFrame(frame, MessageManager.formatMessage(
"label.overview_params", new Object[] { this.getTitle() }),
@@
-3272,6
+3272,7
@@
public class AlignFrame extends GAlignFrame implements DropTargetListener,
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt)
{
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt)
{
+ overview.dispose();
alignPanel.setOverviewPanel(null);
};
});
alignPanel.setOverviewPanel(null);
};
});
diff --git
a/src/jalview/gui/OverviewPanel.java
b/src/jalview/gui/OverviewPanel.java
index
62e7a68
..
7a4456e
100755
(executable)
--- a/
src/jalview/gui/OverviewPanel.java
+++ b/
src/jalview/gui/OverviewPanel.java
@@
-147,7
+147,6
@@
public class OverviewPanel extends JPanel implements Runnable,
}
});
}
});
-
updateOverviewImage();
}
updateOverviewImage();
}
@@
-205,6
+204,14
@@
public class OverviewPanel extends JPanel implements Runnable,
*/
public void updateOverviewImage()
{
*/
public void updateOverviewImage()
{
+ if (oviewCanvas == null)
+ {
+ /*
+ * panel has been disposed
+ */
+ return;
+ }
+
if ((getWidth() > 0) && (getHeight() > 0))
{
od.setWidth(getWidth());
if ((getWidth() > 0) && (getHeight() > 0))
{
od.setWidth(getWidth());
@@
-221,7
+228,6
@@
public class OverviewPanel extends JPanel implements Runnable,
Thread thread = new Thread(this);
thread.start();
repaint();
Thread thread = new Thread(this);
thread.start();
repaint();
-
}
@Override
}
@Override
@@
-251,4
+257,21
@@
public class OverviewPanel extends JPanel implements Runnable,
{
setBoxPosition();
}
{
setBoxPosition();
}
+
+ /**
+ * Removes this object as a property change listener, and nulls references
+ */
+ protected void dispose()
+ {
+ try
+ {
+ av.getRanges().removePropertyChangeListener(this);
+ } finally
+ {
+ av = null;
+ oviewCanvas = null;
+ ap = null;
+ od = null;
+ }
+ }
}
}