import java.net.URL;
import java.util.ArrayList;
import java.util.Hashtable;
+import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.concurrent.ExecutorService;
*/
public static AlignmentPanel[] getAlignmentPanels(String alignmentId)
{
- int count = 0;
if (Desktop.desktop == null)
{
// no frames created and in headless mode
// TODO: verify that frames are recoverable when in headless mode
return null;
}
- JInternalFrame[] frames = Desktop.desktop.getAllFrames();
- ArrayList aps = new ArrayList();
- for (int t = 0; t < frames.length; t++)
+ List<AlignmentPanel> aps = new ArrayList<AlignmentPanel>();
+ AlignFrame[] frames = getAlignFrames();
+ if (frames == null)
+ {
+ return null;
+ }
+ for (AlignFrame af : frames)
{
- if (frames[t] instanceof AlignFrame)
+ for (AlignmentPanel ap : af.alignPanels)
{
- AlignFrame af = (AlignFrame) frames[t];
- for (int a = 0; a < af.alignPanels.size(); a++)
+ if (alignmentId.equals(ap.av.getSequenceSetId()))
{
- if (alignmentId.equals(((AlignmentPanel) af.alignPanels
- .elementAt(a)).av.getSequenceSetId()))
- {
- aps.add(af.alignPanels.elementAt(a));
- }
+ aps.add(ap);
}
}
+ // for (int a = 0; a < af.alignPanels.size(); a++)
+ // {
+ // if (alignmentId.equals(af.alignPanels
+ // .get(a).av.getSequenceSetId()))
+ // {
+ // aps.add(af.alignPanels.get(a));
+ // }
+ // }
}
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);
- }
+ AlignmentPanel[] vap = aps.toArray(new AlignmentPanel[aps.size()]);
return vap;
}
{
for (int a = 0; a < afr.alignPanels.size(); a++)
{
- if (sequenceSetId.equals(((AlignmentPanel) afr.alignPanels
- .elementAt(a)).av.getSequenceSetId()))
+ if (sequenceSetId.equals(afr.alignPanels.get(a).av
+ .getSequenceSetId()))
{
- viewp.addElement(((AlignmentPanel) afr.alignPanels
- .elementAt(a)).av);
+ viewp.addElement(afr.alignPanels.get(a).av);
}
}
}
for (int i = 0; i < size; i++)
{
- AlignmentPanel ap = (AlignmentPanel) af.alignPanels.elementAt(i);
+ AlignmentPanel ap = af.alignPanels.get(i);
AlignFrame newaf = new AlignFrame(ap);
if (ap.av.explodedPosition != null
&& !ap.av.explodedPosition.equals(af.getBounds()))
boolean gatherThis = false;
for (int a = 0; a < af.alignPanels.size(); a++)
{
- AlignmentPanel ap = (AlignmentPanel) af.alignPanels.elementAt(a);
+ AlignmentPanel ap = af.alignPanels.get(a);
if (viewId.equals(ap.av.getSequenceSetId()))
{
gatherThis = true;
/**
* Accessor method to quickly get all the AlignmentFrames loaded.
*/
- public static AlignFrame[] getAlignframes()
+ public static AlignFrame[] getAlignFrames()
{
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
{
return null;
}
- Vector avp = new Vector();
- try
+ List<AlignFrame> avp = new ArrayList<AlignFrame>();
+ // REVERSE ORDER
+ for (int i = frames.length - 1; i > -1; i--)
{
- // REVERSE ORDER
- for (int i = frames.length - 1; i > -1; i--)
+ if (frames[i] instanceof AlignFrame)
{
- if (frames[i] instanceof AlignFrame)
+ avp.add((AlignFrame) frames[i]);
+ }
+ else if (frames[i] instanceof SplitFrame)
+ {
+ /*
+ * Also check for a split frame containing an AlignFrame
+ */
+ SplitFrame sf = (SplitFrame) frames[i];
+ if (sf.getTopComponent() instanceof AlignFrame)
{
- AlignFrame af = (AlignFrame) frames[i];
- avp.addElement(af);
+ avp.add((AlignFrame) sf.getTopComponent());
+ }
+ if (sf.getBottomComponent() instanceof AlignFrame)
+ {
+ avp.add((AlignFrame) sf.getBottomComponent());
}
}
- } catch (Exception ex)
- {
- ex.printStackTrace();
}
if (avp.size() == 0)
{
return null;
}
- AlignFrame afs[] = new AlignFrame[avp.size()];
- for (int i = 0, j = avp.size(); i < j; i++)
- {
- afs[i] = (AlignFrame) avp.elementAt(i);
- }
- avp.clear();
+ AlignFrame afs[] = avp.toArray(new AlignFrame[avp.size()]);
return afs;
}
+ /**
+ * Returns an array of any AppJmol frames in the Desktop (or null if none).
+ *
+ * @return
+ */
public AppJmol[] getJmols()
{
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
{
return null;
}
- Vector avp = new Vector();
- try
+ List<AppJmol> avp = new ArrayList<AppJmol>();
+ // REVERSE ORDER
+ for (int i = frames.length - 1; i > -1; i--)
{
- // REVERSE ORDER
- for (int i = frames.length - 1; i > -1; i--)
+ if (frames[i] instanceof AppJmol)
{
- if (frames[i] instanceof AppJmol)
- {
- AppJmol af = (AppJmol) frames[i];
- avp.addElement(af);
- }
+ AppJmol af = (AppJmol) frames[i];
+ avp.add(af);
}
- } catch (Exception ex)
- {
- ex.printStackTrace();
}
if (avp.size() == 0)
{
return null;
}
- AppJmol afs[] = new AppJmol[avp.size()];
- for (int i = 0, j = avp.size(); i < j; i++)
- {
- afs[i] = (AppJmol) avp.elementAt(i);
- }
- avp.clear();
+ AppJmol afs[] = avp.toArray(new AppJmol[avp.size()]);
return afs;
}
/**
* This will return the first AlignFrame viewing AlignViewport av. It will
- * break if there are more than one AlignFrames viewing a particular av. This
+ * break if there are more than one AlignFrames viewing a particular av.
*
* @param av
* @return alignFrame for av