JAL-3066 Implement clustaloWS using slivka system.
[jalview.git] / src / jalview / ws / slivkaws / SlivkaWSDiscoverer.java
1 package jalview.ws.slivkaws;
2
3 import jalview.datamodel.AlignmentView;
4 import jalview.gui.AlignFrame;
5 import jalview.ws.WSMenuEntryProviderI;
6 import jalview.ws.jws2.MsaWSClient;
7
8 import java.awt.event.ActionEvent;
9 import java.net.URISyntaxException;
10
11 import javax.swing.JMenu;
12 import javax.swing.JMenuItem;
13
14 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
15
16 public class SlivkaWSDiscoverer
17   implements Runnable, WSMenuEntryProviderI
18 {
19   private static SlivkaWSDiscoverer instance = null;
20   private SlivkaClient client;
21   private ClustaloWS clustalo;
22
23   private SlivkaWSDiscoverer() {
24     try
25     {
26       client = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203);
27     } catch (URISyntaxException e)
28     {
29       throw new RuntimeException(e);
30     }
31     clustalo = new ClustaloWS(client);
32   }
33
34   public static SlivkaWSDiscoverer getInstance()
35   {
36     if (instance == null) {
37                 instance = new SlivkaWSDiscoverer();
38         }
39     return instance;
40   }
41
42   @Override
43   public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame)
44   {
45     JMenu submenu = new JMenu("Slivka");
46     JMenuItem menuItem = new JMenuItem("ClustalO with defaults");
47     menuItem.addActionListener((ActionEvent e) -> {
48
49       AlignmentView msa = alignFrame.gatherSequencesForAlignment();
50
51       if (msa != null)
52       {
53         new MsaWSClient(clustalo, alignFrame.getTitle(), msa, false,
54             true,
55             alignFrame.getViewport().getAlignment().getDataset(),
56             alignFrame);
57       }
58 //
59 //      List<SequenceI> sequences = alignFrame.getViewport().getAlignment().getSequences();
60 //      try
61 //      {
62 //        clustalo.align(sequences, null, null);
63 //      } catch (FormValidationException | IOException exc)
64 //      {
65 //        throw new RuntimeException(exc);
66 //      }
67     });
68     submenu.add(menuItem);
69     wsmenu.add(submenu);
70   }
71
72   @Override
73   public void run()
74   {
75
76   }
77 }