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.io.IOError;
10 import java.io.IOException;
11 import java.net.URISyntaxException;
13 import javax.swing.JMenu;
14 import javax.swing.JMenuItem;
16 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
18 public class SlivkaWSDiscoverer
19 implements Runnable, WSMenuEntryProviderI
21 private static SlivkaWSDiscoverer instance = null;
22 private SlivkaClient client;
24 private SlivkaWSDiscoverer() {
27 client = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203);
28 } catch (URISyntaxException e)
30 throw new RuntimeException(e);
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");
47 String[] services = { "clustalo", "clustalw", "probcons", "muscle", "mafft", "tcoffee" };
48 String[] names = { "ClustalO", "ClustalW2", "Probcons", "Muscle", "Mafft", "TCoffe" };
50 for (int i = 0; i < services.length; i++)
54 SlivkaWSInstance instance = new SlivkaWSInstance(client,
55 client.getService(services[i]));
57 JMenuItem defaultMenuItem = new JMenuItem(
58 String.format("%s with defaults", names[i]));
59 defaultMenuItem.addActionListener((ActionEvent e) -> {
60 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
63 new MsaWSClient(instance, alignFrame.getTitle(), msa, false, true,
64 alignFrame.getViewport().getAlignment().getDataset(),
68 submenu.add(defaultMenuItem);
70 JMenuItem customMenuItem = new JMenuItem(
71 String.format("%s with custom parameters", names[i]));
72 customMenuItem.addActionListener((ActionEvent e) -> {
73 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
78 SlivkaParamSet paramSet = new SlivkaParamSet(
79 instance.getService());
80 new MsaWSClient(instance, paramSet, null, true,
81 alignFrame.getTitle(), msa, false, true,
82 alignFrame.getViewport().getAlignment().getDataset(),
84 } catch (IOException e1)
86 throw new IOError(e1);
91 submenu.add(customMenuItem);
92 } catch (IOException e)
94 // TODO Auto-generated catch block