+ 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)
+ { }
+ }
+ }
+ }
+
+