X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FDesktop.java;h=45a03faf204715afdcb1c8d435983cf971acf0fb;hb=ad35f232acd499d9457056ca24b663866a09edd2;hp=e6200d937b9cc3dd6992550e7df1d3dd785fc3f1;hpb=35cf59b3c7c1080f98763b0c82b2fb73978991fa;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index e6200d9..45a03fa 100755 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -47,6 +47,7 @@ public class Desktop extends jalview.jbgui.GDesktop public static jalview.ws.Discoverer discoverer; public static Object [] jalviewClipboard; + public static boolean internalCopy = false; static int fileLoadingCount= 0; @@ -208,9 +209,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,12 +247,15 @@ public class Desktop extends jalview.jbgui.GDesktop frame.setSelected(true); frame.requestFocus(); }catch(java.beans.PropertyVetoException ve) - {} + { } } public void lostOwnership(Clipboard clipboard, Transferable contents) { - Desktop.jalviewClipboard = null; + if (!internalCopy) + Desktop.jalviewClipboard = null; + + internalCopy = false; } public void dragEnter(DropTargetDragEvent evt) @@ -308,9 +314,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } catch (Exception e) - { - e.printStackTrace(); - } + { } if (files != null) { @@ -339,9 +343,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } catch (Exception ex) - { - ex.printStackTrace(); - } + { } } } @@ -546,9 +548,7 @@ public class Desktop extends jalview.jbgui.GDesktop hb.setDisplayed(true); } catch (Exception ex) - { - ex.printStackTrace(); - } + { } } public void closeAll_actionPerformed(ActionEvent e) @@ -564,18 +564,23 @@ 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) + if (frames == null || frames.length<1) return; AlignViewport source = null, target = null; @@ -585,28 +590,45 @@ public class Desktop extends jalview.jbgui.GDesktop 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) { - 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) - {} + { } } } } @@ -862,5 +884,6 @@ public class Desktop extends jalview.jbgui.GDesktop vamsasStop.setVisible(!b); } + }