1 package jalview.ext.archaeopteryx;
3 import jalview.ext.treeviewer.ExternalTreeControlsI;
4 import jalview.ext.treeviewer.ExternalTreeFrame;
5 import jalview.ext.treeviewer.ExternalTreeI;
6 import jalview.ext.treeviewer.ExternalTreePanel;
8 import java.awt.Component;
10 import javax.swing.JMenu;
11 import javax.swing.JMenuBar;
12 import javax.swing.JMenuItem;
13 import javax.swing.JSeparator;
15 import org.forester.archaeopteryx.MainFrame;
17 public class AptxFrame extends ExternalTreeFrame
19 private final MainFrame aptxFrame;
21 public AptxFrame(MainFrame aptx)
24 adaptAptxGui(aptxFrame);
28 * Hides certain redundant Archaeopteryx GUI elements such as the menu items
29 * for reading in trees and adds extra items related to Jalview such as the
35 private void adaptAptxGui(MainFrame aptxFrame)
37 JMenuBar frameBar = aptxFrame.getJMenuBar();
39 for (int i = 0; i < frameBar.getMenuCount(); i++)
41 JMenu menu = frameBar.getMenu(i);
43 if (menu.getText().startsWith("File"))
45 // hide all "Read from ..." and "New" menu items and any Separators that
46 // come directly after them
47 Component previousMenuItem = null;
48 for (Component menuItem : menu.getMenuComponents())
50 if (previousMenuItem instanceof JMenuItem)
52 if (((JMenuItem) previousMenuItem).getText().startsWith("Read")
53 || ((JMenuItem) previousMenuItem).getText()
56 previousMenuItem.setVisible(false);
58 if (menuItem instanceof JSeparator)
60 menuItem.setVisible(false);
64 previousMenuItem = menuItem;
67 else if (menu.getText().startsWith("Inference"))
69 menu.setVisible(false);
71 else if (menu.getText().startsWith("View"))
74 JMenuItem sortMenuItem = new JMenuItem("Sort alignment by tree");
75 sortMenuItem.setVisible(false);
76 menu.add(sortMenuItem);
84 public ExternalTreePanel getTreePanel()
86 ExternalTreePanel aptxPanel = new AptxTreePanel(
87 aptxFrame.getMainPanel().getCurrentTreePanel());
92 public void switchTreePanel(int panelIndex)
94 aptxFrame.getMainPanel().getTabbedPane().getTabComponentAt(panelIndex);
99 public ExternalTreeI getTree()
102 aptxFrame.getMainPanel().getCurrentTreePanel().getPhylogeny());
106 public void checkMultipleTrees()
108 aptxFrame.activateSaveAllIfNeeded();
113 public int getNumberOfTrees()
115 return aptxFrame.getMainPanel().getTabbedPane().getTabCount();
119 public ExternalTreeControlsI getTreeControls()
121 return new AptxControlPanel(aptxFrame.getMainPanel().getControlPanel());