public class FileManager extends Object implements javajs.api.BytePoster
Modifier and Type | Field and Description |
---|---|
private URL |
appletDocumentBaseURL |
private String |
appletProxy |
private Map<String,Object> |
cache |
private static String |
DELPHI_BINARY_MAGIC_NUMBER |
private String |
fileName |
private String |
fullPathName |
static String |
JPEG_CONTINUE_STRING |
(package private) JmolUtil |
jzu |
private String |
lastFullPathName |
private String |
lastNameAsGiven |
private String |
nameAsGiven |
private String |
pathForAllFiles |
static String |
PMESH_BINARY_MAGIC_NUMBER |
Map<String,Object> |
pngjCache |
private static String[] |
scriptFilePrefixes |
static String |
SIMULATION_PROTOCOL |
Map<String,byte[]> |
spardirCache |
private SpartanUtil |
spartanDoc |
Viewer |
vwr |
Constructor and Description |
---|
FileManager(Viewer vwr) |
Modifier and Type | Method and Description |
---|---|
private static String |
addDirectory(String defaultDirectory,
String name) |
(package private) void |
cacheClear() |
int |
cacheFileByNameAdd(String fileName,
boolean isAdd) |
Object |
cacheGet(String key,
boolean bytesOnly) |
Map<String,Integer> |
cacheList() |
(package private) void |
cachePut(String key,
Object data) |
private boolean |
checkSecurity(String f) |
(package private) void |
clear() |
(package private) Object |
createAtomSeCollectionFromArrayData(javajs.util.Lst<Object> arrayData,
Map<String,Object> htParams,
boolean isAppend) |
(package private) Object |
createAtomSeCollectionFromStrings(String[] arrayModels,
javajs.util.SB loadScript,
Map<String,Object> htParams,
boolean isAppend) |
(package private) Object |
createAtomSetCollectionFromDOM(Object DOMNode,
Map<String,Object> htParams) |
(package private) Object |
createAtomSetCollectionFromFile(String name,
Map<String,Object> htParams,
boolean isAppend) |
(package private) Object |
createAtomSetCollectionFromFiles(String[] fileNames,
Map<String,Object> htParams,
boolean isAppend) |
(package private) Object |
createAtomSetCollectionFromReader(String fullPathName,
String name,
Object reader,
Map<String,Object> htParams)
not used in Jmol project -- will close reader
|
(package private) Object |
createAtomSetCollectionFromString(String strModel,
Map<String,Object> htParams,
boolean isAppend) |
static String |
determineSurfaceFileType(BufferedReader bufferedReader) |
static String |
determineSurfaceTypeIs(InputStream is) |
static String |
fixDOSName(String fileName)
Switch \ for / only for DOS names such as C:\temp\t.xyz, not names like http://cactus.nci.nih.gov/chemical/structure/CC/C=C\CC
|
private static String |
fixPath(String path) |
(package private) String |
getAppletDocumentBase() |
(package private) BufferedInputStream |
getBufferedInputStream(String fullPathName) |
Object |
getBufferedInputStreamOrErrorMessageFromName(String name,
String fullName,
boolean showMsg,
boolean checkOnly,
byte[] outputBytes,
boolean allowReader,
boolean allowCached) |
static BufferedReader |
getBufferedReaderForResource(Viewer vwr,
Object resourceClass,
String classPath,
String resourceName) |
Object |
getBufferedReaderOrErrorMessageFromName(String name,
String[] fullPathNameReturn,
boolean isBinary,
boolean doSpecialLoad) |
private byte[] |
getCachedPngjBytes(String pathName) |
String |
getCanonicalName(String pathName) |
private String[] |
getClassifiedName(String name,
boolean isFullLoad)
[0] and [2] may return same as [1] in the
case of a local unsigned applet.
|
(package private) String |
getDefaultDirectory(String name) |
String |
getEmbeddedFileState(String fileName,
boolean allowCached) |
static String |
getEmbeddedScript(String script) |
Object |
getFileAsBytes(String name,
javajs.util.OC out) |
Map<String,Object> |
getFileAsMap(String name) |
boolean |
getFileDataAsString(String[] data,
int nBytesMax,
boolean doSpecialLoad,
boolean allowBinary,
boolean checkProtected) |
String[] |
getFileInfo() |
String |
getFileName() |
String |
getFilePath(String name,
boolean addUrlPrefix,
boolean asShortName) |
static void |
getFileReferences(String script,
javajs.util.Lst<String> fileList) |
String |
getFullPathName(boolean orPrevious) |
(package private) Object |
getFullPathNameOrError(String filename,
boolean getStream,
String[] ret)
just check for a file as being readable.
|
JmolUtil |
getJzu() |
static javajs.api.GenericFileInterface |
getLocalDirectory(Viewer vwr,
boolean forDialog) |
static String |
getLocalPathForWritingFile(Viewer vwr,
String file) |
static String |
getManifestScriptPath(String manifest)
check a JmolManifest for a reference to a script file (.spt)
|
String |
getPathForAllFiles() |
private byte[] |
getPngjOrDroppedBytes(String fullName,
String name) |
Object |
getUnzippedReaderOrStreamFromName(String name,
Object bytesOrStream,
boolean allowZipStream,
boolean forceInputStream,
boolean isTypeCheckOnly,
boolean doSpecialLoad,
Map<String,Object> htParams) |
String[] |
getZipDirectory(String fileName,
boolean addManifest,
boolean allowCached) |
static boolean |
isScriptType(String fname) |
static boolean |
isSurfaceType(String fname) |
boolean |
loadImage(Object nameOrBytes,
String echoName,
boolean forceSync)
Load an image
|
(package private) static javajs.util.DataReader |
newDataReader(Viewer vwr,
Object data) |
private JmolFilesReaderInterface |
newFilesReader(String[] fullPathNames,
String[] namesAsGiven,
String[] fileTypes,
javajs.util.DataReader[] readers,
Map<String,Object> htParams,
boolean isAppend) |
String |
postByteArray(String fileName,
byte[] bytes) |
void |
recachePngjBytes(String fileName,
byte[] bytes) |
(package private) void |
setAppletContext(String documentBase) |
(package private) void |
setAppletProxy(String appletProxy) |
void |
setFileInfo(String[] fileInfo)
Set fullPathName, fileName, and nameAsGiven
|
private void |
setLoadState(Map<String,Object> htParams) |
static void |
setLocalPath(Viewer vwr,
String path,
boolean forDialog)
called by getImageFileNameFromDialog
called by getOpenFileNameFromDialog
called by getSaveFileNameFromDialog
called by classifyName for any full file load
called from the CD command
currentLocalPath is set in all cases
and is used specifically for dialogs as a first try
defaultDirectoryLocal is set only when not from a dialog
and is used only in getLocalPathForWritingFile or
from an open/save dialog.
|
(package private) String |
setPathForAllFiles(String value) |
static String |
setScriptFileReferences(String script,
String localPath,
String remotePath,
String scriptPath) |
private static String |
setScriptFileRefs(String script,
String dataPath,
boolean isLocal)
Sets all local file references in a script file to point to files within
dataPath.
|
SpartanUtil |
spartanUtil()
An isolated class to retrieve Spartan file data from compound documents, zip files, and directories
|
static String |
stripPath(String name) |
private String |
urlEncode(String name) |
public static String SIMULATION_PROTOCOL
public Viewer vwr
private SpartanUtil spartanDoc
JmolUtil jzu
private String pathForAllFiles
private String nameAsGiven
private String fullPathName
private String lastFullPathName
private String lastNameAsGiven
private String fileName
private URL appletDocumentBaseURL
private String appletProxy
private static final String DELPHI_BINARY_MAGIC_NUMBER
public static final String PMESH_BINARY_MAGIC_NUMBER
public static final String JPEG_CONTINUE_STRING
private static String[] scriptFilePrefixes
FileManager(Viewer vwr)
public SpartanUtil spartanUtil()
public JmolUtil getJzu()
void clear()
public String getPathForAllFiles()
public void setFileInfo(String[] fileInfo)
fileInfo
- if null, replace fullPathName and nameAsGiven with last version of suchpublic String[] getFileInfo()
public String getFullPathName(boolean orPrevious)
public String getFileName()
String getAppletDocumentBase()
void setAppletContext(String documentBase)
void setAppletProxy(String appletProxy)
Object createAtomSetCollectionFromFile(String name, Map<String,Object> htParams, boolean isAppend)
Object createAtomSetCollectionFromFiles(String[] fileNames, Map<String,Object> htParams, boolean isAppend)
Object createAtomSetCollectionFromString(String strModel, Map<String,Object> htParams, boolean isAppend)
Object createAtomSeCollectionFromStrings(String[] arrayModels, javajs.util.SB loadScript, Map<String,Object> htParams, boolean isAppend)
Object createAtomSeCollectionFromArrayData(javajs.util.Lst<Object> arrayData, Map<String,Object> htParams, boolean isAppend)
private JmolFilesReaderInterface newFilesReader(String[] fullPathNames, String[] namesAsGiven, String[] fileTypes, javajs.util.DataReader[] readers, Map<String,Object> htParams, boolean isAppend)
Object createAtomSetCollectionFromDOM(Object DOMNode, Map<String,Object> htParams)
Object createAtomSetCollectionFromReader(String fullPathName, String name, Object reader, Map<String,Object> htParams)
fullPathName
- name
- reader
- could be a Reader, or a BufferedInputStream or byte[]htParams
- BufferedInputStream getBufferedInputStream(String fullPathName)
public Object getBufferedInputStreamOrErrorMessageFromName(String name, String fullName, boolean showMsg, boolean checkOnly, byte[] outputBytes, boolean allowReader, boolean allowCached)
public static BufferedReader getBufferedReaderForResource(Viewer vwr, Object resourceClass, String classPath, String resourceName) throws IOException
IOException
Object getFullPathNameOrError(String filename, boolean getStream, String[] ret)
filename
- getStream
- ret
- public Object getBufferedReaderOrErrorMessageFromName(String name, String[] fullPathNameReturn, boolean isBinary, boolean doSpecialLoad)
public Object getUnzippedReaderOrStreamFromName(String name, Object bytesOrStream, boolean allowZipStream, boolean forceInputStream, boolean isTypeCheckOnly, boolean doSpecialLoad, Map<String,Object> htParams)
name
- bytesOrStream
- cached bytes or a BufferedInputStreamallowZipStream
- if the file is a zip file, allow a return that is a ZipInputStreamforceInputStream
- always return a raw BufferedInputStream, not a BufferedReader, and
do not process PNGJ filesisTypeCheckOnly
- when possibly reading a spartan file for content (doSpecialLoad ==
true), just return the compound document's file listdoSpecialLoad
- check for a Spartan filehtParams
- public String[] getZipDirectory(String fileName, boolean addManifest, boolean allowCached)
fileName
- addManifest
- allowCached
- public boolean getFileDataAsString(String[] data, int nBytesMax, boolean doSpecialLoad, boolean allowBinary, boolean checkProtected)
data
- [0] initially path name, but returned as full path name; [1]file
contents (directory listing for a ZIP/JAR file) or error stringnBytesMax
- or -1doSpecialLoad
- allowBinary
- checkProtected
- TODOprivate boolean checkSecurity(String f)
public boolean loadImage(Object nameOrBytes, String echoName, boolean forceSync)
nameOrBytes
- echoName
- forceSync
- TODOprivate String[] getClassifiedName(String name, boolean isFullLoad)
name
- isFullLoad
- false only when just checking pathpublic static javajs.api.GenericFileInterface getLocalDirectory(Viewer vwr, boolean forDialog)
public static void setLocalPath(Viewer vwr, String path, boolean forDialog)
vwr
- path
- forDialog
- public static String fixDOSName(String fileName)
fileName
- public static String determineSurfaceTypeIs(InputStream is)
public static boolean isScriptType(String fname)
public static boolean isSurfaceType(String fname)
public static String determineSurfaceFileType(BufferedReader bufferedReader)
public static String getManifestScriptPath(String manifest)
manifest
- public static void getFileReferences(String script, javajs.util.Lst<String> fileList)
public static String setScriptFileReferences(String script, String localPath, String remotePath, String scriptPath)
private static String setScriptFileRefs(String script, String dataPath, boolean isLocal)
script
- dataPath
- isLocal
- void cacheClear()
public int cacheFileByNameAdd(String fileName, boolean isAdd)
public void recachePngjBytes(String fileName, byte[] bytes)
private byte[] getCachedPngjBytes(String pathName)