rejigged change support to make it (more) reliable
[jalview.git] / src / jalview / gui / AlignFrame.java
index 87776d3..6ee243e 100755 (executable)
@@ -30,6 +30,7 @@ import javax.swing.*;
 import javax.swing.event.MenuEvent;
 
 import jalview.analysis.*;
+import jalview.bin.Cache;
 import jalview.commands.*;
 import jalview.datamodel.*;
 import jalview.io.*;
@@ -514,16 +515,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /* Set up intrinsic listeners for dynamically generated GUI bits. */
   private void addServiceListeners()
   {
-    final java.beans.PropertyChangeListener thisListener, thatListener;
+    final java.beans.PropertyChangeListener thisListener;
     // Do this once to get current state
     BuildWebServiceMenu();
-    Desktop.discoverer
-            .addPropertyChangeListener(thisListener = new java.beans.PropertyChangeListener()
+    Desktop.instance.addJalviewPropertyChangeListener("services",
+            thisListener=new java.beans.PropertyChangeListener()
             {
               public void propertyChange(PropertyChangeEvent evt)
               {
-                // System.out.println("Discoverer property change.");
-                if (evt.getPropertyName().equals("services"))
+                // // System.out.println("Discoverer property change.");
+                // if (evt.getPropertyName().equals("services"))
                 {
                   SwingUtilities.invokeLater(new Runnable()
                   {
@@ -532,7 +533,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     public void run()
                     {
                       System.err
-                              .println("Change support JWS1: build services again.");
+                              .println("Rebuild WS Menu for service change");
                       BuildWebServiceMenu();
                     }
 
@@ -540,26 +541,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                 }
               }
             });
-    jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
-            .addPropertyChangeListener(
-                    thatListener = new java.beans.PropertyChangeListener()
-                    {
-                      public void propertyChange(PropertyChangeEvent evt)
-                      {
-                        System.err
-                                .println("Change support JWS2: build services again.");
-                        BuildWebServiceMenu();
-                      }
-                    });
     addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
     {
       public void internalFrameClosed(
               javax.swing.event.InternalFrameEvent evt)
       {
-        // System.out.println("deregistering discoverer listener");
-        Desktop.discoverer.removePropertyChangeListener(thisListener);
-        jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
-                .removePropertyChangeListener(thatListener);
+        System.out.println("deregistering discoverer listener");
+        Desktop.instance.removeJalviewPropertyChangeListener("services",thisListener);
         closeMenuItem_actionPerformed(true);
       };
     });
@@ -3843,7 +3831,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       // object broker mechanism.
       Vector wsmenu = new Vector();
       final IProgressIndicator af = this;
-      if ((Discoverer.services != null) && (Discoverer.services.size() > 0))
+      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
@@ -3901,6 +3891,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       }
 
       // TODO: move into separate menu builder class.
+      if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
       {
         Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer();
         if (jws2servs != null)
@@ -3911,13 +3902,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             jws2servs.attachWSMenuEntry(jws2men, this);
             wsmenu.add(jws2men);
           }
-          else
-          {
-            if (!jws2servs.isRunning())
-            {
-              new Thread(jws2servs).start();
-            }
-          }
         }
       }
       resetWebServiceMenu();
@@ -3959,8 +3943,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   private void build_urlServiceMenu(JMenu webService)
   {
-    jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(
-            webService, this);
+    if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
+    {
+      jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(
+              webService, this);
+    }
   }
 
   /*