Class AtomSetChooser

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.lang.Runnable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.event.TreeSelectionListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class AtomSetChooser
    extends javax.swing.JFrame
    implements javax.swing.event.TreeSelectionListener, java.beans.PropertyChangeListener, java.awt.event.ActionListener, javax.swing.event.ChangeListener, java.lang.Runnable
    A JFrame that allows for choosing an Atomset to view.
    Author:
    René Kanters, University of Richmond
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  AtomSetChooser.AtomSet
      Objects in the AtomSetChooser tree
      • Nested classes/interfaces inherited from class javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • 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 Description
      private static float AMPLITUDE_MAX
      Maximum value for vibration scale.
      private static float AMPLITUDE_PRECISION
      Precision of the vibration scale slider
      private static float AMPLITUDE_VALUE
      Initial value of vibration scale.
      private javax.swing.JSlider amplitudeSlider  
      private java.lang.Thread animThread  
      (package private) static java.lang.String COLLECTION
      String for prefix/resource identifier for the collection area.
      private int currentIndex  
      (package private) static java.lang.String FF  
      private static int FPS_MAX
      Maximum value for the fps slider.
      private javax.swing.JSlider fpsSlider  
      private int[] indexes
      Sequence of atom set indexes in current tree selection for a branch, or siblings for a leaf.
      private javax.swing.JLabel infoLabel  
      (package private) static java.lang.String NEXT  
      (package private) static java.lang.String PAUSE  
      private static float PERIOD_MAX
      Maximum value for the vibration period in seconds.
      private static float PERIOD_PRECISION
      Precision of the vibration period slider in seconds.
      private static float PERIOD_VALUE
      Initial value for the vibration period in seconds.
      private javax.swing.JSlider periodSlider  
      (package private) static java.lang.String PLAY  
      (package private) static java.lang.String PREVIOUS  
      private javax.swing.JTextArea propertiesTextArea  
      private static int RADIUS_MAX
      Maximum value for vector radius.
      private static int RADIUS_VALUE
      Initial value of vector radius.
      private javax.swing.JSlider radiusSlider  
      private int radiusValue  
      private javax.swing.JCheckBox repeatCheckBox  
      (package private) static java.lang.String REWIND  
      (package private) static java.lang.String SAVE  
      private javax.swing.JFileChooser saveChooser  
      private static float SCALE_MAX
      Maximum value for vector scale.
      private static float SCALE_PRECISION
      Precision of the vector scale slider
      private static float SCALE_VALUE
      Initial value of vector scale.
      private javax.swing.JSlider scaleSlider  
      private javax.swing.JSlider selectSlider  
      private javax.swing.JTree tree  
      private javax.swing.tree.DefaultTreeModel treeModel  
      (package private) static java.lang.String VECTOR
      String for prefix/resource identifier for the vector area.
      private Viewer vwr  
      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • Fields inherited from class java.awt.Frame

        CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
      • Fields inherited from class java.awt.Component

        BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      AtomSetChooser​(Viewer vwr, javax.swing.JFrame frame)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)  
      private void createTreeModel()
      Creates the treeModel of the AtomSets available in the JmolViewer
      private javax.swing.JPanel createVCRController​(java.lang.String section)
      Creates a VCR type set of controller inside a JPanel.
      void findFrequency​(int index, int increment)
      Have the vwr show a particular frame with frequencies if it can be found.
      private void layoutWindow​(java.awt.Container container)  
      void propertyChange​(java.beans.PropertyChangeEvent propertyChangeEvent)  
      void run()  
      void saveXYZCollection()
      Saves the currently active collection as a multistep XYZ file.
      private void script​(java.lang.String cmd)  
      protected void setIndexes​(javax.swing.tree.DefaultMutableTreeNode node)
      Sets the indexes to the atomSetIndex values of each leaf of the node.
      protected void showAtomSetIndex​(int index, boolean bSetSelectSlider)
      Show an atom set from the indexes array
      protected void showAuxiliaryInfo​(java.util.Map<java.lang.String,​java.lang.Object> auxiliaryInfo)
      Shows the auxiliary information in the propertiesPane of the AtomSetChooser window
      protected void showProperties​(java.util.Properties properties)
      Shows the properties in the propertiesPane of the AtomSetChooser window
      void stateChanged​(javax.swing.event.ChangeEvent e)  
      void valueChanged​(javax.swing.event.TreeSelectionEvent e)  
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • 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, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, 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, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, 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
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • Field Detail

      • animThread

        private java.lang.Thread animThread
      • propertiesTextArea

        private javax.swing.JTextArea propertiesTextArea
      • tree

        private javax.swing.JTree tree
      • treeModel

        private javax.swing.tree.DefaultTreeModel treeModel
      • repeatCheckBox

        private javax.swing.JCheckBox repeatCheckBox
      • selectSlider

        private javax.swing.JSlider selectSlider
      • infoLabel

        private javax.swing.JLabel infoLabel
      • fpsSlider

        private javax.swing.JSlider fpsSlider
      • amplitudeSlider

        private javax.swing.JSlider amplitudeSlider
      • periodSlider

        private javax.swing.JSlider periodSlider
      • scaleSlider

        private javax.swing.JSlider scaleSlider
      • radiusSlider

        private javax.swing.JSlider radiusSlider
      • saveChooser

        private javax.swing.JFileChooser saveChooser
      • COLLECTION

        static final java.lang.String COLLECTION
        String for prefix/resource identifier for the collection area. This value is used in the Jmol properties files.
        See Also:
        Constant Field Values
      • VECTOR

        static final java.lang.String VECTOR
        String for prefix/resource identifier for the vector area. This value is used in the Jmol properties files.
        See Also:
        Constant Field Values
      • indexes

        private int[] indexes
        Sequence of atom set indexes in current tree selection for a branch, or siblings for a leaf.
      • currentIndex

        private int currentIndex
      • FPS_MAX

        private static final int FPS_MAX
        Maximum value for the fps slider.
        See Also:
        Constant Field Values
      • AMPLITUDE_PRECISION

        private static final float AMPLITUDE_PRECISION
        Precision of the vibration scale slider
        See Also:
        Constant Field Values
      • AMPLITUDE_MAX

        private static final float AMPLITUDE_MAX
        Maximum value for vibration scale. Should be in preferences?
        See Also:
        Constant Field Values
      • AMPLITUDE_VALUE

        private static final float AMPLITUDE_VALUE
        Initial value of vibration scale. Should be in preferences?
        See Also:
        Constant Field Values
      • PERIOD_PRECISION

        private static final float PERIOD_PRECISION
        Precision of the vibration period slider in seconds.
        See Also:
        Constant Field Values
      • PERIOD_MAX

        private static final float PERIOD_MAX
        Maximum value for the vibration period in seconds. Should be in preferences?
        See Also:
        Constant Field Values
      • PERIOD_VALUE

        private static final float PERIOD_VALUE
        Initial value for the vibration period in seconds. Should be in preferences?
        See Also:
        Constant Field Values
      • RADIUS_MAX

        private static final int RADIUS_MAX
        Maximum value for vector radius.
        See Also:
        Constant Field Values
      • RADIUS_VALUE

        private static final int RADIUS_VALUE
        Initial value of vector radius. Should be in preferences?
        See Also:
        Constant Field Values
      • SCALE_PRECISION

        private static final float SCALE_PRECISION
        Precision of the vector scale slider
        See Also:
        Constant Field Values
      • SCALE_MAX

        private static final float SCALE_MAX
        Maximum value for vector scale. Should be in preferences?
        See Also:
        Constant Field Values
      • SCALE_VALUE

        private static final float SCALE_VALUE
        Initial value of vector scale. Should be in preferences?
        See Also:
        Constant Field Values
      • radiusValue

        private int radiusValue
    • Constructor Detail

      • AtomSetChooser

        public AtomSetChooser​(Viewer vwr,
                              javax.swing.JFrame frame)
    • Method Detail

      • layoutWindow

        private void layoutWindow​(java.awt.Container container)
      • createVCRController

        private javax.swing.JPanel createVCRController​(java.lang.String section)
        Creates a VCR type set of controller inside a JPanel.

        Uses the JmolResourceHandler to get the label for the panel, the images for the buttons, and the tooltips. The button names are rewind, prev, play, pause, next , and ff.

        The handler for the buttons should determine from the getActionCommand which button in which section triggered the actionEvent, which is identified by {section}.{name}.

        Parameters:
        section - String of the section that the controller belongs to.
        Returns:
        The JPanel
      • valueChanged

        public void valueChanged​(javax.swing.event.TreeSelectionEvent e)
        Specified by:
        valueChanged in interface javax.swing.event.TreeSelectionListener
      • showAtomSetIndex

        protected void showAtomSetIndex​(int index,
                                        boolean bSetSelectSlider)
        Show an atom set from the indexes array
        Parameters:
        index - The index in the index array
        bSetSelectSlider - If true, updates the selectSlider
      • setIndexes

        protected void setIndexes​(javax.swing.tree.DefaultMutableTreeNode node)
        Sets the indexes to the atomSetIndex values of each leaf of the node.
        Parameters:
        node - The node whose leaf's atomSetIndex values should be used
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
      • saveXYZCollection

        public void saveXYZCollection()
        Saves the currently active collection as a multistep XYZ file.
      • findFrequency

        public void findFrequency​(int index,
                                  int increment)
        Have the vwr show a particular frame with frequencies if it can be found.
        Parameters:
        index - Starting index where to start looking for frequencies
        increment - Increment value for how to go through the list
      • stateChanged

        public void stateChanged​(javax.swing.event.ChangeEvent e)
        Specified by:
        stateChanged in interface javax.swing.event.ChangeListener
      • script

        private void script​(java.lang.String cmd)
      • showProperties

        protected void showProperties​(java.util.Properties properties)
        Shows the properties in the propertiesPane of the AtomSetChooser window
        Parameters:
        properties - Properties to be shown.
      • showAuxiliaryInfo

        protected void showAuxiliaryInfo​(java.util.Map<java.lang.String,​java.lang.Object> auxiliaryInfo)
        Shows the auxiliary information in the propertiesPane of the AtomSetChooser window
        Parameters:
        auxiliaryInfo - Hashtable to be shown.
      • createTreeModel

        private void createTreeModel()
        Creates the treeModel of the AtomSets available in the JmolViewer
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent propertyChangeEvent)
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable