JAL-3066 Sequence annotation services.
[jalview.git] / src / jalview / ws / slivkaws / SlivkaWSDiscoverer.java
index 6b3856a..56f7b9f 100644 (file)
@@ -1,18 +1,15 @@
 package jalview.ws.slivkaws;
 
-import jalview.datamodel.AlignmentView;
 import jalview.gui.AlignFrame;
 import jalview.ws.WSMenuEntryProviderI;
 import jalview.ws.jws2.MsaWSClient;
 import jalview.ws.jws2.SequenceAnnotationWSClient;
 
-import java.awt.event.ActionEvent;
 import java.io.IOError;
 import java.io.IOException;
 import java.net.URISyntaxException;
 
 import javax.swing.JMenu;
-import javax.swing.JMenuItem;
 
 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
@@ -21,13 +18,13 @@ public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI
 {
   private static SlivkaWSDiscoverer instance = null;
 
-  private SlivkaClient client;
+  private SlivkaClient slivkaClient;
 
   private SlivkaWSDiscoverer()
   {
     try
     {
-      client = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203);
+      slivkaClient = new SlivkaClient("gjb-www-1.cluster.lifesci.dundee.ac.uk", 3203);
     } catch (URISyntaxException e)
     {
       throw new RuntimeException(e);
@@ -53,7 +50,7 @@ public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI
     slivkaMenu.add(alignmentMenu);
     try
     {
-      for (SlivkaService service : client.getServices())
+      for (SlivkaService service : slivkaClient.getServices())
       {
         msaClassifier:
         {
@@ -66,36 +63,9 @@ public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI
           }
           continue;
         }
-        SlivkaMsaServiceInstance instance = new SlivkaMsaServiceInstance(client, service);
-        JMenuItem defaultEntry = new JMenuItem(String.format("%s with defaults", service.label));
-        defaultEntry.addActionListener((ActionEvent evt) -> {
-          AlignmentView msa = alignFrame.gatherSequencesForAlignment();
-          if (msa != null)
-          {
-            new MsaWSClient(instance, alignFrame.getTitle(), msa, false, true,
-                alignFrame.getViewport().getAlignment().getDataset(), alignFrame);
-          }
-        });
-        alignmentMenu.add(defaultEntry);
-
-        JMenuItem customEntry = new JMenuItem(String.format("%s with custom parameters", service.label));
-        customEntry.addActionListener((ActionEvent evt) -> {
-          AlignmentView msa = alignFrame.gatherSequencesForAlignment();
-          if (msa != null)
-          {
-            try
-            {
-              SlivkaParamSet paramSet = new SlivkaParamSet(service);
-              new MsaWSClient(instance, paramSet, null, true, alignFrame.getTitle(), msa, false, true,
-                  alignFrame.getViewport().getAlignment().getDataset(), alignFrame);
-            } catch (IOException exc)
-            {
-              throw new IOError(exc);
-            }
-          }
-        });
-        alignmentMenu.add(customEntry);
-
+        SlivkaMsaServiceInstance instance = new SlivkaMsaServiceInstance(slivkaClient, service);
+        MsaWSClient client = new MsaWSClient();
+        client.attachWSMenuEntry(alignmentMenu, instance, alignFrame);
         alignmentMenu.addSeparator();
       }
     } catch (IOException e)
@@ -108,7 +78,7 @@ public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI
     slivkaMenu.add(disorderMenu);
     try
     {
-      for (SlivkaService service : client.getServices())
+      for (SlivkaService service : slivkaClient.getServices())
       {
         msaClassifier:
         {
@@ -121,21 +91,10 @@ public class SlivkaWSDiscoverer implements Runnable, WSMenuEntryProviderI
           }
           continue;
         }
-        JMenuItem menuEntry = new JMenuItem(String.format("%s with custom parameters", service.label));
-        disorderMenu.add(menuEntry);
-        SlivkaAnnotationServiceInstance serviceInstance = new SlivkaAnnotationServiceInstance(client, service);
-        menuEntry.addActionListener((ActionEvent evt) -> {
-          try
-          {
-            SlivkaParamSet paramSet = new SlivkaParamSet(service);
-            SequenceAnnotationWSClient client = new SequenceAnnotationWSClient();
-            client.initSequenceAnnotationWSClient(serviceInstance, alignFrame, paramSet, true);
-          } catch (IOException e)
-          {
-            throw new IOError(e);
-          }
-
-        });
+        SlivkaAnnotationServiceInstance serviceInstance = new SlivkaAnnotationServiceInstance(slivkaClient, service);
+        SequenceAnnotationWSClient client = new SequenceAnnotationWSClient();
+        client.attachWSMenuEntry(disorderMenu, serviceInstance, alignFrame);
+        disorderMenu.addSeparator();
       }
     } catch (IOException e)
     {