}
}
System.out.println("ALL CLOSED");
-
+ if (v_client!=null)
+ {
+ // TODO clear binding to vamsas document objects on close_all
+
+ }
}
public void raiseRelated_actionPerformed(ActionEvent e)
public static int getViewCount(String viewId)
{
+ AlignViewport[] aps = getViewports(viewId);
+ return (aps==null) ? 0 : aps.length;
+ }
+ /**
+ *
+ * @param viewId
+ * @return all AlignmentPanels concerning the viewId sequence set
+ */
+ public static AlignmentPanel[] getAlignmentPanels(String viewId)
+ {
int count = 0;
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+ ArrayList aps = new ArrayList();
for (int t = 0; t < frames.length; t++)
{
if (frames[t] instanceof AlignFrame)
.equals(((AlignmentPanel) af.alignPanels.elementAt(a)).av
.getSequenceSetId()))
{
- count++;
+ aps.add(af.alignPanels.elementAt(a));
}
}
}
}
-
- return count;
+ if (aps.size()==0)
+ {
+ return null;
+ }
+ AlignmentPanel[] vap = new AlignmentPanel[aps.size()];
+ for (int t=0;t<vap.length;t++)
+ {
+ vap[t] = (AlignmentPanel) aps.get(t);
+ }
+ return vap;
+ }
+ /**
+ * get all the viewports on an alignment.
+ * @param sequenceSetId unique alignment id
+ * @return all viewports on the alignment bound to sequenceSetId
+ */
+ public static AlignViewport[] getViewports(String sequenceSetId)
+ {
+ Vector viewp = new Vector();
+ if (desktop != null)
+ {
+ javax.swing.JInternalFrame[] frames = instance.getAllFrames();
+
+ for (int t = 0; t < frames.length; t++)
+ {
+ if (frames[t] instanceof AlignFrame)
+ {
+ AlignFrame afr = ((AlignFrame) frames[t]);
+ if (afr.getViewport().getSequenceSetId()
+ .equals(sequenceSetId))
+ {
+ if (afr.alignPanels!=null)
+ {
+ for (int a = 0; a < afr.alignPanels.size(); a++)
+ {
+ if (sequenceSetId
+ .equals(((AlignmentPanel) afr.alignPanels.elementAt(a)).av
+ .getSequenceSetId()))
+ {
+ viewp.addElement(((AlignmentPanel)afr.alignPanels.elementAt(a)).av);
+ }
+ }
+ } else {
+ viewp.addElement(((AlignFrame) frames[t]).getViewport());
+ }
+ }
+ }
+ }
+ if (viewp.size() > 0)
+ {
+ AlignViewport[] vp = new AlignViewport[viewp.size()];
+ viewp.copyInto(vp);
+ return vp;
+ }
+ }
+ return null;
}
public void explodeViews(AlignFrame af)
progressBars.put(new Long(id), addProgressPanel(message));
}
}
+
+ /**
+ * This will return the first AlignFrame viewing AlignViewport av. It will
+ * break if there are more than one AlignFrames viewing a particular av. This
+ *
+ * @param av
+ * @return alignFrame for av
+ */
+ public static AlignFrame getAlignFrameFor(AlignViewport av)
+ {
+ if (desktop != null)
+ {
+ AlignmentPanel[] aps = getAlignmentPanels(av.getSequenceSetId());
+ for (int panel=0;aps!=null && panel<aps.length;panel++)
+ { if (aps[panel]!=null && aps[panel].av==av) {
+ return aps[panel].alignFrame;
+ }
+ }
+ }
+ return null;
+ }
}