X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=7031e992a59df6342faf52acb971853987e8fb0d;hb=f09f33647e90a6376ffcf096d003afa59f2b41fc;hp=caa3f5e4d7a1587e66970409bc3b8d464a9643eb;hpb=ecb17944a46a539f55668158515dcd48b07e42c8;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index caa3f5e..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) @@ -562,6 +558,78 @@ public class Desktop extends jalview.jbgui.GDesktop } } + public void raiseRelated_actionPerformed(ActionEvent e) + { + reorderAssociatedWindows(false, false); + } + + public void minimizeAssociated_actionPerformed(ActionEvent e) + { + reorderAssociatedWindows(true, false); + } + + void closeAssociatedWindows() + { + reorderAssociatedWindows(false, true); + } + + void reorderAssociatedWindows(boolean minimize, boolean close) + { + JInternalFrame[] frames = desktop.getAllFrames(); + if (frames == null || frames.length<1) + return; + + AlignViewport source = null, target = null; + if (frames[0] instanceof AlignFrame) + source = ( (AlignFrame) frames[0]).getCurrentView(); + else if (frames[0] instanceof TreePanel) + source = ( (TreePanel) frames[0]).getViewPort(); + else if (frames[0] instanceof PCAPanel) + source = ( (PCAPanel) frames[0]).av; + else if (frames[0].getContentPane() instanceof PairwiseAlignPanel) + source = ((PairwiseAlignPanel)frames[0].getContentPane()).av; + + + if (source != null) + 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) + target = ( (TreePanel) frames[i]).getViewPort(); + else if (frames[i] instanceof PCAPanel) + target = ( (PCAPanel) frames[i]).av; + else if (frames[i].getContentPane() instanceof PairwiseAlignPanel) + target = ( (PairwiseAlignPanel) frames[i].getContentPane()).av; + + if (source == target) + { + try + { + if (close) + frames[i].setClosed(true); + else + { + frames[i].setIcon(minimize); + if (!minimize) + { + frames[i].toFront(); + } + } + + } + catch (java.beans.PropertyVetoException ex) + { } + } + } + } + + /** * DOCUMENT ME!