JAL-2826 added action performed for hiding collapsed sequences
[jalview.git] / src / jalview / gui / AlignFrame.java
index c76ce56..7029289 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.TreeFrameI;
+import jalview.ext.treeviewer.TreeViewerBindingI;
+import jalview.ext.treeviewer.TreeViewerUtils;
 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!
@@ -1517,7 +1520,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * DOCUMENT ME!
    */
-  void updateEditMenuBar()
+  public void updateEditMenuBar()
   {
 
     if (viewport.getHistoryList().size() > 0)
@@ -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<TreeFrameI, TreeViewerBindingI> aptxFrames = TreeViewerUtils
+            .getActiveTreeViews();
 
     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<TreeFrameI, TreeViewerBindingI> aptxFrameWithBinding : aptxFrames
             .entrySet())
     {
-      MainFrame aptxFrame = aptxFrameWithBinding.getKey();
-      JalviewBinding binding = aptxFrameWithBinding.getValue();
+      TreeFrameI aptxFrame = aptxFrameWithBinding.getKey();
+      TreeViewerBindingI 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()
           {
@@ -3802,7 +3805,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             @Override
             public void actionPerformed(ActionEvent e)
             {
-            binding.sortByTree_actionPerformed();
+            binding.sortByTree_actionPerformed(); // redundant here??
             addHistoryItem(binding.sortAlignmentIn(alignPanel));
             }
 
@@ -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
@@ -4019,8 +4023,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       Cache.setProperty("LAST_DIRECTORY", filePath);
       
       
-      TreeParser treeParser = new TreeParser(filePath);
-      treeParser.loadTree(viewport);
+      NewickFile fin = null; // old tree
+      try
+      {
+        AptxInit.createInstancesFromFile(filePath, viewport);
+
+        // fin = new NewickFile(filePath, DataSourceType.FILE);
+        // viewport.setCurrentTree(viewport.getAlignPanel().alignFrame
+        // .showNewickTree(fin, filePath).getTree());
+
+      } catch (Exception ex)
+      {
+        JvOptionPane.showMessageDialog(this, ex.getMessage(),
+                MessageManager.getString("label.problem_reading_tree_file"),
+                JvOptionPane.WARNING_MESSAGE);
+        ex.printStackTrace();
+      }
 
     }
   }
@@ -4099,8 +4117,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)
@@ -4345,7 +4374,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         }
         buildingMenu = false;
       }
-    }, "BuildWebServiceThread").start();
+    }, "BuildWebService").start();
 
   }
 
@@ -4454,7 +4483,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           final String source)
   {
     new Thread(CrossRefAction.showProductsFor(sel, _odna, source, this),
-            "CrossReferencesThread")
+            "CrossReferences")
             .start();
   }
 
@@ -4733,7 +4762,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             ex.printStackTrace();
           }
         }
-      }, "DropFileThread").start();
+      }, "DropFile").start();
     }
   }
 
@@ -5104,7 +5133,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             });
             dbRefFetcher.fetchDBRefs(false);
           }
-        }, "BuildFetchDBMenuThread").start();
+        }, "BuildFetchDBMenu").start();
 
       }