JAL-1953 start on making everything interface based
[jalview.git] / src / jalview / gui / AlignFrame.java
index c76ce56..184ffeb 100644 (file)
@@ -62,9 +62,10 @@ import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.ext.archaeopteryx.AptxInit;
-import jalview.ext.archaeopteryx.JalviewBinding;
 import jalview.ext.forester.io.SupportedTreeFileFilter;
 import jalview.ext.forester.io.TreeParser;
+import jalview.ext.treeviewer.ExternalTreeFrame;
+import jalview.ext.treeviewer.ExternalTreeViewerBindingI;
 import jalview.gui.ColourMenuHelper.ColourChangeListener;
 import jalview.gui.ViewSelectionMenu.ViewSetProvider;
 import jalview.io.AlignmentProperties;
@@ -141,6 +142,7 @@ import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
@@ -156,7 +158,8 @@ import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.SwingUtilities;
 
-import org.forester.archaeopteryx.MainFrame;
+import org.forester.archaeopteryx.webservices.PhylogeniesWebserviceClient;
+import org.forester.archaeopteryx.webservices.WebservicesManager;
 
 /**
  * DOCUMENT ME!
@@ -3762,7 +3765,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             .get(viewport.getSequenceSetId());
     List<TreePanel> treePanels = new ArrayList<>();
 
-    Map<MainFrame, JalviewBinding> aptxFrames = AptxInit.getAllAptxFrames();
+    Map<ExternalTreeFrame, ExternalTreeViewerBindingI> aptxFrames = AptxInit
+            .getAllAptxFrames();
 
     for (Component comp : comps)
     {
@@ -3782,19 +3786,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     sortByTreeMenu.setVisible(true);
 
-    for (Map.Entry<MainFrame, JalviewBinding> aptxFrameWithBinding : aptxFrames
+    for (Entry<ExternalTreeFrame, ExternalTreeViewerBindingI> aptxFrameWithBinding : aptxFrames
             .entrySet())
     {
-      MainFrame aptxFrame = aptxFrameWithBinding.getKey();
-      JalviewBinding binding = aptxFrameWithBinding.getValue();
+      ExternalTreeFrame aptxFrame = aptxFrameWithBinding.getKey();
+      ExternalTreeViewerBindingI binding = aptxFrameWithBinding.getValue();
 
       // future support for multiple tabs
       // for (org.forester.archaeopteryx.TreePanel aptxTree : aptxFrame
       // .getMainPanel().getTreePanels())
       {
         final JMenuItem item = new JMenuItem(
-                aptxFrame.getMainPanel().getCurrentTreePanel()
-                        .getPhylogeny().getName());
+                aptxFrame.getTree().getTreeName());
 
           item.addActionListener(new ActionListener()
           {
@@ -3962,7 +3965,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   protected void loadTreePfam_actionPerformed(ActionEvent e)
   {
 
-    // only DBRefs of first sequence are checked for matching DB for now
+    // only DBRefs of first sequence are checked for matching DB for now,
+    // iterating through them all seems excessive
     SequenceI seq = viewport.getAlignment().getSequenceAt(0);
     String dbId = null;
     for (DBRefEntry pfamRef : DBRefUtils
@@ -4099,8 +4103,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   public void chooseTreeDb(int databaseIndex, String defaultIdentifier)
   {
-    AptxInit.createInstancesFromDb(databaseIndex, viewport,
-            defaultIdentifier);
+    final WebservicesManager webservices_manager = WebservicesManager
+            .getInstance();
+    final PhylogeniesWebserviceClient client = webservices_manager
+            .getAvailablePhylogeniesWebserviceClient(databaseIndex);
+    String identifier = JvOptionPane
+            .showInternalInputDialog(Desktop.desktop,
+                    client.getInstructions() + "\n(Reference: "
+                            + client.getReference() + ")",
+                    client.getDescription(), JvOptionPane.QUESTION_MESSAGE,
+                    null, null, defaultIdentifier)
+            .toString();
+
+    AptxInit.createInstancesFromDb(client, identifier, viewport);
   }
 
   public TreePanel showNewickTree(NewickFile nf, String treeTitle)