package jalview.ws.slivkaws; import jalview.datamodel.AlignmentView; import jalview.gui.AlignFrame; import jalview.ws.WSMenuEntryProviderI; import jalview.ws.jws2.MsaWSClient; import java.awt.event.ActionEvent; import java.net.URISyntaxException; import javax.swing.JMenu; import javax.swing.JMenuItem; import uk.ac.dundee.compbio.slivkaclient.SlivkaClient; public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI { private static SlivkaWSDiscoverer instance = null; private SlivkaClient client; private ClustaloWS clustalo; private SlivkaWSDiscoverer() { try { client = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203); } catch (URISyntaxException e) { throw new RuntimeException(e); } clustalo = new ClustaloWS(client); } public static SlivkaWSDiscoverer getInstance() { if (instance == null) { instance = new SlivkaWSDiscoverer(); } return instance; } @Override public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame) { JMenu submenu = new JMenu("Slivka"); JMenuItem menuItem = new JMenuItem("ClustalO with defaults"); menuItem.addActionListener((ActionEvent e) -> { AlignmentView msa = alignFrame.gatherSequencesForAlignment(); if (msa != null) { new MsaWSClient(clustalo, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(), alignFrame); } // // List sequences = alignFrame.getViewport().getAlignment().getSequences(); // try // { // clustalo.align(sequences, null, null); // } catch (FormValidationException | IOException exc) // { // throw new RuntimeException(exc); // } }); submenu.add(menuItem); wsmenu.add(submenu); } @Override public void run() { } }