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");
48 // clustalo menu entry
49 JMenuItem noParamMenuItem = new JMenuItem("ClustalO with defaults");
50 SlivkaWSInstance clustalo;
53 clustalo = new SlivkaWSInstance(client, client.getService("clustalo"));
54 } catch (IOException e)
58 noParamMenuItem.addActionListener((ActionEvent e) -> {
59 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
63 clustalo, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(),
68 submenu.add(noParamMenuItem);
70 JMenuItem parametrisedMenuItem = new JMenuItem("ClustalO with custom parameters");
71 parametrisedMenuItem.addActionListener((ActionEvent evt) -> {
72 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
77 SlivkaParamSet paramSet = new SlivkaParamSet(clustalo.getService());
79 clustalo, paramSet, null, true, alignFrame.getTitle(), msa, false, true,
80 alignFrame.getViewport().getAlignment().getDataset(), alignFrame
82 } catch (IOException e)
88 submenu.add(parametrisedMenuItem);
92 // clustalw2 menu entry
93 JMenuItem noParamMenuItem = new JMenuItem("ClustalW2 with defaults");
94 SlivkaWSInstance clustalo;
97 clustalo = new SlivkaWSInstance(client, client.getService("clustalw"));
98 } catch (IOException e)
100 throw new IOError(e);
102 noParamMenuItem.addActionListener((ActionEvent e) -> {
103 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
107 clustalo, alignFrame.getTitle(), msa, false, true, alignFrame.getViewport().getAlignment().getDataset(),
112 submenu.add(noParamMenuItem);
114 JMenuItem parametrisedMenuItem = new JMenuItem("ClustalW2 with custom parameters");
115 parametrisedMenuItem.addActionListener((ActionEvent evt) -> {
116 AlignmentView msa = alignFrame.gatherSequencesForAlignment();
121 SlivkaParamSet paramSet = new SlivkaParamSet(clustalo.getService());
123 clustalo, paramSet, null, true, alignFrame.getTitle(), msa, false, true,
124 alignFrame.getViewport().getAlignment().getDataset(), alignFrame
126 } catch (IOException e)
132 submenu.add(parametrisedMenuItem);