X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJws2Discoverer.java;h=2ef9cfd725aaa0cff14397ad21c272880749e31b;hb=c13784724ba3826e6cc3faeb85571cf30776592d;hp=2528308683faf7ad3ed29a98e91996c28ee47ecf;hpb=439d5ad378494d0afa9668e2308ad605c51afcc0;p=jalview.git diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index 2528308..2ef9cfd 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -15,13 +15,17 @@ import java.util.Vector; import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.event.MenuEvent; +import javax.swing.event.MenuListener; import org.apache.log4j.Level; import jalview.bin.Cache; import jalview.datamodel.AlignmentView; import jalview.gui.AlignFrame; +import jalview.gui.Desktop; import jalview.ws.WSMenuEntryProviderI; +import jalview.ws.params.ParamDatastoreI; import compbio.data.msa.MsaWS; import compbio.metadata.Option; import compbio.metadata.Preset; @@ -179,6 +183,8 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI PresetManager presets = null; + public JabaParamStore paramStore = null; + /** * non thread safe - gets the presets for this service (blocks whilst it * calls the service to get the preset set) @@ -250,6 +256,29 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI } super.finalize(); } + + public ParamDatastoreI getParamStore() + { + if (paramStore == null) + { + try + { + paramStore = new JabaParamStore(this, + (Desktop.instance != null ? Desktop + .getUserParameterStore() : null)); + } catch (Exception ex) + { + } + + } + return paramStore; + } + + public String getUri() + { + // this is only valid for Jaba 1.0 - this formula might have to change! + return hosturl+"/"+serviceType; + } }; /** @@ -287,6 +316,38 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame) { + // dynamically regenerate service list. + final JMenu jws2al = new JMenu("JABA Alignment"); + jws2al.addMenuListener(new MenuListener() + { + // TODO: future: add menu listener to parent menu - so submenus are + // populated *before* they are selected. + @Override + public void menuSelected(MenuEvent e) + { + populateWSMenuEntry(jws2al, alignFrame); + } + + @Override + public void menuDeselected(MenuEvent e) + { + // TODO Auto-generated method stub + + } + + @Override + public void menuCanceled(MenuEvent e) + { + // TODO Auto-generated method stub + + } + + }); + wsmenu.add(jws2al); + } + + private void populateWSMenuEntry(JMenu jws2al, final AlignFrame alignFrame) + { if (running || services == null || services.size() == 0) { return; @@ -297,9 +358,10 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI * eventually, JWS2 services will appear under the same align/etc submenus. * for moment we keep them separate. */ - JMenu atpoint, jws2al = new JMenu("JABA Alignment"); + JMenu atpoint; MsaWSClient msacl = new MsaWSClient(); Vector hostLabels = new Vector(); + jws2al.removeAll(); for (final Jws2Instance service : services) { atpoint = jws2al; @@ -345,11 +407,6 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI * alignFrame); } }); */ } - if (services.size() > 0) - { - wsmenu.add(jws2al); - } - } public static void main(String[] args) @@ -481,22 +538,23 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI /** * test the given URL with the JabaWS test code + * * @param foo * @return */ public static boolean testServiceUrl(URL foo) { - try { - compbio.ws.client.WSTester.main(new String[] { "-h="+foo.toString()}); + try + { + compbio.ws.client.WSTester.main(new String[] + { "-h=" + foo.toString() }); } catch (Exception e) { return false; - } - catch (OutOfMemoryError e) + } catch (OutOfMemoryError e) { return false; - } - catch (Error e) + } catch (Error e) { return false; }