X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=184ffeb58ba6d1c9f0fbcde5ef8bdd73542c1bd5;hb=ef887ebe817cd6595b6275f5f51001677c377214;hp=5654c540868079cd60d61c934268a1af85a0ac42;hpb=1d9ed8ea1705fd5ed1cdc569fa1574363ad0a749;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 5654c54..184ffeb 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -53,6 +53,7 @@ import jalview.datamodel.AlignmentI; import jalview.datamodel.AlignmentOrder; import jalview.datamodel.AlignmentView; import jalview.datamodel.ColumnSelection; +import jalview.datamodel.DBRefEntry; import jalview.datamodel.HiddenColumns; import jalview.datamodel.HiddenSequences; import jalview.datamodel.PDBEntry; @@ -61,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; @@ -90,6 +92,7 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemes; import jalview.schemes.ResidueColourScheme; import jalview.schemes.TCoffeeColourScheme; +import jalview.util.DBRefUtils; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; import jalview.viewmodel.ViewportRanges; @@ -139,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; @@ -154,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! @@ -3760,7 +3765,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, .get(viewport.getSequenceSetId()); List treePanels = new ArrayList<>(); - Map aptxFrames = AptxInit.getAllAptxFrames(); + Map aptxFrames = AptxInit + .getAllAptxFrames(); for (Component comp : comps) { @@ -3780,19 +3786,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sortByTreeMenu.setVisible(true); - for (Map.Entry aptxFrameWithBinding : aptxFrames + for (Entry 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() { @@ -3946,33 +3951,47 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override protected void loadTreeBaseStudy_actionPerformed(ActionEvent e) { - chooseTreeDb(0); + chooseTreeDb(0, null); } @Override protected void loadTreeBase_actionPerformed(ActionEvent e) { - chooseTreeDb(1); + chooseTreeDb(1, null); } @Override protected void loadTreePfam_actionPerformed(ActionEvent e) { - chooseTreeDb(2); + + // 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 + .searchRefsForSource(seq.getDBRefs(), "pfam")) + { + if (pfamRef.getAccessionId().startsWith("PF")) + { + dbId = pfamRef.getAccessionId().replaceAll("[A-Za-z]", ""); + } + + } + chooseTreeDb(2, dbId); } @Override protected void loadTreeFam_actionPerformed(ActionEvent e) { - chooseTreeDb(3); + chooseTreeDb(3, null); } @Override protected void loadTreeOfLife_actionPerformed(ActionEvent e) { - chooseTreeDb(4); + chooseTreeDb(4, null); } @@ -4082,9 +4101,21 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * * @param databaseIndex */ - public void chooseTreeDb(int databaseIndex) - { - AptxInit.createInstancesFromDb(databaseIndex, viewport); + public void chooseTreeDb(int databaseIndex, String 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)