JAL-3878 update branch from 2.12 merge from 2.11.2
[jalview.git] / src / jalview / gui / AlignFrame.java
index 74ac8c0..7ab80ad 100644 (file)
@@ -185,70 +185,6 @@ import jalview.ws.seqfetcher.DbSourceProxy;
 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;
-
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Rectangle;
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.datatransfer.Transferable;
-import java.awt.dnd.DnDConstants;
-import java.awt.dnd.DropTargetDragEvent;
-import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusAdapter;
-import java.awt.event.FocusEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-import java.awt.print.PageFormat;
-import java.awt.print.PrinterJob;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Deque;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Vector;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JComponent;
-import javax.swing.JEditorPane;
-import javax.swing.JInternalFrame;
-import javax.swing.JLabel;
-import javax.swing.JLayeredPane;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.SwingUtilities;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
-import ext.vamsas.ServiceHandle;
 
 /**
  * DOCUMENT ME!
@@ -978,13 +914,22 @@ 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))
     {
@@ -1001,7 +946,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);
@@ -1130,6 +1075,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);