import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.awt.event.*;
+import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
Cache.log.debug("Filechooser init thread finished.");
}
}).start();
+ // Add the service change listener
+ changeSupport.addJalviewPropertyChangeListener("services",
+ new PropertyChangeListener()
+ {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ Cache.log.debug("Firing service changed event for "
+ + evt.getNewValue());
+ JalviewServicesChanged(evt);
+ }
+
+ });
}
/**
}
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
- if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning()) {
+ if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning())
+ {
jalview.ws.jws2.Jws2Discoverer.getDiscoverer().setAborted(true);
}
- t2=jalview.ws.jws2.Jws2Discoverer.getDiscoverer().startDiscoverer(changeSupport);
+ t2 = jalview.ws.jws2.Jws2Discoverer.getDiscoverer().startDiscoverer(
+ changeSupport);
}
if (blocking)
}
/**
+ * called to check if the service discovery process completed successfully.
+ *
+ * @param evt
+ */
+ protected void JalviewServicesChanged(PropertyChangeEvent evt)
+ {
+ if (evt.getNewValue() instanceof Vector)
+ {
+ final String ermsg = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
+ .getErrorMessages();
+ if (ermsg != null)
+ {
+ if (serviceChangedDialog == null)
+ {
+ // only run if we aren't already displaying one of these.
+ javax.swing.SwingUtilities
+ .invokeLater(serviceChangedDialog = new Runnable()
+ {
+ public void run()
+ {
+
+ JOptionPane
+ .showInternalMessageDialog(
+ Desktop.desktop,
+ ermsg
+ + "\nPlease check the web services preferences.\n",
+ "Preferences Problem",
+ JOptionPane.WARNING_MESSAGE);
+ serviceChangedDialog = null;
+
+ }
+ });
+ }
+ }
+ }
+ }
+
+ private Runnable serviceChangedDialog = null;
+
+ /**
* start a thread to open a URL in the configured browser. Pops up a warning
* dialog to the user if there is an exception when calling out to the browser
* to open the URL.