# Class JmolViewer

java.lang.Object
org.jmol.api.JmolViewer

Direct Known Subclasses:
  `Viewer`

public abstract class JmolViewer extends Object
JmolViewer is the main API for the Viewer class. (Mosty) we try to not change this (much), whereas the varius "public" methods of Viewer, ModelSet, and other classes are public only for internal cross-package access, not for external use.

## Field Summary

Fields
Modifier and Type
Field
Description
`GenericPlatform`
`apiPlatform`
`String`
`menuStructure`

## Constructor Summary

Constructors
Constructor
Description
`JmolViewer()`

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`addSelectionListener(JmolSelectionListener listener)`
`static JmolViewer`
`allocateViewer(Object container, JmolAdapter jmolAdapter)`
a simpler option
`static JmolViewer`
`allocateViewer(Object display, JmolAdapter modelAdapter, String fullName, URL documentBase, URL codeBase, String commandOptions, JmolStatusListener statusListener)`
legacy only
`protected static JmolViewer`
`allocateViewer(Object display, JmolAdapter modelAdapter, String fullName, URL documentBase, URL codeBase, String commandOptions, JmolStatusListener statusListener, GenericPlatform implementedPlatform)`
This is the older main access point for creating an application or applet vwr.
`abstract void`
`calcAtomsMinMax(BS bs, BoxInfo boxInfo)`
`abstract boolean`
`checkHalt(String strCommand, boolean isInterrupt)`
`abstract void`
`clearMeasurements()`
`abstract void`
`clearSelection()`
`abstract String`
`clipImageOrPasteText(String text)`
`abstract void`
`deleteMeasurement(int i)`
`void`
`dispose()`
`abstract String`
`evalFile(String strFilename)`
`abstract String`
`evalFileArgs(String scriptFilename, String scriptArguments)`
`abstract String`
`evalString(String strScript)`
`abstract String`
`evalStringQuiet(String script)`
`abstract Object`
`evaluateExpression(Object expression)`
`abstract SV`
`evaluateExpressionAsVariable(Object expression)`
`abstract String`
`extractMolData(String what)`
`abstract int`
`findNearestAtomIndex(int x, int y)`
`abstract String`
`generateOutputForExport(Map<String,Object> params)`
for POV-Ray
`abstract int`
`getBackgroundArgb()`
`abstract boolean`
`getBoolean(int tok)`
`abstract boolean`
`getBooleanProperty(String propertyName)`
`abstract P3`
`getBoundBoxCenter()`
`abstract V3`
`getBoundBoxCornerVector()`
`abstract String`
`getClipboardText()`
`abstract String`
`getData(String atomExpression, String type)`
`abstract BS`
`getElementsPresentBitSet(int modelIndex)`
`abstract String`
`getErrorMessage()`
`abstract String`
`getErrorMessageUn()`
`abstract float`
`getFloat(int tok)`
`abstract byte[]`
`getImageAsBytes(String type, int width, int height, int quality, String[] errMsg)`
`abstract int`
`getInt(int tok)`
`static String`
`getJmolVersion()`
`static String`
`getJmolVersionNoDate()`
`abstract short`
`getMadBond()`
`abstract int`
`getMeasurementCount()`
`abstract int[]`
`getMeasurementCountPlusIndices(int i)`
`abstract String`
`getMeasurementStringValue(int i)`
`abstract JmolAdapter`
`getModelAdapter()`
`abstract int`
`getModelIndexFromId(String id)`
`abstract String`
`getModelName(int modelIndex)`
`abstract int`
`getModelNumber(int modelIndex)`
`abstract String`
`getModelNumberDotted(int modelIndex)`
`abstract Properties`
`getModelProperties(int modelIndex)`
`abstract Map<String,Object>`
`getModelSetAuxiliaryInfo()`
`abstract String`
`getModelSetFileName()`
`abstract String`
`getModelSetPathName()`
`abstract Properties`
`getModelSetProperties()`
`abstract int`
`getMotionEventNumber()`
`abstract String`
`getOpenSmiles(BS atoms)`
`abstract Object`
`getParameter(String name)`
`abstract Object`
`getProperty(String returnType, String infoType, Object paramInfo)`
`abstract int`
`getScreenHeight()`
`abstract Object`
`getScreenImageBuffer(Object g, boolean isImageWrite)`
`abstract int`
`getScreenWidth()`
`abstract String`
`getSetHistory(int howFarBack)`
`abstract BS`
`getSmartsMatch(String smarts, BS bsSelected)`
`abstract String`
`getSmiles(BS atoms)`
`abstract String`
`getStateInfo()`
`abstract BS`
`getVisibleFramesBitSet()`
`abstract void`
`haltScriptExecution()`
`abstract void`
`homePosition()`
`abstract boolean`
`isScriptExecuting()`
`abstract String`
`loadInline(String strModel)`
`abstract String`
`loadInline(String[] arrayModels)`
`abstract String`
`loadInline(String[] arrayModels, boolean isAppend)`
`abstract String`
`loadInline(String strModel, char newLine)`
`abstract String`
`loadInline(List<Object> arrayData, boolean isAppend)`
NOTE: THIS METHOD DOES NOT PRESERVE THE STATE
`abstract String`
`loadInlineAppend(String strModel, boolean isAppend)`
`abstract void`
`notifyStatusReady(boolean isReady)`
`abstract void`
`notifyViewerRepaintDone()`
`abstract String`
`openDOM(Object DOMNode)`
`abstract String`
`openFile(String fileName)`
`void`
`openFileAsync(String fileName)`
`abstract void`
`openFileAsyncSpecial(String fileName, int flags)`
`abstract void`
`openFileAsyncSpecialType(String fileName, int flags, String fileType)`
`abstract String`
`openFiles(String[] fileNames)`
`String`
`openReader(String fullPathName, Object reader)`
Opens the file and creates the model set, given the reader.
`abstract String`
`openReader(String fullPathName, String fileName, Object reader)`
Opens the file and creates the model set, given the reader.
`abstract String`
`openStringInline(String strModel)`
`abstract String`
`outputToFile(Map<String,Object> params)`
`abstract void`
`popHoldRepaint(String why)`
`abstract void`
`pushHoldRepaint()`
`abstract void`
`rebond()`
`abstract void`
`refresh(int isOrientationChange, String strWhy)`
`abstract void`
`releaseScreenImage()`
`abstract void`
`removeSelectionListener(JmolSelectionListener listener)`
`abstract void`
`renderScreenImage(Object g, int width, int height)`
`void`
`renderScreenImage(Object g, Object currentSize, Object rectClip)`
Deprecated.
`abstract int[]`
`resizeInnerPanel(int width, int height)`
`abstract void`
`rotateFront()`
`abstract String`
`runScript(String script)`
starting with 14.8.2-beta-2017-02-06, uses script(xxxx) function; see runScriptCautiously for the older version
`String`
`runScriptCautiously(String script)`
Formerly runScript(script).
`abstract String`
`script(String script)`
`abstract Object`
`scriptCheck(String script)`
`abstract String`
`scriptWait(String script)`
`abstract Object`
`scriptWaitStatus(String script, String statusList)`
`abstract void`
`selectAll()`
`abstract void`
`setAnimationFps(int framesPerSecond)`
`abstract void`
`setAutoBond(boolean autoBond)`
`abstract void`
`setAxesOrientationRasmol(boolean axesMessedUp)`
`abstract void`
`setBondTolerance(float bondTolerance)`
`abstract void`
`setBooleanProperty(String propertyName, boolean value)`
`abstract void`
`setCenterSelected()`
`abstract void`
`setColorBackground(String colorName)`
`void`
`setConsole(JmolAppConsoleInterface console)`
sets a custom console -- should be called IMMEDIATELY following allocateViewer create your console with, perhaps: new org.openscience.jmol.app.jmolPanel.AppConsole(vwr, displayFrame, externalJPanel, buttonsEnabled); (see examples/basic/org/jmol/Integration.java
`abstract void`
`setDebugScript(boolean debugScript)`
`abstract void`
`setFloatProperty(String propertyName, float value)`
`abstract void`
`setFrankOn(boolean frankOn)`
`abstract void`
`setInMotion(boolean isInMotion)`
`abstract void`
`setIntProperty(String propertyName, int value)`
`abstract void`
`setJmolCallbackListener(JmolCallbackListener jmolCallbackListener)`
`abstract void`
`setJmolDefaults()`
`abstract void`
`setJmolStatusListener(JmolStatusListener jmolStatusListener)`
`abstract void`
`setMarBond(short marBond)`
`abstract void`
`setMenu(String menuFile, boolean isFile)`
`abstract void`
`setMinBondDistance(float minBondDistance)`
`abstract void`
`setPercentVdwAtom(int percentVdwAtom)`
`abstract void`
`setPerspectiveDepth(boolean perspectiveDepth)`
`abstract void`
`setRasmolDefaults()`
`abstract void`
`setScreenDimension(int width, int height)`
`abstract void`
`setSelectionSet(BS newSelection)`
`abstract void`
`setShowHydrogens(boolean showHydrogens)`
`abstract void`
`setShowMeasurements(boolean showMeasurements)`
`abstract void`
`setStringProperty(String propertyName, String value)`
`abstract void`
`setVectorScale(float vectorScaleValue)`
`abstract void`
`setVibrationPeriod(float vibrationPeriod)`
`abstract void`
`setVibrationScale(float vibrationScaleValue)`
`abstract void`
`showUrl(String urlString)`
`abstract void`
`syncScript(String script, String applet, int port)`
`abstract String`
`writeTextFile(String string, String data)`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### menuStructure

public String menuStructure

### apiPlatform

public GenericPlatform apiPlatform

## Constructor Details

### JmolViewer

public JmolViewer()

## Method Details

### getFloat

public abstract float getFloat(int tok)

### getInt

public abstract int getInt(int tok)

### getBoolean

public abstract boolean getBoolean(int tok)

### allocateViewer

protected static JmolViewer allocateViewer(Object display, JmolAdapter modelAdapter, String fullName, URL documentBase, URL codeBase, String commandOptions, JmolStatusListener statusListener, GenericPlatform implementedPlatform)
This is the older main access point for creating an application or applet vwr. You can also use That is necessary when compiled into JavaScript using Java2Script In Jmol 11.6 it was manditory that one of the next commands is either vwr.evalString("ZAP"); or at least: vwr.setAppletContext("",null,null,"") One or the other of these was necessary to establish the first modelset, which might be required by one or more later evaluated commands or file loadings. Starting with Jmol 11.7, setAppletContext is rolled into allocateViewer so that the full initialization is done all at once. Starting with Jmol 12.3.13, we allow for preconstructed ApiPlatform

Parameters:
  `display` -
  `modelAdapter` -
  `fullName` -
  `documentBase` -
  `codeBase` -
  `commandOptions` -
  `statusListener` -
  `implementedPlatform` -
Returns:
  a JmolViewer object

### allocateViewer

public static JmolViewer allocateViewer(Object container, JmolAdapter jmolAdapter)
a simpler option

Parameters:
  `container` -
  `jmolAdapter` -
Returns:
  JmolViewer object

### allocateViewer

public static JmolViewer allocateViewer(Object display, JmolAdapter modelAdapter, String fullName, URL documentBase, URL codeBase, String commandOptions, JmolStatusListener statusListener)
legacy only

Parameters:
  `display` -
  `modelAdapter` -
  `fullName` -
  `documentBase` -
  `codeBase` -
  `commandOptions` -
  `statusListener` -
Returns:
  JmolViewer object

### setConsole

public void setConsole(JmolAppConsoleInterface console)
sets a custom console -- should be called IMMEDIATELY following allocateViewer create your console with, perhaps: new org.openscience.jmol.app.jmolPanel.AppConsole(vwr, displayFrame, externalJPanel, buttonsEnabled); (see examples/basic/org/jmol/Integration.java

Parameters:
  `console` - the console to use

### setInMotion

public abstract void setInMotion(boolean isInMotion)

### getSmartsMatch

public abstract BS getSmartsMatch(String smarts, BS bsSelected) throws Exception

Throws:
  `Exception`

### getJmolVersion

public static String getJmolVersion()

### getJmolVersionNoDate

public static String getJmolVersionNoDate()

### generateOutputForExport

public abstract String generateOutputForExport(Map<String,Object> params)
for POV-Ray

Parameters:
  `params` -
Returns:
  INI file

### setJmolCallbackListener

public abstract void setJmolCallbackListener(JmolCallbackListener jmolCallbackListener)

### setJmolStatusListener

public abstract void setJmolStatusListener(JmolStatusListener jmolStatusListener)

### checkHalt

public abstract boolean checkHalt(String strCommand, boolean isInterrupt)

### haltScriptExecution

public abstract void haltScriptExecution()

### pushHoldRepaint

public abstract void pushHoldRepaint()

### popHoldRepaint

public abstract void popHoldRepaint(String why)

### getData

public abstract String getData(String atomExpression, String type)

### getSmiles

public abstract String getSmiles(BS atoms) throws Exception

Throws:
  `Exception`

### getOpenSmiles

public abstract String getOpenSmiles(BS atoms) throws Exception

Throws:
  `Exception`

### setScreenDimension

public abstract void setScreenDimension(int width, int height)

### getScreenWidth

public abstract int getScreenWidth()

### getScreenHeight

public abstract int getScreenHeight()

### getScreenImageBuffer

public abstract Object getScreenImageBuffer(Object g, boolean isImageWrite)

### releaseScreenImage

public abstract void releaseScreenImage()

### writeTextFile

public abstract String writeTextFile(String string, String data)

### outputToFile

public abstract String outputToFile(Map<String,Object> params)

Parameters:
  `params` - include type, fileName, text, bytes, quality, width, height
Returns:
  null (canceled) or a message starting with OK or an error message

### getImageAsBytes

public abstract byte[] getImageAsBytes(String type, int width, int height, int quality, String[] errMsg)

Parameters:
  `type` -
  `width` -
  `height` -
  `quality` -
  `errMsg` - TODO
Returns:
  base64-encoded or binary version of the image

### getMotionEventNumber

public abstract int getMotionEventNumber()

### openReader

public String openReader(String fullPathName, Object reader)
Opens the file and creates the model set, given the reader. not used in Jmol

Parameters:
  `fullPathName` - full path name or null
  `reader` - a Reader, byte[], or BufferedInputStream
Returns:
  null or error message

### openReader

public abstract String openReader(String fullPathName, String fileName, Object reader)
Opens the file and creates the model set, given the reader. name is a text name of the file ... to be displayed in the window no need to pass a BufferedReader ... ... the FileManager will wrap a buffer around it not used in Jmol

Parameters:
  `fullPathName` - or null
  `fileName` - (no path) or null
  `reader` - Reader, byte[], or BufferedInputStream
Returns:
  null or error message

### showUrl

public abstract void showUrl(String urlString)

### calcAtomsMinMax

public abstract void calcAtomsMinMax(BS bs, BoxInfo boxInfo)

### getBoundBoxCenter

public abstract P3 getBoundBoxCenter()

### getBoundBoxCornerVector

public abstract V3 getBoundBoxCornerVector()

### getMeasurementCount

public abstract int getMeasurementCount()

### getMeasurementStringValue

public abstract String getMeasurementStringValue(int i)

### getMeasurementCountPlusIndices

public abstract int[] getMeasurementCountPlusIndices(int i)

### getElementsPresentBitSet

public abstract BS getElementsPresentBitSet(int modelIndex)

### findNearestAtomIndex

public abstract int findNearestAtomIndex(int x, int y)

### script

public abstract String script(String script)

### scriptCheck

public abstract Object scriptCheck(String script)

### scriptWait

public abstract String scriptWait(String script)

### scriptWaitStatus

public abstract Object scriptWaitStatus(String script, String statusList)

### loadInline

public abstract String loadInline(String strModel)

### loadInlineAppend

public abstract String loadInlineAppend(String strModel, boolean isAppend)

### loadInline

public abstract String loadInline(String strModel, char newLine)

### loadInline

public abstract String loadInline(String[] arrayModels)

### loadInline

public abstract String loadInline(String[] arrayModels, boolean isAppend)

Parameters:
  `arrayModels` - and array of models, each of which is a String
  `isAppend` -
Returns:
  null or error message

### loadInline

public abstract String loadInline(List<Object> arrayData, boolean isAppend)
NOTE: THIS METHOD DOES NOT PRESERVE THE STATE

Parameters:
  `arrayData` - a Vector of models, where each model is either a String or a String[] or a Vector<String>
  `isAppend` - TRUE to append models (no ZAP)
Returns:
  null or error message

### evalStringQuiet

public abstract String evalStringQuiet(String script)

### isScriptExecuting

public abstract boolean isScriptExecuting()

### getModelSetFileName

public abstract String getModelSetFileName()

### getModelSetPathName

public abstract String getModelSetPathName()

### getModelSetProperties

public abstract Properties getModelSetProperties()

### getModelSetAuxiliaryInfo

public abstract Map<String,Object> getModelSetAuxiliaryInfo()

### getModelProperties

public abstract Properties getModelProperties(int modelIndex)

### getModelNumber

public abstract int getModelNumber(int modelIndex)

### getModelName

public abstract String getModelName(int modelIndex)

### getModelNumberDotted

public abstract String getModelNumberDotted(int modelIndex)

### getVisibleFramesBitSet

public abstract BS getVisibleFramesBitSet()

### addSelectionListener

public abstract void addSelectionListener(JmolSelectionListener listener)

### removeSelectionListener

public abstract void removeSelectionListener(JmolSelectionListener listener)

### homePosition

public abstract void homePosition()

### getBackgroundArgb

public abstract int getBackgroundArgb()

### getMadBond

public abstract short getMadBond()

### rebond

public abstract void rebond()

### refresh

public abstract void refresh(int isOrientationChange, String strWhy)

### notifyViewerRepaintDone

public abstract void notifyViewerRepaintDone()

### getBooleanProperty

public abstract boolean getBooleanProperty(String propertyName)

### getParameter

public abstract Object getParameter(String name)

### getSetHistory

public abstract String getSetHistory(int howFarBack)

### getStateInfo

public abstract String getStateInfo()

### syncScript

public abstract void syncScript(String script, String applet, int port)

### setColorBackground

public abstract void setColorBackground(String colorName)

### setJmolDefaults

public abstract void setJmolDefaults()

### setRasmolDefaults

public abstract void setRasmolDefaults()

### setBooleanProperty

public abstract void setBooleanProperty(String propertyName, boolean value)

### setIntProperty

public abstract void setIntProperty(String propertyName, int value)

### setFloatProperty

public abstract void setFloatProperty(String propertyName, float value)

### setStringProperty

public abstract void setStringProperty(String propertyName, String value)

### setShowHydrogens

public abstract void setShowHydrogens(boolean showHydrogens)

### setShowMeasurements

public abstract void setShowMeasurements(boolean showMeasurements)

### setPerspectiveDepth

public abstract void setPerspectiveDepth(boolean perspectiveDepth)

### setAutoBond

public abstract void setAutoBond(boolean autoBond)

### setMarBond

public abstract void setMarBond(short marBond)

### setBondTolerance

public abstract void setBondTolerance(float bondTolerance)

### setMinBondDistance

public abstract void setMinBondDistance(float minBondDistance)

### setAxesOrientationRasmol

public abstract void setAxesOrientationRasmol(boolean axesMessedUp)

### setPercentVdwAtom

public abstract void setPercentVdwAtom(int percentVdwAtom)

### setAnimationFps

public abstract void setAnimationFps(int framesPerSecond)

### setFrankOn

public abstract void setFrankOn(boolean frankOn)

### setDebugScript

public abstract void setDebugScript(boolean debugScript)

### deleteMeasurement

public abstract void deleteMeasurement(int i)

### clearMeasurements

public abstract void clearMeasurements()

### setVectorScale

public abstract void setVectorScale(float vectorScaleValue)

### setVibrationScale

public abstract void setVibrationScale(float vibrationScaleValue)

### setVibrationPeriod

public abstract void setVibrationPeriod(float vibrationPeriod)

### selectAll

public abstract void selectAll()

### clearSelection

public abstract void clearSelection()

### setSelectionSet

public abstract void setSelectionSet(BS newSelection)

### setCenterSelected

public abstract void setCenterSelected()

### rotateFront

public abstract void rotateFront()

### getModelAdapter

public abstract JmolAdapter getModelAdapter()

### openFileAsyncSpecial

public abstract void openFileAsyncSpecial(String fileName, int flags)

### openFileAsyncSpecialType

public abstract void openFileAsyncSpecialType(String fileName, int flags, String fileType)

### openFileAsync

public void openFileAsync(String fileName)

### getErrorMessage

public abstract String getErrorMessage()

### getErrorMessageUn

public abstract String getErrorMessageUn()

### renderScreenImage

@Deprecated public void renderScreenImage(Object g, Object currentSize, Object rectClip)
Deprecated.
old -- not used in 12.2

Parameters:
  `g` -
  `currentSize` -
  `rectClip` - // unused

### renderScreenImage

public abstract void renderScreenImage(Object g, int width, int height)

### evalFile

public abstract String evalFile(String strFilename)

### evalFileArgs

public abstract String evalFileArgs(String scriptFilename, String scriptArguments)

### evalString

public abstract String evalString(String strScript)

### openStringInline

public abstract String openStringInline(String strModel)

### openDOM

public abstract String openDOM(Object DOMNode)

### openFile

public abstract String openFile(String fileName)

### openFiles

public abstract String openFiles(String[] fileNames)

### getProperty

public abstract Object getProperty(String returnType, String infoType, Object paramInfo)

Parameters:
  `returnType` - "JSON", "string", "readable", and anything else returns the Java object.
  `infoType` -
  `paramInfo` -
Returns:
  property data -- see org.jmol.viewer.PropertyManager.java

### evaluateExpression

public abstract Object evaluateExpression(Object expression)

Parameters:
  `expression` -
Returns:
  a String representation of the evaluated expression

### evaluateExpressionAsVariable

public abstract SV evaluateExpressionAsVariable(Object expression)

Parameters:
  `expression` -
Returns:
  a String representation of the evaluated expression as a script variable (org.jmol.script.SV)

### resizeInnerPanel

public abstract int[] resizeInnerPanel(int width, int height)

### runScript

public abstract String runScript(String script)
starting with 14.8.2-beta-2017-02-06, uses script(xxxx) function; see runScriptCautiously for the older version

Parameters:
  `script` -
Returns:
  string from ScriptEvaluator#outputBuffer

### runScriptCautiously

public String runScriptCautiously(String script)
Formerly runScript(script). run a script immediately and return output buffer string Jmol 13.1.15

Parameters:
  `script` -
Returns:
  string from ScriptEvaluator#outputBuffer

### extractMolData

public abstract String extractMolData(String what)

### getClipboardText

public abstract String getClipboardText()

### clipImageOrPasteText

public abstract String clipImageOrPasteText(String text)

### notifyStatusReady

public abstract void notifyStatusReady(boolean isReady)

### getModelIndexFromId

public abstract int getModelIndexFromId(String id)

Parameters:
  `id` - some_id, filename#id, or ~fileNo.modelNo added ".basemodel" indicates to get the first model in a series from a JDX-MOL file.
Returns:
  model index if found; -2 if file found but model not found -2 if no file indicated and no model found -1 if no such file

### setMenu

public abstract void setMenu(String menuFile, boolean isFile)

### dispose

public void dispose()