org.openscience.jmol.app
Class AtomSetChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.openscience.jmol.app.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
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
 
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
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  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  JmolViewer viewer
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AtomSetChooser(JmolViewer viewer, javax.swing.JFrame frame)
           
 
Method Summary
 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 viewer 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.
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.Hashtable 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, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, paint, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, 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
 
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

viewer

private JmolViewer viewer

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

REWIND

static final java.lang.String REWIND
See Also:
Constant Field Values

PREVIOUS

static final java.lang.String PREVIOUS
See Also:
Constant Field Values

PLAY

static final java.lang.String PLAY
See Also:
Constant Field Values

PAUSE

static final java.lang.String PAUSE
See Also:
Constant Field Values

NEXT

static final java.lang.String NEXT
See Also:
Constant Field Values

FF

static final java.lang.String FF
See Also:
Constant Field Values

SAVE

static final java.lang.String SAVE
See Also:
Constant Field Values

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
Constructor Detail

AtomSetChooser

public AtomSetChooser(JmolViewer viewer,
                      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 viewer 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

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.Hashtable 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