org.jmol.viewer
Class FileManager

java.lang.Object
  extended by org.jmol.viewer.FileManager

public class FileManager
extends java.lang.Object


Nested Class Summary
(package private)  class FileManager.ArrayDataReader
          ArrayDataReader subclasses BufferedReader and overrides its read, readLine, mark, and reset methods so that JmolAdapter works with String[] arrays without any further adaptation.
(package private)  class FileManager.DataReader
          Just a simple abstract class to join a String reader and a String[] reader under the same BufferedReader umbrella.
private  class FileManager.DOMReader
           
(package private) static class FileManager.EnumFileStatus
           
private  class FileManager.FileReader
           
private  class FileManager.FilesReader
          open a set of models residing in different files
(package private)  class FileManager.StringDataReader
           
(package private)  class FileManager.VectorDataReader
          VectorDataReader subclasses BufferedReader and overrides its read, readLine, mark, and reset methods so that JmolAdapter works with Vector arrays without any further adaptation.
 
Field Summary
private  java.net.URL appletCodeBase
           
private  java.net.URL appletDocumentBase
           
private  java.lang.String appletProxy
           
(package private)  java.lang.String fileName
           
(package private)  java.lang.String fullPathName
           
(package private)  java.lang.String nameAsGiven
           
private static java.lang.String[] scriptFilePrefixes
           
private static int URL_LOCAL
           
private static java.lang.String[] urlPrefixes
           
private static java.lang.String[] urlPrefixPairs
           
protected  Viewer viewer
           
 
Constructor Summary
FileManager(Viewer viewer)
           
 
Method Summary
private static java.lang.String addDirectory(java.lang.String defaultDirectory, java.lang.String name)
           
private  java.lang.String[] classifyName(java.lang.String name, boolean isFullLoad)
           
(package private)  void clear()
           
(package private)  java.lang.Object createAtomSeCollectionFromArrayData(java.util.List<java.lang.Object> arrayData, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean isAppend)
           
(package private)  java.lang.Object createAtomSeCollectionFromStrings(java.lang.String[] arrayModels, java.lang.StringBuffer loadScript, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean isAppend)
           
(package private)  java.lang.Object createAtomSetCollectionFromDOM(java.lang.Object DOMNode, java.util.Map<java.lang.String,java.lang.Object> htParams)
           
(package private)  java.lang.Object createAtomSetCollectionFromFile(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean isAppend)
           
(package private)  java.lang.Object createAtomSetCollectionFromFiles(java.lang.String[] fileNames, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean isAppend)
           
(package private)  java.lang.Object createAtomSetCollectionFromReader(java.lang.String fullPathName, java.lang.String name, java.io.Reader reader, java.util.Map<java.lang.String,java.lang.Object> htParams)
          not used in Jmol project -- will close reader
(package private)  java.lang.Object createAtomSetCollectionFromString(java.lang.String strModel, java.lang.StringBuffer loadScript, java.util.Map<java.lang.String,java.lang.Object> htParams, boolean isAppend, boolean isLoadVariable)
           
(package private)  java.lang.String createZipSet(java.lang.String fileName, java.lang.String script, boolean includeRemoteFiles)
           
static java.lang.String fixFileNameVariables(java.lang.String format, java.lang.String fname)
           
private static java.lang.String fixPath(java.lang.String path)
           
(package private)  java.lang.String getAppletDocumentBase()
           
(package private)  java.io.BufferedInputStream getBufferedInputStream(java.lang.String fullPathName)
           
(package private) static java.io.BufferedReader getBufferedReaderForString(java.lang.String string)
           
(package private)  java.lang.Object getBufferedReaderOrErrorMessageFromName(java.lang.String name, java.lang.String[] fullPathNameReturn, boolean isBinary, boolean doSpecialLoad)
           
(package private)  java.lang.String getDefaultDirectory(java.lang.String name)
           
(package private)  java.lang.Object getFileAsBytes(java.lang.String name, java.io.OutputStream os)
           
(package private)  java.lang.Object getFileAsImage(java.lang.String name, java.lang.String[] retFileNameOrError)
           
(package private)  boolean getFileDataOrErrorAsString(java.lang.String[] data, int nBytesMax, boolean doSpecialLoad)
           
(package private)  java.lang.String[] getFileInfo()
           
(package private)  java.lang.String getFileName()
           
 java.lang.String getFilePath(java.lang.String name, boolean addUrlPrefix, boolean asShortName)
           
static void getFileReferences(java.lang.String script, java.util.List<java.lang.String> fileList)
           
(package private)  java.lang.String getFileTypeName(java.lang.String fileName)
           
(package private)  java.lang.String getFullPathName()
           
(package private)  java.lang.String[] getFullPathNameOrError(java.lang.String filename)
          just check for a file as being readable.
(package private)  java.lang.Object getInputStreamOrErrorMessageFromName(java.lang.String name, boolean showMsg, boolean checkOnly)
           
private static java.lang.Object getInputStreamOrPost(java.lang.String name, boolean showMsg, byte[] bytes, boolean checkOnly, java.net.URL appletDocumentBase, java.lang.String appletProxy)
           
static java.io.File getLocalDirectory(JmolViewer viewer, boolean forDialog)
           
static java.lang.String getLocalPathForWritingFile(JmolViewer viewer, java.lang.String file)
           
static java.lang.String getLocalUrl(java.io.File file)
           
private  java.lang.String getObjectAsSections(java.lang.String name, java.lang.String header, java.util.Map<java.lang.String,java.lang.String> fileData)
          delivers file contents and directory listing for a ZIP/JAR file into sb
(package private)  java.lang.String getState(java.lang.StringBuffer sfunc)
           
private static java.lang.Object getStreamAsBytes(java.io.BufferedInputStream bis, java.io.OutputStream os)
           
(package private)  java.lang.Object getUnzippedBufferedReaderOrErrorMessageFromName(java.lang.String name, boolean allowZipStream, boolean asInputStream, boolean isTypeCheckOnly, boolean doSpecialLoad)
           
(package private)  java.lang.String[] getZipDirectory(java.lang.String fileName, boolean addManifest)
           
private  java.lang.String getZipDirectoryAsString(java.lang.String fileName)
           
private static java.lang.String postByteArray(java.lang.String outFileName, byte[] bytes)
          not implemented
(package private)  void setAppletContext(java.net.URL documentBase, java.net.URL codeBase, java.lang.String jmolAppletProxy)
           
(package private)  void setAppletProxy(java.lang.String appletProxy)
           
(package private)  void setFileInfo(java.lang.String[] fileInfo)
           
private  void setLoadState(java.util.Map<java.lang.String,java.lang.Object> htParams)
           
static void setLocalPath(JmolViewer viewer, java.lang.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.
private static java.lang.String setScriptFileReferences(java.lang.String script, java.lang.String dataPath, boolean isLocal)
          Sets all local file references in a script file to point to files within dataPath.
static java.lang.String setScriptFileReferences(java.lang.String script, java.lang.String localPath, java.lang.String remotePath, java.lang.String scriptPath)
           
private static int urlTypeIndex(java.lang.String name)
           
private static java.lang.String writeZipFile(java.lang.String outFileName, java.util.List<java.lang.Object> fileNamesAndByteArrays, boolean preservePath, java.lang.String msg)
          generic method to create a zip file based on http://www.exampledepot.com/egs/java.util.zip/CreateZip.html
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

viewer

protected Viewer viewer

nameAsGiven

java.lang.String nameAsGiven

fullPathName

java.lang.String fullPathName

fileName

java.lang.String fileName

appletDocumentBase

private java.net.URL appletDocumentBase

appletCodeBase

private java.net.URL appletCodeBase

appletProxy

private java.lang.String appletProxy

URL_LOCAL

private static final int URL_LOCAL
See Also:
Constant Field Values

urlPrefixes

private static final java.lang.String[] urlPrefixes

urlPrefixPairs

private static final java.lang.String[] urlPrefixPairs

scriptFilePrefixes

private static java.lang.String[] scriptFilePrefixes
Constructor Detail

FileManager

FileManager(Viewer viewer)
Method Detail

clear

void clear()

setLoadState

private void setLoadState(java.util.Map<java.lang.String,java.lang.Object> htParams)

setFileInfo

void setFileInfo(java.lang.String[] fileInfo)

getFileInfo

java.lang.String[] getFileInfo()

getFullPathName

java.lang.String getFullPathName()

getFileName

java.lang.String getFileName()

getAppletDocumentBase

java.lang.String getAppletDocumentBase()

setAppletContext

void setAppletContext(java.net.URL documentBase,
                      java.net.URL codeBase,
                      java.lang.String jmolAppletProxy)

setAppletProxy

void setAppletProxy(java.lang.String appletProxy)

getState

java.lang.String getState(java.lang.StringBuffer sfunc)

getFileTypeName

java.lang.String getFileTypeName(java.lang.String fileName)

getBufferedReaderForString

static java.io.BufferedReader getBufferedReaderForString(java.lang.String string)

getZipDirectoryAsString

private java.lang.String getZipDirectoryAsString(java.lang.String fileName)

createAtomSetCollectionFromFile

java.lang.Object createAtomSetCollectionFromFile(java.lang.String name,
                                                 java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                 boolean isAppend)

createAtomSetCollectionFromFiles

java.lang.Object createAtomSetCollectionFromFiles(java.lang.String[] fileNames,
                                                  java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                  boolean isAppend)

createAtomSetCollectionFromString

java.lang.Object createAtomSetCollectionFromString(java.lang.String strModel,
                                                   java.lang.StringBuffer loadScript,
                                                   java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                   boolean isAppend,
                                                   boolean isLoadVariable)

createAtomSeCollectionFromStrings

java.lang.Object createAtomSeCollectionFromStrings(java.lang.String[] arrayModels,
                                                   java.lang.StringBuffer loadScript,
                                                   java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                   boolean isAppend)

createAtomSeCollectionFromArrayData

java.lang.Object createAtomSeCollectionFromArrayData(java.util.List<java.lang.Object> arrayData,
                                                     java.util.Map<java.lang.String,java.lang.Object> htParams,
                                                     boolean isAppend)

createAtomSetCollectionFromDOM

java.lang.Object createAtomSetCollectionFromDOM(java.lang.Object DOMNode,
                                                java.util.Map<java.lang.String,java.lang.Object> htParams)

createAtomSetCollectionFromReader

java.lang.Object createAtomSetCollectionFromReader(java.lang.String fullPathName,
                                                   java.lang.String name,
                                                   java.io.Reader reader,
                                                   java.util.Map<java.lang.String,java.lang.Object> htParams)
not used in Jmol project -- will close reader

Parameters:
fullPathName -
name -
reader -
htParams -
Returns:
fileData

getBufferedInputStream

java.io.BufferedInputStream getBufferedInputStream(java.lang.String fullPathName)

getInputStreamOrErrorMessageFromName

java.lang.Object getInputStreamOrErrorMessageFromName(java.lang.String name,
                                                      boolean showMsg,
                                                      boolean checkOnly)

getInputStreamOrPost

private static java.lang.Object getInputStreamOrPost(java.lang.String name,
                                                     boolean showMsg,
                                                     byte[] bytes,
                                                     boolean checkOnly,
                                                     java.net.URL appletDocumentBase,
                                                     java.lang.String appletProxy)

getFullPathNameOrError

java.lang.String[] getFullPathNameOrError(java.lang.String filename)
just check for a file as being readable. Do not go into a zip file

Parameters:
filename -
Returns:
String[2] where [0] is fullpathname and [1] is error message or null

getBufferedReaderOrErrorMessageFromName

java.lang.Object getBufferedReaderOrErrorMessageFromName(java.lang.String name,
                                                         java.lang.String[] fullPathNameReturn,
                                                         boolean isBinary,
                                                         boolean doSpecialLoad)

getUnzippedBufferedReaderOrErrorMessageFromName

java.lang.Object getUnzippedBufferedReaderOrErrorMessageFromName(java.lang.String name,
                                                                 boolean allowZipStream,
                                                                 boolean asInputStream,
                                                                 boolean isTypeCheckOnly,
                                                                 boolean doSpecialLoad)

getZipDirectory

java.lang.String[] getZipDirectory(java.lang.String fileName,
                                   boolean addManifest)

getObjectAsSections

private java.lang.String getObjectAsSections(java.lang.String name,
                                             java.lang.String header,
                                             java.util.Map<java.lang.String,java.lang.String> fileData)
delivers file contents and directory listing for a ZIP/JAR file into sb

Parameters:
name -
header -
fileData -
Returns:
name of entry

getFileAsBytes

java.lang.Object getFileAsBytes(java.lang.String name,
                                java.io.OutputStream os)

getStreamAsBytes

private static java.lang.Object getStreamAsBytes(java.io.BufferedInputStream bis,
                                                 java.io.OutputStream os)
                                          throws java.io.IOException
Throws:
java.io.IOException

getFileDataOrErrorAsString

boolean getFileDataOrErrorAsString(java.lang.String[] data,
                                   int nBytesMax,
                                   boolean doSpecialLoad)
Parameters:
data - [0] initially path name, but returned as full path name; [1]file contents (directory listing for a ZIP/JAR file) or error string
nBytesMax -
doSpecialLoad -
Returns:
true if successful; false on error

getFileAsImage

java.lang.Object getFileAsImage(java.lang.String name,
                                java.lang.String[] retFileNameOrError)

urlTypeIndex

private static int urlTypeIndex(java.lang.String name)

classifyName

private java.lang.String[] classifyName(java.lang.String name,
                                        boolean isFullLoad)
Parameters:
name -
isFullLoad -
Returns:
[0] full path name, [1] file name without path, [2] full URL

addDirectory

private static java.lang.String addDirectory(java.lang.String defaultDirectory,
                                             java.lang.String name)

getDefaultDirectory

java.lang.String getDefaultDirectory(java.lang.String name)

fixPath

private static java.lang.String fixPath(java.lang.String path)

getFilePath

public java.lang.String getFilePath(java.lang.String name,
                                    boolean addUrlPrefix,
                                    boolean asShortName)

getLocalUrl

public static java.lang.String getLocalUrl(java.io.File file)

getLocalDirectory

public static java.io.File getLocalDirectory(JmolViewer viewer,
                                             boolean forDialog)

setLocalPath

public static void setLocalPath(JmolViewer viewer,
                                java.lang.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. In this way, saving a file from a dialog doesn't change the "CD" directory. Neither of these is saved in the state, but

Parameters:
viewer -
path -
forDialog -

getLocalPathForWritingFile

public static java.lang.String getLocalPathForWritingFile(JmolViewer viewer,
                                                          java.lang.String file)

setScriptFileReferences

public static java.lang.String setScriptFileReferences(java.lang.String script,
                                                       java.lang.String localPath,
                                                       java.lang.String remotePath,
                                                       java.lang.String scriptPath)

setScriptFileReferences

private static java.lang.String setScriptFileReferences(java.lang.String script,
                                                        java.lang.String dataPath,
                                                        boolean isLocal)
Sets all local file references in a script file to point to files within dataPath. If a file reference contains dataPath, then the file reference is left with that RELATIVE path. Otherwise, it is changed to a relative file name within that dataPath. Only file references starting with "file://" are changed.

Parameters:
script -
dataPath -
isLocal -
Returns:
revised script

getFileReferences

public static void getFileReferences(java.lang.String script,
                                     java.util.List<java.lang.String> fileList)

createZipSet

java.lang.String createZipSet(java.lang.String fileName,
                              java.lang.String script,
                              boolean includeRemoteFiles)

writeZipFile

private static java.lang.String writeZipFile(java.lang.String outFileName,
                                             java.util.List<java.lang.Object> fileNamesAndByteArrays,
                                             boolean preservePath,
                                             java.lang.String msg)
generic method to create a zip file based on http://www.exampledepot.com/egs/java.util.zip/CreateZip.html

Parameters:
outFileName -
fileNamesAndByteArrays - Vector of [filename1, bytes|null, filename2, bytes|null, ...]
preservePath -
msg -
Returns:
msg bytes filename or errorMessage

postByteArray

private static java.lang.String postByteArray(java.lang.String outFileName,
                                              byte[] bytes)
not implemented

Parameters:
outFileName -
bytes -
Returns:
posted results

fixFileNameVariables

public static java.lang.String fixFileNameVariables(java.lang.String format,
                                                    java.lang.String fname)