X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAlignFrame.java;fp=src%2Fjalview%2Fgui%2FAlignFrame.java;h=63bbb720d16f58779af1fbd29899096c295d7ff5;hb=8307be83ae28064b8f606f6c7a77dd186485a0fa;hp=c38f336cf6440b310893bf67127cd92f758544fb;hpb=49ab19e8189569edf0bc1f4ba8dac14e67f4ca36;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index c38f336..63bbb72 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -182,7 +182,10 @@ import jalview.ws.params.ArgumentI; import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.WsParamSetI; import jalview.ws.seqfetcher.DbSourceProxy; -import jalview.ws.slivkaws.SlivkaWSDiscoverer; +import jalview.ws2.client.api.WebServiceDiscovererI; +import jalview.ws2.client.slivka.SlivkaWSDiscoverer; +import jalview.ws2.gui.WebServicesMenuManager; + import java.io.IOException; import java.util.HashSet; import java.util.Set; @@ -964,13 +967,23 @@ public class AlignFrame extends GAlignFrame { buildWebServicesMenu(); } + + private WebServiceDiscovererI.ServicesChangeListener slivkaServiceChangeListener = + (discoverer, services) -> { + // run when slivka services change + var menu = AlignFrame.this.slivkaMenu; + menu.setServices(discoverer); + menu.setInProgress(discoverer.isRunning()); + menu.setNoServices(services.isEmpty() && discoverer.isDone()); + }; + /* Set up intrinsic listeners for dynamically generated GUI bits. */ private void addServiceListeners() { if (Cache.getDefault("SHOW_SLIVKA_SERVICES", true)) { - WSDiscovererI discoverer = SlivkaWSDiscoverer.getInstance(); - discoverer.addServiceChangeListener(this); + WebServiceDiscovererI discoverer = SlivkaWSDiscoverer.getInstance(); + discoverer.addServicesChangeListener(slivkaServiceChangeListener); } if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { @@ -987,7 +1000,7 @@ public class AlignFrame extends GAlignFrame @Override public void internalFrameClosed(InternalFrameEvent e) { System.out.println("deregistering discoverer listener"); - SlivkaWSDiscoverer.getInstance().removeServiceChangeListener(AlignFrame.this); + SlivkaWSDiscoverer.getInstance().removeServicesChangeListener(slivkaServiceChangeListener); Jws2Discoverer.getInstance().removeServiceChangeListener(AlignFrame.this); Desktop.getInstance().removeJalviewPropertyChangeListener("services", legacyListener); closeMenuItem_actionPerformed(true); @@ -1111,6 +1124,12 @@ public class AlignFrame extends GAlignFrame } @Override + public void addProgressBar(long id, String message) + { + progressBar.addProgressBar(id, message); + } + + @Override public void removeProgressBar(long id) { progressBar.removeProgressBar(id); @@ -4637,6 +4656,7 @@ public class AlignFrame extends GAlignFrame return tp; } + private WebServicesMenuManager slivkaMenu = new WebServicesMenuManager("slivka", this); /** * Schedule the web services menu rebuild to the event dispatch thread. @@ -4650,9 +4670,10 @@ public class AlignFrame extends GAlignFrame { Console.info("Building web service menu for slivka"); SlivkaWSDiscoverer discoverer = SlivkaWSDiscoverer.getInstance(); - JMenu submenu = new JMenu("Slivka"); - buildWebServicesMenu(discoverer, submenu); - webService.add(submenu); + slivkaMenu.setServices(discoverer); + slivkaMenu.setInProgress(discoverer.isRunning()); + slivkaMenu.setNoServices(discoverer.isDone() && !discoverer.hasServices()); + webService.add(slivkaMenu.getMenu()); } if (Cache.getDefault("SHOW_JWS2_SERVICES", true)) { @@ -4662,6 +4683,7 @@ public class AlignFrame extends GAlignFrame buildWebServicesMenu(jws2servs, submenu); webService.add(submenu); } + build_urlServiceMenu(webService); build_fetchdbmenu(webService); }); }