From: <ha...@us...> - 2012-09-30 18:10:56
|
Revision: 17598 http://jmol.svn.sourceforge.net/jmol/?rev=17598&view=rev Author: hansonr Date: 2012-09-30 18:10:50 +0000 (Sun, 30 Sep 2012) Log Message: ----------- file platform issues for android Modified Paths: -------------- trunk/Jmol-Android/src/org/openscience/jmolandroid/api/Platform.java Added Paths: ----------- trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFile.java trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFileAdapter.java Added: trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFile.java =================================================================== --- trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFile.java (rev 0) +++ trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFile.java 2012-09-30 18:10:50 UTC (rev 17598) @@ -0,0 +1,25 @@ +package org.openscience.jmolandroid.api; + +import java.io.File; + +import org.jmol.api.JmolFileInterface; + +/** + * a subclass of File allowing extension to JavaScript + * + * private to org.jmol.awt + * + */ + +class JmolFile extends File implements JmolFileInterface { + + public JmolFile(String name) { + super(name); + } + + public JmolFileInterface getParentAsFile() { + File file = getParentFile(); + return (file == null ? null : new JmolFile(file.getAbsolutePath())); + } + +} Added: trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFileAdapter.java =================================================================== --- trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFileAdapter.java (rev 0) +++ trunk/Jmol-Android/src/org/openscience/jmolandroid/api/JmolFileAdapter.java 2012-09-30 18:10:50 UTC (rev 17598) @@ -0,0 +1,66 @@ +package org.openscience.jmolandroid.api; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.net.URL; +import java.net.URLConnection; + +import org.jmol.api.JmolFileAdapterInterface; +import org.jmol.api.JmolFileInterface; + +public class JmolFileAdapter implements JmolFileAdapterInterface { + + public Object getBufferedURLInputStream(URL url, byte[] outputBytes, + String post) { + try { + URLConnection conn = url.openConnection(); + String type = null; + if (outputBytes != null) { + type = "application/octet-stream;"; + } else if (post != null) { + type = "application/x-www-form-urlencoded"; + } + if (type != null) { + conn.setRequestProperty("Content-Type", type); + conn.setDoOutput(true); + if (outputBytes == null) + outputString(conn, post); + else + outputBytes(conn, outputBytes); + } + return new BufferedInputStream(conn.getInputStream()); + } catch (IOException e) { + return e.getMessage(); + } + } + + private void outputBytes(URLConnection conn, byte[] bytes) throws IOException { + conn.getOutputStream().write(bytes); + conn.getOutputStream().flush(); + //??conn.getOutputStream().close(); + } + + private void outputString(URLConnection conn, String post) throws IOException { + OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); + wr.write(post); + wr.flush(); + //??wr.close(); + } + + public Object getBufferedFileInputStream(String name) { + File file = new File(name); + try { + return new BufferedInputStream(new FileInputStream(file)); + } catch (IOException e) { + return e.getMessage(); + } + } + + public static JmolFileInterface newFile(String name) { + return new JmolFile(name); + } + +} Modified: trunk/Jmol-Android/src/org/openscience/jmolandroid/api/Platform.java =================================================================== --- trunk/Jmol-Android/src/org/openscience/jmolandroid/api/Platform.java 2012-09-30 18:02:39 UTC (rev 17597) +++ trunk/Jmol-Android/src/org/openscience/jmolandroid/api/Platform.java 2012-09-30 18:10:50 UTC (rev 17598) @@ -14,10 +14,6 @@ public class Platform implements ApiPlatform { - public boolean isSingleThreaded() { - return false; - } - public void setViewer(JmolViewer viewer, Object display) { ((AndroidUpdateListener) display).setViewer(viewer); } @@ -175,21 +171,16 @@ return null; } - @Override public boolean isHeadless() { return false; } - @Override - public FileAdapterInterface getFileAdapter() { - return null; // N/A - } - - - @Override public JmolFileInterface newFile(String name) { - return null; + return JmolFileAdapter.newFile(name); } - + public boolean isSingleThreaded() { + return false; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |