more robust discovery and preset support
authorjprocter <Jim Procter>
Fri, 21 May 2010 10:08:08 +0000 (10:08 +0000)
committerjprocter <Jim Procter>
Fri, 21 May 2010 10:08:08 +0000 (10:08 +0000)
src/jalview/gui/AlignFrame.java
src/jalview/ws/jws2/Jws2Discoverer.java

index 18465e1..0d8149c 100755 (executable)
@@ -531,7 +531,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     @Override
                     public void run()
                     {
-                      System.err.println("Change support: build services again.");
+                      System.err.println("Change support JWS1: build services again.");
                       BuildWebServiceMenu();
                     }
                     
@@ -545,17 +545,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     {
                       public void propertyChange(PropertyChangeEvent evt)
                       {
-                        SwingUtilities.invokeLater(new Runnable()
-                        {
-
-                          @Override
-                          public void run()
-                          {
-                            System.err.println("Change support: build services again.");
+                            System.err.println("Change support JWS2: build services again.");
                             BuildWebServiceMenu();
-                          }
-                          
-                        });
                         }
                     });
     addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
index 164725b..172b393 100644 (file)
@@ -2,6 +2,8 @@ package jalview.ws.jws2;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.net.ConnectException;
 import java.util.HashSet;
 import java.util.Vector;
@@ -16,6 +18,8 @@ import jalview.datamodel.AlignmentView;
 import jalview.gui.AlignFrame;
 import jalview.ws.WSMenuEntryProviderI;
 import compbio.data.msa.MsaWS;
+import compbio.metadata.Preset;
+import compbio.metadata.PresetManager;
 import compbio.ws.client.Jws2Base;
 import compbio.ws.client.Jws2Base.Services;
 
@@ -144,7 +148,23 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
       this.serviceType = serviceType;
       this.service = service;
     }
-
+    PresetManager presets = null;
+    /**
+     * non thread safe - gets the presets for this service (blocks whilst it calls the service to get the preset set)
+     * @return service presets or null if exceptions were raised.
+     */
+    public PresetManager getPresets() {
+      if (presets == null)
+      {
+        try {
+          presets = service.getPresets();
+        } catch (Exception ex)
+        {
+          System.err.println("Exception when retrieving presets for service "+serviceType+" at "+hosturl);
+        }
+      }
+      return presets;
+    }
   };
 
   /**
@@ -193,6 +213,14 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
   public static void main(String[] args)
   {
     Thread runner = new Thread(getDiscoverer());
+    getDiscoverer().addPropertyChangeListener(new PropertyChangeListener() {
+
+      @Override
+      public void propertyChange(PropertyChangeEvent evt)
+      {
+        System.out.println("Changesupport: There are now "+getDiscoverer().services.size()+" services");
+      }
+    });
     runner.start();
     while (runner.isAlive())
     {