- sleep(i);
- return null;
-
- } else if (method.equals("openFile")) {
- if (checkOnly) return Boolean.TRUE;
- if (args.length() != 1) return null;
- String file = Platform.fileDialog(args.elementAt(0).toString(), false);
- return file == null ? null : new Res.File(file);
-
- } else if (method.equals("saveFile") || method.equals("saveFileAs")) {
- if (checkOnly) return Boolean.TRUE;
- if (args.length() != 2) return null;
- if (!(args.elementAt(1) instanceof Res)) return null;
- String file = args.elementAt(0).toString();
- if (method.equals("saveFileAs") ||
- safeFiles.get(Platform.isCaseSensitive() ? file : file.toLowerCase()) == null) {
- file = Platform.fileDialog(file, true);
- // FIXME: throw exception here
- if (file == null) return null;
- safeFiles.put(Platform.isCaseSensitive() ? file : file.toLowerCase(), new Object());
- }
- try {
- InputStream is = ((Res)args.elementAt(1)).getInputStream();
- FileOutputStream out = new FileOutputStream(file);
- byte[] buffer = new byte[1024 * 16];
- while(true) {
- int numread = is.read(buffer, 0, buffer.length);
- if (numread == -1) break;
- out.write(buffer, 0, numread);
- }
- is.close();
- out.close();
- return null;
- } catch (IOException e) {
- if (Log.on) Log.log(XWT.class, "IO Exception while writing a ByteStream to a file");
- if (Log.on) Log.log(XWT.class, e);
- throw new JS.Exn("error while writing a Resource to a file");
- }