import java.net.URL;
import java.util.zip.GZIPInputStream;
-import javajs.util.Rdr;
-
/**
* implements a random access wrapper around a particular datasource, for
* passing to identifyFile and AlignFile objects.
public File inFile = null;
- public byte[] bytes; // from JavaScript
+ private byte[] bytes; // from JavaScript
+ public byte[] getBytes()
+ {
+ return bytes;
+ }
/**
* a viewport associated with the current file operation. May be null. May
* move to different object.
* Create a datasource for input to Jalview. See AppletFormatAdapter for the
* types of sources that are handled.
*
- * @param fileStr
- * - datasource locator/content
+ * @param file
+ * - datasource locator/content as File or String
* @param sourceType
* - protocol of source
* @throws MalformedURLException
* @throws IOException
*/
- public FileParse(String fileStr, DataSourceType sourceType)
- throws MalformedURLException, IOException
- {
-
- this(null, fileStr, sourceType, false);
- }
-
- public FileParse(File file, DataSourceType sourceType)
+ public FileParse(Object file, DataSourceType sourceType)
throws MalformedURLException, IOException
{
-
- this(file, file.getPath(), sourceType, true);
+ if (file instanceof File)
+ {
+ parse((File) file, ((File) file).getPath(), sourceType, true);
+ }
+ else
+ {
+ parse(null, file.toString(), sourceType, false);
+ }
}
- private FileParse(File file, String fileStr, DataSourceType sourceType,
+ private void parse(File file, String fileStr, DataSourceType sourceType,
boolean isFileObject) throws MalformedURLException, IOException
{
-
/**
* @j2sNative
*
{
// this will be from JavaScript
inFile = file;
- dataIn = new BufferedReader(new java.io.InputStreamReader(new ByteArrayInputStream(bytes)));
+ dataIn = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(bytes)));
dataName = fileStr;
}
else if (checkFileSource(fileStr))
}
else if (sourceType == DataSourceType.RELATIVE_URL)
{
- String data = null;
/**
* BH 2018 hack for no support for access-origin
*
* @j2sNative
*
- * data = $.ajax({url:fileStr, async:false}).responseText;
+ * this.bytes = swingjs.JSToolkit.getFileAsBytes(fileStr);
*
*/
- dataIn = Rdr.getBR(data);
-
+ dataIn = new BufferedReader(new java.io.InputStreamReader(new ByteArrayInputStream(bytes)));
dataName = fileStr;
}