static boolean alreadyDetectedProxy = false;
/** the result of proxy autodetection */
- static HTTP.Proxy cachedProxyInfo = null;
+ static org.xwt.HTTP.Proxy cachedProxyInfo = null;
/** the current build */
public static String build = "unknown";
/** displays a platform-specific "open file" dialog and returns the chosen filename, or null if the user hit cancel */
protected String _fileDialog(String suggestedFileName, boolean write) { return null; }
public static String fileDialog(String suggestedFileName, boolean write) {
- if (!ThreadMessage.suspendThread()) return null;
- try {
- return platform._fileDialog(suggestedFileName, write);
- } finally {
- ThreadMessage.resumeThread();
- }
+ // FIXME: put self in background
+ return platform._fileDialog(suggestedFileName, write);
}
/** default implementation is Eric Albert's BrowserLauncher.java */
Object icon = b.get("icon", true);
if (icon != null && icon instanceof Res) {
+ /*
+ FIXME
Picture pic = Picture.fromRes((Res)icon);
if (pic != null) ret.setIcon(pic);
else if (Log.on) Log.log(Platform.class, "unable to load icon " + icon);
+ */
}
ret.setLimits(b.minwidth, b.minheight, b.maxwidth, b.maxheight);
}
/** detects proxy settings */
- protected synchronized HTTP.Proxy _detectProxy() { return null; }
- public static synchronized HTTP.Proxy detectProxy() {
+ protected synchronized org.xwt.HTTP.Proxy _detectProxy() { return null; }
+ public static synchronized org.xwt.HTTP.Proxy detectProxy() {
if (cachedProxyInfo != null) return cachedProxyInfo;
if (alreadyDetectedProxy) return null;
alreadyDetectedProxy = true;
if (Log.on) Log.log(Platform.class, "attempting environment-variable DNS proxy detection");
- cachedProxyInfo = HTTP.Proxy.detectProxyViaManual();
+ cachedProxyInfo = org.xwt.HTTP.Proxy.detectProxyViaManual();
if (cachedProxyInfo != null) return cachedProxyInfo;
if (Log.on) Log.log(Platform.class, "attempting " + platform.getClass().getName() + " proxy detection");
return cachedProxyInfo;
}
+
+ /** returns a Scheduler instance; used to implement platform-specific schedulers */
+ protected Scheduler _getScheduler() { return new Scheduler(); }
+ public static Scheduler getScheduler() { return platform._getScheduler(); }
+
+ /** read an input stream into a byte array and invoke callback when ready */
+ protected void _inputStreamToByteArray(final InputStream is, final Callback c) {
+ new java.lang.Thread() {
+ public void run() {
+ try {
+ final byte[] b = InputStreamToByteArray.convert(is);
+ Scheduler.add(new Scheduler.Task() { public void perform() { c.call(b); }});
+ } catch (IOException e) {
+ Log.log(Platform.class, e);
+ }
+ }
+ }.start();
+ }
+ public static void inputStreamToByteArray(InputStream is, Callback c) { platform._inputStreamToByteArray(is, c); }
public static void running() { platform._running(); }
public void _running() { new Semaphore().block(); }