X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJws2Discoverer.java;h=2ef9cfd725aaa0cff14397ad21c272880749e31b;hb=c13784724ba3826e6cc3faeb85571cf30776592d;hp=cb1f49b7757d3785497c75cc4668dd5f7d409aa2;hpb=783111be4a80d619928cd421247bafaba4710643;p=jalview.git diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index cb1f49b..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; @@ -70,7 +74,6 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI Thread oldthread = null; - @Override public void run() { if (running && oldthread != null && oldthread.isAlive()) @@ -180,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) @@ -251,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; + } }; /** @@ -286,9 +314,40 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI } - @Override 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; @@ -299,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; @@ -347,11 +407,6 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI * alignFrame); } }); */ } - if (services.size() > 0) - { - wsmenu.add(jws2al); - } - } public static void main(String[] args) @@ -360,7 +415,6 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI getDiscoverer().addPropertyChangeListener(new PropertyChangeListener() { - @Override public void propertyChange(PropertyChangeEvent evt) { System.out.println("Changesupport: There are now " @@ -484,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; }