X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=src%2Fnet%2Fchiark%2Fyarrg%2FMarketUploader.java;h=a6df4975b34441a320301edb044553dae64d8789;hb=9ace79319e9dc8a8e45ff7bccf0f8e6046567d0a;hp=2e83678314e59cd04b66ea00bb97f70f1c2f207d;hpb=48dd6e2d6b6e3ca17d01aa4d4b2a80ecbf9c24c7;p=jarrg-ian.git diff --git a/src/net/chiark/yarrg/MarketUploader.java b/src/net/chiark/yarrg/MarketUploader.java index 2e83678..a6df497 100644 --- a/src/net/chiark/yarrg/MarketUploader.java +++ b/src/net/chiark/yarrg/MarketUploader.java @@ -34,7 +34,7 @@ import java.beans.*; * an error dialog is shown, and processing returns, the button * becoming re-enabled. */ -public class MarketUploader implements TopLevelWindowListener, GUIInitializedListener { +public class MarketUploader implements Runnable, TopLevelWindowListener, GUIInitializedListener { private JFrame frame = null; private Window window = null; private JButton findMarket = null; @@ -272,13 +272,51 @@ public class MarketUploader implements TopLevelWindowListener, GUIInitializedLis uploadToPCTB=prefs.getBoolean("uploadToPCTB", true); showArbitrage=prefs.getBoolean("showArbitrage", true); - EventQueueMonitor.addTopLevelWindowListener(this); + if (dtxt!=null) dtxt.println("main on dispatch thread: "+EventQueue.isDispatchThread()); + EventQueue.invokeLater(this); + } + + /* + * We arrange to wait for the GUI to be initialised, then look at every top-level window, + * and if it + */ + public void run() { + if (dtxt!=null) dtxt.println("MarketUploader run()..."); if (EventQueueMonitor.isGUIInitialized()) { - createGUI(); + if (dtxt!=null) dtxt.println("MarketUploader GUI already ready"); + guiInitialized(); } else { + if (dtxt!=null) dtxt.println("MarketUploader waiting for GUI"); EventQueueMonitor.addGUIInitializedListener(this); } } + + public void guiInitialized() { + Window ws[]= EventQueueMonitor.getTopLevelWindows(); + EventQueueMonitor.addTopLevelWindowListener(this); + for (int i=0; i