X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=7031e992a59df6342faf52acb971853987e8fb0d;hb=f09f33647e90a6376ffcf096d003afa59f2b41fc;hp=af96ee83cd99039d239879b3081b5b93efad694e;hpb=1b18744e17e66e3376d1febe72bca47c5fa023e1;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index af96ee8..7031e99 100755 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -208,9 +208,11 @@ public class Desktop extends jalview.jbgui.GDesktop } + public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { + PaintRefresher.RemoveComponent(frame); openFrameCount--; windowMenu.remove(menuItem); JInternalFrame itf = desktop.getSelectedFrame(); @@ -244,7 +246,7 @@ public class Desktop extends jalview.jbgui.GDesktop frame.setSelected(true); frame.requestFocus(); }catch(java.beans.PropertyVetoException ve) - {} + { } } public void lostOwnership(Clipboard clipboard, Transferable contents) @@ -308,9 +310,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } catch (Exception e) - { - e.printStackTrace(); - } + { } if (files != null) { @@ -339,9 +339,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } catch (Exception ex) - { - ex.printStackTrace(); - } + { } } } @@ -546,9 +544,7 @@ public class Desktop extends jalview.jbgui.GDesktop hb.setDisplayed(true); } catch (Exception ex) - { - ex.printStackTrace(); - } + { } } public void closeAll_actionPerformed(ActionEvent e) @@ -564,15 +560,20 @@ public class Desktop extends jalview.jbgui.GDesktop public void raiseRelated_actionPerformed(ActionEvent e) { - reorderAssociatedWindows(false); + reorderAssociatedWindows(false, false); } public void minimizeAssociated_actionPerformed(ActionEvent e) { - reorderAssociatedWindows(true); + reorderAssociatedWindows(true, false); + } + + void closeAssociatedWindows() + { + reorderAssociatedWindows(false, true); } - void reorderAssociatedWindows(boolean minimize) + void reorderAssociatedWindows(boolean minimize, boolean close) { JInternalFrame[] frames = desktop.getAllFrames(); if (frames == null || frames.length<1) @@ -593,6 +594,10 @@ public class Desktop extends jalview.jbgui.GDesktop for (int i = 0; i < frames.length; i++) { target = null; + if(frames[i]==null) + { + continue; + } if (frames[i] instanceof AlignFrame) target = ( (AlignFrame) frames[i]).getCurrentView(); else if (frames[i] instanceof TreePanel) @@ -604,14 +609,22 @@ public class Desktop extends jalview.jbgui.GDesktop if (source == target) { - if(!minimize) - frames[i].toFront(); try { - frames[i].setIcon(minimize); + if (close) + frames[i].setClosed(true); + else + { + frames[i].setIcon(minimize); + if (!minimize) + { + frames[i].toFront(); + } + } + } catch (java.beans.PropertyVetoException ex) - {} + { } } } }