JAL-3070 slivka service discovery as a background thread - still need to unify Jabaws...
[jalview.git] / src / jalview / gui / AlignFrame.java
index a429ece..e66b8d1 100644 (file)
@@ -33,6 +33,7 @@ import jalview.api.AlignViewControllerI;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.FeatureSettingsControllerI;
+import jalview.api.FeatureSettingsModelI;
 import jalview.api.SplitContainerI;
 import jalview.api.ViewStyleI;
 import jalview.api.analysis.SimilarityParamsI;
@@ -101,13 +102,14 @@ import jalview.viewmodel.AlignmentViewport;
 import jalview.viewmodel.ViewportRanges;
 import jalview.ws.DBRefFetcher;
 import jalview.ws.DBRefFetcher.FetchFinishedListenerI;
+import jalview.ws.api.ServiceWithParameters;
 import jalview.ws.jws1.Discoverer;
 import jalview.ws.jws2.Jws2Discoverer;
-import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.ParamDatastoreI;
 import jalview.ws.params.WsParamSetI;
 import jalview.ws.seqfetcher.DbSourceProxy;
+import jalview.ws.slivkaws.SlivkaWSDiscoverer;
 
 import java.awt.BorderLayout;
 import java.awt.Component;
@@ -3786,6 +3788,28 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     alignPanel.paintAlignment(true, false);
   }
 
+  @Override
+  public void sortEValueMenuItem_actionPerformed(ActionEvent e)
+  {
+    SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+    AlignmentSorter.sortByEValue(viewport.getAlignment());
+    addHistoryItem(new OrderCommand("Group Sort", oldOrder,
+            viewport.getAlignment()));
+    alignPanel.paintAlignment(true, false);
+
+  }
+
+  @Override
+  public void sortBitScoreMenuItem_actionPerformed(ActionEvent e)
+  {
+    SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+    AlignmentSorter.sortByBitScore(viewport.getAlignment());
+    addHistoryItem(new OrderCommand("Group Sort", oldOrder,
+            viewport.getAlignment()));
+    alignPanel.paintAlignment(true, false);
+
+  }
+  
   /**
    * DOCUMENT ME!
    * 
@@ -4398,9 +4422,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     if (jws2servs.hasServices())
                     {
                       jws2servs.attachWSMenuEntry(webService, me);
-                      for (Jws2Instance sv : jws2servs.getServices())
+                      for (ServiceWithParameters sv : jws2servs.getServices())
                       {
-                        if (sv.description.toLowerCase().contains("jpred"))
+                        if (sv.getName().toLowerCase().contains("jpred"))
                         {
                           for (JMenuItem jmi : legacyItems)
                           {
@@ -4420,6 +4444,29 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   }
                 }
                 build_urlServiceMenu(me.webService);
+
+
+                // TODO Mateusz - follow pattern for adding web service
+                // JMenuItems for slivka-based services
+
+                SlivkaWSDiscoverer slivkaDiscoverer = SlivkaWSDiscoverer.getInstance();
+                if (slivkaDiscoverer.hasServices())
+                {
+                slivkaDiscoverer.attachWSMenuEntry(webService, me);
+                } else {
+                  if (slivkaDiscoverer.isRunning())
+                  {
+                    {
+                      JMenuItem tm = new JMenuItem(
+                              "Still discovering Slivka Services");
+                      tm.setEnabled(false);
+                      webService.add(tm);
+                    }
+
+                  }
+                }
+              
+
                 build_fetchdbmenu(webService);
                 for (JMenu item : wsmenu)
                 {
@@ -5211,6 +5258,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               @Override
               public void finished()
               {
+
+                for (FeatureSettingsModelI srcSettings : dbRefFetcher
+                        .getFeatureSettingsModels())
+                {
+
+                  alignPanel.av.mergeFeaturesStyle(srcSettings);
+                }
                 AlignFrame.this.setMenusForViewport();
               }
             });
@@ -5296,6 +5350,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                                   @Override
                                   public void finished()
                                   {
+                                    FeatureSettingsModelI srcSettings = dassource[0]
+                                            .getFeatureColourScheme();
+                                    alignPanel.av.mergeFeaturesStyle(
+                                            srcSettings);
                                     AlignFrame.this.setMenusForViewport();
                                   }
                                 });