import jalview.ws.ServiceChangeListener;
import jalview.ws.WSDiscovererI;
import jalview.ws.api.ServiceWithParameters;
+import jalview.ws.jws1.Discoverer;
import jalview.ws.jws2.Jws2Discoverer;
import jalview.ws.jws2.PreferredServiceRegistry;
import jalview.ws.params.ArgumentI;
{
WSDiscovererI jws2servs = Jws2Discoverer.getDiscoverer();
JMenu submenu = new JMenu("JABAWS");
+ buildLegacyWebServicesMenu(submenu);
buildWebServicesMenu(jws2servs, submenu);
webService.add(submenu);
}
});
}
+ private void buildLegacyWebServicesMenu(JMenu menu)
+ {
+ JMenu secstrmenu = new JMenu("Secondary Structure Prediction");
+ if (Discoverer.services != null && Discoverer.services.size() > 0)
+ {
+ var secstrpred = Discoverer.services.get("SecStrPred");
+ if (secstrpred != null)
+ {
+ for (ext.vamsas.ServiceHandle sh : secstrpred)
+ {
+ var menuProvider = Discoverer.getServiceClient(sh);
+ menuProvider.attachWSMenuEntry(secstrmenu, this);
+ }
+ }
+ }
+ menu.add(secstrmenu);
+ }
+
/**
* Constructs the web services menu for the given discoverer under the
* specified menu. This method must be called on the EDT
}
}
-// private boolean buildingMenu = false;
-
- /**
- * Generates menu items and listener event actions for web service clients
- *
- */
-// public void BuildWebServiceMenu()
-// {
-// while (buildingMenu)
-// {
-// try
-// {
-// System.err.println("Waiting for building menu to finish.");
-// Thread.sleep(10);
-// } catch (Exception e)
-// {
-// }
-// }
-// final AlignFrame me = this;
-// buildingMenu = true;
-// new Thread(new Runnable()
-// {
-// @Override
-// public void run()
-// {
-// final List<JMenuItem> legacyItems = new ArrayList<>();
-// try
-// {
-// // System.err.println("Building ws menu again "
-// // + Thread.currentThread());
-// // TODO: add support for context dependent disabling of services based
-// // on
-// // alignment and current selection
-// // TODO: add additional serviceHandle parameter to specify abstract
-// // handler
-// // class independently of AbstractName
-// // TODO: add in rediscovery GUI function to restart discoverer
-// // TODO: group services by location as well as function and/or
-// // introduce
-// // object broker mechanism.
-// final Vector<JMenu> wsmenu = new Vector<>();
-// final IProgressIndicator af = me;
-//
-// /*
-// * do not i18n these strings - they are hard-coded in class
-// * compbio.data.msa.Category, Jws2Discoverer.isRecalculable() and
-// * SequenceAnnotationWSClient.initSequenceAnnotationWSClient()
-// */
-// final JMenu msawsmenu = new JMenu("Alignment");
-// final JMenu secstrmenu = new JMenu(
-// "Secondary Structure Prediction");
-// final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
-// final JMenu analymenu = new JMenu("Analysis");
-// final JMenu dismenu = new JMenu("Protein Disorder");
-// // JAL-940 - only show secondary structure prediction services from
-// // the legacy server
-// if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
-// // &&
-// Discoverer.services != null && (Discoverer.services.size() > 0))
-// {
-// // TODO: refactor to allow list of AbstractName/Handler bindings to
-// // be
-// // stored or retrieved from elsewhere
-// // No MSAWS used any more:
-// // Vector msaws = null; // (Vector)
-// // Discoverer.services.get("MsaWS");
-// Vector<ServiceHandle> secstrpr = Discoverer.services
-// .get("SecStrPred");
-// if (secstrpr != null)
-// {
-// // Add any secondary structure prediction services
-// for (int i = 0, j = secstrpr.size(); i < j; i++)
-// {
-// final ext.vamsas.ServiceHandle sh = secstrpr.get(i);
-// jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
-// .getServiceClient(sh);
-// int p = secstrmenu.getItemCount();
-// impl.attachWSMenuEntry(secstrmenu, me);
-// int q = secstrmenu.getItemCount();
-// for (int litm = p; litm < q; litm++)
-// {
-// legacyItems.add(secstrmenu.getItem(litm));
-// }
-// }
-// }
-// }
-//
-// // Add all submenus in the order they should appear on the web
-// // services menu
-// wsmenu.add(msawsmenu);
-// wsmenu.add(secstrmenu);
-// wsmenu.add(dismenu);
-// wsmenu.add(analymenu);
-// // No search services yet
-// // wsmenu.add(seqsrchmenu);
-//
-// javax.swing.SwingUtilities.invokeLater(new Runnable()
-// {
-// @Override
-// public void run()
-// {
-// try
-// {
-// webService.removeAll();
-// // first, add discovered services onto the webservices menu
-// if (wsmenu.size() > 0)
-// {
-// for (int i = 0, j = wsmenu.size(); i < j; i++)
-// {
-// webService.add(wsmenu.get(i));
-// }
-// }
-// else
-// {
-// webService.add(me.webServiceNoServices);
-// }
-// // TODO: move into separate menu builder class.
-// boolean new_sspred = false;
-//
-// if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
-// {
-// WSDiscovererI jws2servs = Jws2Discoverer.getDiscoverer();
-// if (jws2servs != null)
-// {
-// if (jws2servs.hasServices())
-// {
-// jws2servs.attachWSMenuEntry(webService, me);
-// for (ServiceWithParameters sv : jws2servs
-// .getServices())
-// {
-// if (sv.getName().toLowerCase().contains("jpred"))
-// {
-// for (JMenuItem jmi : legacyItems)
-// {
-// jmi.setVisible(false);
-// }
-// }
-// }
-//
-// }
-// if (jws2servs.isRunning())
-// {
-// JMenuItem tm = new JMenuItem(
-// "Still discovering JABA Services");
-// tm.setEnabled(false);
-// webService.add(tm);
-// }
-// }
-// }
-//
-// if (Cache.getDefault("SHOW_SLIVKA_SERVICES", true))
-// {
-// WSDiscovererI discoverer = SlivkaWSDiscoverer
-// .getInstance();
-// if (discoverer != null)
-// {
-// if (discoverer.hasServices())
-// {
-// discoverer.attachWSMenuEntry(webService, me);
-// }
-// if (discoverer.isRunning())
-// {
-// JMenuItem tm = new JMenuItem(
-// "Still discovering Slivka Services");
-// tm.setEnabled(false);
-// webService.add(tm);
-// }
-// }
-// }
-//
-// build_urlServiceMenu(me.webService);
-// build_fetchdbmenu(webService);
-// for (JMenu item : wsmenu)
-// {
-// if (item.getItemCount() == 0)
-// {
-// item.setEnabled(false);
-// }
-// else
-// {
-// item.setEnabled(true);
-// }
-// }
-// } catch (Exception e)
-// {
-// Cache.log.debug(
-// "Exception during web service menu building process.",
-// e);
-// }
-// }
-// });
-// } catch (Exception e)
-// {
-// }
-// buildingMenu = false;
-// }
-// }).start();
-//
-// }
-
/**
* construct any groupURL type service menu entries.
*