1 package jalview.ws.slivkaws;
3 import jalview.datamodel.AlignmentView;
4 import jalview.gui.AlignFrame;
5 import jalview.ws.WSMenuEntryProviderI;
6 import jalview.ws.jws2.MsaWSClient;
8 import java.awt.event.ActionEvent;
9 import java.net.URISyntaxException;
11 import javax.swing.JMenu;
12 import javax.swing.JMenuItem;
14 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
16 public class SlivkaWSDiscoverer
17 implements Runnable, WSMenuEntryProviderI
19 private static SlivkaWSDiscoverer instance = null;
20 private SlivkaClient client;
21 private ClustaloWS clustalo;
23 private SlivkaWSDiscoverer() {
26 client = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203);
27 } catch (URISyntaxException e)
29 throw new RuntimeException(e);
31 clustalo = new ClustaloWS(client);
34 public static SlivkaWSDiscoverer getInstance()
36 if (instance == null) {
37 instance = new SlivkaWSDiscoverer();
43 public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame)
45 JMenu submenu = new JMenu("Slivka");
46 JMenuItem menuItem = new JMenuItem("ClustalO with defaults");
47 menuItem.addActionListener((ActionEvent e) -> {
49 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
53 new MsaWSClient(clustalo, alignFrame.getTitle(), msa, false,
55 alignFrame.getViewport().getAlignment().getDataset(),
59 // List<SequenceI> sequences = alignFrame.getViewport().getAlignment().getSequences();
62 // clustalo.align(sequences, null, null);
63 // } catch (FormValidationException | IOException exc)
65 // throw new RuntimeException(exc);
68 submenu.add(menuItem);