(discoverer, null);
+ new Thread(f).start();
+ tasks.add(f);
}
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
- t2 = jalview.ws.jws2.Jws2Discoverer.getDiscoverer().startDiscoverer(
- changeSupport);
+ tasks.add(jalview.ws.jws2.Jws2Discoverer.getInstance().startDiscoverer());
}
- Thread t3 = null;
+ if (Cache.getDefault("SHOW_SLIVKA_SERVICES", true))
{
- // TODO: do rest service discovery
+ tasks.add(jalview.ws2.client.slivka.SlivkaWSDiscoverer
+ .getInstance().startDiscoverer());
}
if (blocking)
{
- while (alive)
- {
+ for (Future> task : tasks) {
try
{
- Thread.sleep(15);
+ // block until all discovery tasks are done
+ task.get();
} catch (Exception e)
{
+ e.printStackTrace();
}
- alive = (t1 != null && t1.isAlive())
- || (t2 != null && t2.isAlive())
- || (t3 != null && t3.isAlive())
- || (t0 != null && t0.isAlive());
}
}
}
@@ -2901,8 +2770,10 @@ public class Desktop extends jalview.jbgui.GDesktop implements
{
if (evt.getNewValue() == null || evt.getNewValue() instanceof Vector)
{
- final String ermsg = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
- .getErrorMessages();
+ final WSDiscovererI discoverer = jalview.ws.jws2.Jws2Discoverer
+ .getInstance();
+ final String ermsg = discoverer.getErrorMessages();
+ // CONFLICT:ALT:? final String ermsg = jalview.ws.jws2.Jws2Discoverer.getInstance()
if (ermsg != null)
{
if (Cache.getDefault("SHOW_WSDISCOVERY_ERRORS", true))
@@ -2940,20 +2811,16 @@ public class Desktop extends jalview.jbgui.GDesktop implements
*
* jd.waitForInput();
*/
- JvOptionPane
- .showConfirmDialog(
- Desktop.desktop,
- new JLabel(
- ""
- + "It may be that you have invalid JABA URLs
in your web service preferences,"
- + "
or as a command-line argument, or mis-configured HTTP proxy settings.
"
- + "Check the Connections and Web services tab
of the"
- + " Tools->Preferences dialog box to change them.
"),
- "Web Service Configuration Problem",
- JvOptionPane.DEFAULT_OPTION,
- JvOptionPane.ERROR_MESSAGE);
+ JvOptionPane.showConfirmDialog(desktopPane,
+ new JLabel(""
+ + "It may be that you have invalid JABA URLs
in your web service preferences,"
+ + "
or as a command-line argument, or mis-configured HTTP proxy settings.
"
+ + "Check the Connections and Web services tab
of the"
+ + " Tools->Preferences dialog box to change them.
"),
+ "Web Service Configuration Problem",
+ JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.ERROR_MESSAGE);
serviceChangedDialog = null;
}
@@ -2962,8 +2829,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
}
else
{
- Cache.log
- .error("Errors reported by JABA discovery service. Check web services preferences.\n"
+ Cache.log.error(
+ "Errors reported by JABA discovery service. Check web services preferences.\n"
+ ermsg);
}
}
@@ -2981,7 +2848,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
*/
public static void showUrl(final String url)
{
- showUrl(url, Desktop.instance);
+ showUrl(url, getInstance());
}
/**
@@ -3003,14 +2870,14 @@ public class Desktop extends jalview.jbgui.GDesktop implements
{
if (progress != null)
{
- progress.setProgressBar(MessageManager.formatMessage(
- "status.opening_params", new Object[] { url }), this
- .hashCode());
+ progress.setProgressBar(MessageManager
+ .formatMessage("status.opening_params", new Object[]
+ { url }), this.hashCode());
}
jalview.util.BrowserLauncher.openURL(url);
} catch (Exception ex)
{
- JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(getDesktopPane(),
MessageManager
.getString("label.web_browser_not_found_unix"),
MessageManager.getString("label.web_browser_not_found"),
@@ -3050,7 +2917,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
try
{
url = e.getURL().toString();
- Desktop.showUrl(url);
+ showUrl(url);
} catch (Exception x)
{
if (url != null)
@@ -3061,8 +2928,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
}
else
{
- System.err.println("Couldn't handle string " + url
- + " as a URL.");
+ System.err.println(
+ "Couldn't handle string " + url + " as a URL.");
}
}
// ignore any exceptions due to dud links.
@@ -3108,9 +2975,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
} catch (InterruptedException x)
{
}
- ;
}
- if (instance == null)
+ if (Jalview.isHeadlessMode())
{
return;
}
@@ -3133,27 +2999,39 @@ public class Desktop extends jalview.jbgui.GDesktop implements
block.release();
}
+ /**
+ * Outputs an image of the desktop to file in EPS format, after prompting the
+ * user for choice of Text or Lineart character rendering (unless a preference
+ * has been set). The file name is generated as
+ *
+ *
+ * Jalview_snapshot_nnnnn.eps where nnnnn is the current timestamp in milliseconds
+ *
+ */
@Override
protected void snapShotWindow_actionPerformed(ActionEvent e)
{
+ // currently the menu option to do this is not shown
invalidate();
- File of;
- ImageMaker im = new jalview.util.ImageMaker(this, ImageMaker.TYPE.EPS,
- "View of Desktop", getWidth(), getHeight(), of = new File(
- "Jalview_snapshot" + System.currentTimeMillis()
- + ".eps"), "View of desktop", null, 0, false);
- try
- {
- paintAll(im.getGraphics());
- im.writeImage();
- } catch (Exception q)
+
+ int width = getWidth();
+ int height = getHeight();
+ File of = new File(
+ "Jalview_snapshot_" + System.currentTimeMillis() + ".eps");
+ ImageWriterI writer = new ImageWriterI()
{
- Cache.log.error("Couldn't write snapshot to " + of.getAbsolutePath(),
- q);
- return;
- }
- Cache.log.info("Successfully written snapshot to file "
- + of.getAbsolutePath());
+ @Override
+ public void exportImage(Graphics g) throws Exception
+ {
+ paintAll(g);
+ Cache.log.info("Successfully written snapshot to file "
+ + of.getAbsolutePath());
+ }
+ };
+ String title = "View of desktop";
+ ImageExporter exporter = new ImageExporter(writer, null, TYPE.EPS,
+ title);
+ exporter.doExport(of, this, width, height, title);
}
/**
@@ -3224,7 +3102,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
{
splitFrame.setLocation(geometry.getLocation());
}
- Desktop.addInternalFrame(splitFrame, sf.getTitle(), -1, -1);
+ addInternalFrame(splitFrame, sf.getTitle(), -1, -1);
}
/*
@@ -3254,15 +3132,15 @@ public class Desktop extends jalview.jbgui.GDesktop implements
AlignFrame myBottomFrame = (AlignFrame) source.getBottomFrame();
myTopFrame.viewport.setExplodedGeometry(new Rectangle(source.getX(),
source.getY(), myTopFrame.getWidth(), myTopFrame.getHeight()));
- myBottomFrame.viewport.setExplodedGeometry(new Rectangle(source.getX(),
- source.getY(), myBottomFrame.getWidth(), myBottomFrame
- .getHeight()));
+ myBottomFrame.viewport
+ .setExplodedGeometry(new Rectangle(source.getX(), source.getY(),
+ myBottomFrame.getWidth(), myBottomFrame.getHeight()));
myTopFrame.viewport.setGatherViewsHere(true);
myBottomFrame.viewport.setGatherViewsHere(true);
String topViewId = myTopFrame.viewport.getSequenceSetId();
String bottomViewId = myBottomFrame.viewport.getSequenceSetId();
- JInternalFrame[] frames = desktop.getAllFrames();
+ JInternalFrame[] frames = desktopPane.getAllFrames();
for (JInternalFrame frame : frames)
{
if (frame instanceof SplitFrame && frame != source)
@@ -3281,10 +3159,10 @@ public class Desktop extends jalview.jbgui.GDesktop implements
gatherThis = true;
topPanel.av.setGatherViewsHere(false);
bottomPanel.av.setGatherViewsHere(false);
- topPanel.av.setExplodedGeometry(new Rectangle(sf.getLocation(),
- topFrame.getSize()));
- bottomPanel.av.setExplodedGeometry(new Rectangle(sf
- .getLocation(), bottomFrame.getSize()));
+ topPanel.av.setExplodedGeometry(
+ new Rectangle(sf.getLocation(), topFrame.getSize()));
+ bottomPanel.av.setExplodedGeometry(
+ new Rectangle(sf.getLocation(), bottomFrame.getSize()));
myTopFrame.addAlignmentPanel(topPanel, false);
myBottomFrame.addAlignmentPanel(bottomPanel, false);
}
@@ -3310,22 +3188,97 @@ public class Desktop extends jalview.jbgui.GDesktop implements
return groovyConsole;
}
- public static void transferFromDropTarget(List files,
+ /**
+ * handles the payload of a drag and drop event.
+ *
+ * TODO refactor to desktop utilities class
+ *
+ * @param files
+ * - Data source strings extracted from the drop event
+ * @param protocols
+ * - protocol for each data source extracted from the drop event
+ * @param evt
+ * - the drop event
+ * @param t
+ * - the payload from the drop event
+ * @throws Exception
+ */
+ @SuppressWarnings("unchecked")
+ public static void transferFromDropTarget(List