refactor to allow distinct StructureSelectionManager instances for
[jalview.git] / src / jalview / gui / Desktop.java
old mode 100755 (executable)
new mode 100644 (file)
index c58de43..db2dbf2
@@ -48,10 +48,10 @@ import javax.swing.event.MenuListener;
  * 
  * 
  * @author $author$
- * @version $Revision$
+ * @version $Revision: 1.155 $
  */
 public class Desktop extends jalview.jbgui.GDesktop implements
-        DropTargetListener, ClipboardOwner, IProgressIndicator
+        DropTargetListener, ClipboardOwner, IProgressIndicator, jalview.api.StructureSelectionManagerProvider
 {
 
   private JalviewChangeSupport changeSupport = new JalviewChangeSupport();
@@ -1986,6 +1986,42 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     avp.clear();
     return afs;
   }
+  public AppJmol[] getJmols()
+  {
+    JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+
+    if (frames == null)
+    {
+      return null;
+    }
+    Vector avp = new Vector();
+    try
+    {
+      // REVERSE ORDER
+      for (int i = frames.length - 1; i > -1; i--)
+      {
+        if (frames[i] instanceof AppJmol)
+        {
+          AppJmol af = (AppJmol) frames[i];
+          avp.addElement(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();
+    return afs;
+  }
 
   /**
    * Add Groovy Support to Jalview
@@ -2326,4 +2362,5 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     return wsparamManager;
   }
 
+
 }