JAL-2838 JAL-2872 added sorting from the Aptx frame (still misbehaving
[jalview.git] / src / jalview / ext / archaeopteryx / AptxFrame.java
index e7a1517..79798d3 100644 (file)
@@ -1,10 +1,11 @@
 package jalview.ext.archaeopteryx;
 
 import jalview.bin.Cache;
-import jalview.ext.treeviewer.ExternalTreeControlsI;
-import jalview.ext.treeviewer.ExternalTreeFrame;
-import jalview.ext.treeviewer.ExternalTreeI;
-import jalview.ext.treeviewer.ExternalTreePanel;
+import jalview.ext.treeviewer.TreeControlsI;
+import jalview.ext.treeviewer.TreeFrameI;
+import jalview.ext.treeviewer.TreeI;
+import jalview.ext.treeviewer.TreePanelI;
+import jalview.ext.treeviewer.TreeViewerUtils;
 import jalview.gui.Desktop;
 import jalview.gui.EPSOptions;
 import jalview.io.JalviewFileChooser;
@@ -32,19 +33,34 @@ import javax.swing.JRootPane;
 import javax.swing.JSeparator;
 import javax.swing.event.InternalFrameListener;
 
+import org.forester.archaeopteryx.Archaeopteryx;
+import org.forester.archaeopteryx.Configuration;
 import org.forester.archaeopteryx.MainFrame;
+import org.forester.phylogeny.Phylogeny;
 import org.jibble.epsgraphics.EpsGraphics2D;
 
-public class AptxFrame implements ExternalTreeFrame
+public class AptxFrame implements TreeFrameI
 {
   private final MainFrame aptxFrame;
 
-  private ExternalTreePanel aptxPanel;
+  private TreePanelI aptxPanel;
+
+  private TreeControlsI aptxControls;
+
+
+  public AptxFrame(Phylogeny tree, Configuration aptxConfig,
+          String treeTitle)
+  {
+    this(Archaeopteryx.createApplication(tree,
+            aptxConfig,
+            treeTitle));
+
+  }
 
-  private ExternalTreeControlsI aptxControls;
 
   public AptxFrame(MainFrame aptx)
   {
+
     aptxFrame = aptx;
     aptxPanel = new AptxTreePanel(
             aptxFrame.getMainPanel().getCurrentTreePanel());
@@ -53,15 +69,16 @@ public class AptxFrame implements ExternalTreeFrame
     adaptAptxGui(aptxFrame);
 
   }
+  
   /**
    * Hides certain redundant Archaeopteryx GUI elements such as the menu items
    * for reading in trees and adds extra items related to Jalview such as the
-   * tree sorting item.
+   * tree sorting menu item.
    * 
    * 
    * @param aptxFrame
    */
-  private void adaptAptxGui(MainFrame aptxFrame)
+  protected void adaptAptxGui(MainFrame aptxFrame)
   {
     JMenuBar frameBar = aptxFrame.getJMenuBar();
     boolean epsAdded = false;
@@ -130,28 +147,32 @@ public class AptxFrame implements ExternalTreeFrame
                 "Filter alignment to show only currently visible sequences");
 
         refreshJalview.setFont(menu.getFont());
-
-        menu.add(sortByTree);
-        menu.add(refreshJalview);
-
-        sortByTree.setFont(menu.getFont());
-        refreshJalview.addActionListener(new ActionListener()
+        refreshJalview.addActionListener(
+                TreeViewerUtils.getActiveTreeViews().get(this));
+        sortByTree.addActionListener(new ActionListener()
         {
 
           @Override
           public void actionPerformed(ActionEvent e)
           {
-            // TODO Auto-generated method stub
+            TreeViewerUtils.getActiveTreeViews().get(AptxFrame.this)
+                    .sortByTree_actionPerformed();
 
           }
 
         });
 
+        menu.add(sortByTree);
+        menu.add(refreshJalview);
+
+        sortByTree.setFont(menu.getFont());
+
+
 
       }
 
     }
-    aptxFrame.validate();
+    // aptxFrame.validate();
   }
 
   public void epsTree_actionPerformed(ActionEvent e)
@@ -221,13 +242,13 @@ public class AptxFrame implements ExternalTreeFrame
     }
   }
   @Override
-  public ExternalTreePanel getTreePanel()
+  public TreePanelI getTreePanel()
   {
     return aptxPanel;
   }
 
   @Override
-  public ExternalTreeI getTree()
+  public TreeI getTree()
   {
     return aptxPanel.getTree();
   }
@@ -246,7 +267,7 @@ public class AptxFrame implements ExternalTreeFrame
   }
 
   @Override
-  public ExternalTreeControlsI getTreeControls()
+  public TreeControlsI getTreeControls()
   {
     return aptxControls;
   }