PovrayDialog
Date: 2019-10-22

org.openscience.jmol.app.jmolpanel

## Class PovrayDialog

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Dialog
        - - javax.swing.JDialog
          - - org.openscience.jmol.app.jmolpanel.PovrayDialog

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

      public class PovrayDialog
      extends javax.swing.JDialog

  A dialog for controling the creation of a povray input file from a Chemframe and a display. The actual leg work of writing the file out is done by PovrayWriter.java.

  Borrows code from org.openscience.jmol.Vibrate (Thanks!).

  Author:
    Thomas James Grey (tjg1@ch.ic.ac.uk), Matthew A. Meineke (mmeineke@nd.edu)
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `PovrayDialog.PovrayWindowListener` Listener for responding to dialog window events.

    - ### Nested classes/interfaces inherited from class javax.swing.JDialog

      `javax.swing.JDialog.AccessibleJDialog`

    - ### Nested classes/interfaces inherited from class java.awt.Dialog

      `java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType`

    - ### Nested classes/interfaces inherited from class java.awt.Window

      `java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected javax.swing.JCheckBox` | `allFramesCheck`
    `protected javax.swing.JCheckBox` | `antiAliasCheck`
    `protected javax.swing.JCheckBox` | `displayWhileRenderingCheck`
    `protected javax.swing.JButton` | `goButton`
    `private javax.swing.JLabel` | `imageSizeHeight`
    `private javax.swing.JCheckBox` | `imageSizeRatioBox`
    `private javax.swing.JComboBox<java.lang.String>` | `imageSizeRatioCombo`
    `private javax.swing.JFormattedTextField` | `imageSizeTextHeight`
    `private javax.swing.JFormattedTextField` | `imageSizeTextWidth`
    `private javax.swing.JLabel` | `imageSizeWidth`
    `private javax.swing.JCheckBox` | `mosaicPreviewCheck`
    `private javax.swing.JComboBox<java.lang.String>` | `mosaicPreviewComboEnd`
    `private javax.swing.JComboBox<java.lang.String>` | `mosaicPreviewComboStart`
    `private javax.swing.JLabel` | `mosaicPreviewEnd`
    `private javax.swing.JLabel` | `mosaicPreviewStart`
    `private javax.swing.JCheckBox` | `outputAlphaCheck`
    `private java.lang.String` | `outputExtension`
    `private java.lang.String` | `outputFileType`
    `private javax.swing.JCheckBox` | `outputFormatCheck`
    `private javax.swing.JComboBox<java.lang.String>` | `outputFormatCombo`
    `private int` | `outputHeight`
    `private int` | `outputWidth`
    `protected javax.swing.JButton` | `povrayPathButton`
    `protected javax.swing.JTextField` | `povrayPathLabel`
    `protected javax.swing.JCheckBox` | `runPovCheck`
    `protected javax.swing.JTextField` | `saveField`
    `protected javax.swing.JTextField` | `savePathLabel`
    `private Viewer` | `vwr`

    - ### Fields inherited from class javax.swing.JDialog

      `accessibleContext, rootPane, rootPaneCheckingEnabled`

    - ### Fields inherited from class java.awt.Dialog

      `DEFAULT_MODALITY_TYPE`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface javax.swing.WindowConstants

      `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PovrayDialog(javax.swing.JFrame f, Viewer vwr)` Creates a dialog for getting info related to output frames in povray format.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) void` | `cancelPressed()` Responds to cancel being press- or equivalent eg window closed.
    `protected void` | `centerDialog()` Centers the dialog on the screen.
    `(package private) java.lang.String` | `doubleQuoteIfContainsSpace(java.lang.String str)`
    `protected java.lang.String` | `getCommandLine()` Generates a commandline from the options set for povray path etc and sets in the textField.
    `private java.lang.String` | `getINI()` Save INI file
    `private void` | `getPathHistory()` Just recovers the path settings from last session.
    `(package private) void` | `goPressed()` Save or else launch povray- ie do our thang!
    `(package private) void` | `imageSizeChanged()` Called when the ImageSize check box is modified
    `(package private) void` | `mosaicPreviewChanged()` Called when the MosaicPreview check box is modified
    `(package private) void` | `outputFormatChanged()` Called when the OutputFormat check box is modified
    `private void` | `saveHistory()` Just saves the path settings from this session.
    `void` | `setImageDimensions(int imageWidth, int imageHeight)` Sets the output image dimensions.
    `(package private) void` | `showPovrayPathDialog()` Show a file selector when the savePath button is pressed.
    `(package private) void` | `showSavePathDialog()` Show a file selector when the savePath button is pressed.
    `(package private) java.lang.String` | `simpleQuoteIfContainsSpace(java.lang.String str)`
    `protected void` | `updateCommandLine()`
    `protected void` | `updateScreen()` Update screen informations

    - ### Methods inherited from class javax.swing.JDialog

      `addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

    - ### Methods inherited from class java.awt.Dialog

      `addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack`

    - ### Methods inherited from class java.awt.Window

      `addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### vwr

          private transient Viewer vwr

    - #### povrayPathButton

          protected javax.swing.JButton povrayPathButton

    - #### goButton

          protected javax.swing.JButton goButton

    - #### saveField

          protected javax.swing.JTextField saveField

    - #### savePathLabel

          protected javax.swing.JTextField savePathLabel

    - #### outputWidth

          private int outputWidth

    - #### outputHeight

          private int outputHeight

    - #### povrayPathLabel

          protected javax.swing.JTextField povrayPathLabel

    - #### runPovCheck

          protected javax.swing.JCheckBox runPovCheck

    - #### allFramesCheck

          protected javax.swing.JCheckBox allFramesCheck

    - #### antiAliasCheck

          protected javax.swing.JCheckBox antiAliasCheck

    - #### displayWhileRenderingCheck

          protected javax.swing.JCheckBox displayWhileRenderingCheck

    - #### imageSizeWidth

          private javax.swing.JLabel imageSizeWidth

    - #### imageSizeTextWidth

          private javax.swing.JFormattedTextField imageSizeTextWidth

    - #### imageSizeHeight

          private javax.swing.JLabel imageSizeHeight

    - #### imageSizeTextHeight

          private javax.swing.JFormattedTextField imageSizeTextHeight

    - #### imageSizeRatioBox

          private javax.swing.JCheckBox imageSizeRatioBox

    - #### imageSizeRatioCombo

          private javax.swing.JComboBox<java.lang.String> imageSizeRatioCombo

    - #### outputFormatCheck

          private javax.swing.JCheckBox outputFormatCheck

    - #### outputFormatCombo

          private javax.swing.JComboBox<java.lang.String> outputFormatCombo

    - #### outputAlphaCheck

          private javax.swing.JCheckBox outputAlphaCheck

    - #### mosaicPreviewCheck

          private javax.swing.JCheckBox mosaicPreviewCheck

    - #### mosaicPreviewStart

          private javax.swing.JLabel mosaicPreviewStart

    - #### mosaicPreviewComboStart

          private javax.swing.JComboBox<java.lang.String> mosaicPreviewComboStart

    - #### mosaicPreviewEnd

          private javax.swing.JLabel mosaicPreviewEnd

    - #### mosaicPreviewComboEnd

          private javax.swing.JComboBox<java.lang.String> mosaicPreviewComboEnd

    - #### outputExtension

          private java.lang.String outputExtension

    - #### outputFileType

          private java.lang.String outputFileType

  - ### Constructor Detail

    - #### PovrayDialog

          public PovrayDialog(javax.swing.JFrame f,
                              Viewer vwr)

      Creates a dialog for getting info related to output frames in povray format.
      Parameters:
        `f` - The frame assosiated with the dialog
        `vwr` - The interacting display we are reproducing (source of view angle info etc)

  - ### Method Detail

    - #### setImageDimensions

          public void setImageDimensions(int imageWidth,
                                         int imageHeight)

      Sets the output image dimensions. Setting either to <= 0 will remove the height and width specification from the commandline- the resulting behaviour depends on povray!
      Parameters:
        `imageWidth` - The width of the image.
        `imageHeight` - The height of the image.

    - #### goPressed

          void goPressed()

      Save or else launch povray- ie do our thang!

    - #### cancelPressed

          void cancelPressed()

      Responds to cancel being press- or equivalent eg window closed.

    - #### showSavePathDialog

          void showSavePathDialog()

      Show a file selector when the savePath button is pressed.

    - #### showPovrayPathDialog

          void showPovrayPathDialog()

      Show a file selector when the savePath button is pressed.

    - #### imageSizeChanged

          void imageSizeChanged()

      Called when the ImageSize check box is modified

    - #### outputFormatChanged

          void outputFormatChanged()

      Called when the OutputFormat check box is modified

    - #### mosaicPreviewChanged

          void mosaicPreviewChanged()

      Called when the MosaicPreview check box is modified

    - #### updateScreen

          protected void updateScreen()

      Update screen informations

    - #### updateCommandLine

          protected void updateCommandLine()

    - #### getCommandLine

          protected java.lang.String getCommandLine()

      Generates a commandline from the options set for povray path etc and sets in the textField.
      Returns:
        command line

    - #### getINI

          private java.lang.String getINI()

      Save INI file
      Returns:
        INI data

    - #### centerDialog

          protected void centerDialog()

      Centers the dialog on the screen.

    - #### getPathHistory

          private void getPathHistory()

      Just recovers the path settings from last session.

    - #### saveHistory

          private void saveHistory()

      Just saves the path settings from this session.

    - #### doubleQuoteIfContainsSpace

          java.lang.String doubleQuoteIfContainsSpace(java.lang.String str)

    - #### simpleQuoteIfContainsSpace

          java.lang.String simpleQuoteIfContainsSpace(java.lang.String str)