From 77ecb160b47e44406ebdb597c89470612544fee4 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 21 May 2010 10:08:08 +0000 Subject: [PATCH] more robust discovery and preset support --- src/jalview/gui/AlignFrame.java | 13 ++----------- src/jalview/ws/jws2/Jws2Discoverer.java | 30 +++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 18465e1..0d8149c 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -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() diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index 164725b..172b393 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -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()) { -- 1.7.10.2