org.openscience.jmol.app.jmolpanel
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.jmolpanel.AtomSetChooser
All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, Runnable, EventListener, Accessible, ChangeListener, TreeSelectionListener, RootPaneContainer, WindowConstants

public class AtomSetChooser
extends JFrame
implements TreeSelectionListener, PropertyChangeListener, ActionListener, ChangeListener, 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
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, 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  JSlider amplitudeSlider
           
private  Thread animThread
           
(package private) static String COLLECTION
          String for prefix/resource identifier for the collection area.
private  int currentIndex
           
(package private) static String FF
           
private static int FPS_MAX
          Maximum value for the fps slider.
private  JSlider fpsSlider
           
private  int[] indexes
          Sequence of atom set indexes in current tree selection for a branch, or siblings for a leaf.
private  JLabel infoLabel
           
(package private) static String NEXT
           
(package private) static 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  JSlider periodSlider
           
(package private) static String PLAY
           
(package private) static String PREVIOUS
           
private  JTextArea propertiesTextArea
           
private static int RADIUS_MAX
          Maximum value for vector radius.
private static int RADIUS_VALUE
          Initial value of vector radius.
private  JSlider radiusSlider
           
private  JCheckBox repeatCheckBox
           
(package private) static String REWIND
           
(package private) static String SAVE
           
private  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  JSlider scaleSlider
           
private  JSlider selectSlider
           
private  JTree tree
           
private  DefaultTreeModel treeModel
           
(package private) static 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, JFrame frame)
           
 
Method Summary
 void actionPerformed(ActionEvent e)
           
private  void createTreeModel()
          Creates the treeModel of the AtomSets available in the JmolViewer
private  JPanel createVCRController(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(Container container)
           
 void propertyChange(PropertyChangeEvent propertyChangeEvent)
           
 void run()
           
 void saveXYZCollection()
          Saves the currently active collection as a multistep XYZ file.
protected  void setIndexes(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(Hashtable auxiliaryInfo)
          Shows the auxiliary information in the propertiesPane of the AtomSetChooser window
protected  void showProperties(Properties properties)
          Shows the properties in the propertiesPane of the AtomSetChooser window
 void stateChanged(ChangeEvent e)
           
 void valueChanged(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 Thread animThread

propertiesTextArea

private JTextArea propertiesTextArea

tree

private JTree tree

treeModel

private DefaultTreeModel treeModel

viewer

private JmolViewer viewer

repeatCheckBox

private JCheckBox repeatCheckBox

selectSlider

private JSlider selectSlider

infoLabel

private JLabel infoLabel

fpsSlider

private JSlider fpsSlider

amplitudeSlider

private JSlider amplitudeSlider

periodSlider

private JSlider periodSlider

scaleSlider

private JSlider scaleSlider

radiusSlider

private JSlider radiusSlider

saveChooser

private JFileChooser saveChooser

REWIND

static final String REWIND
See Also:
Constant Field Values

PREVIOUS

static final String PREVIOUS
See Also:
Constant Field Values

PLAY

static final String PLAY
See Also:
Constant Field Values

PAUSE

static final String PAUSE
See Also:
Constant Field Values

NEXT

static final String NEXT
See Also:
Constant Field Values

FF

static final String FF
See Also:
Constant Field Values

SAVE

static final String SAVE
See Also:
Constant Field Values

COLLECTION

static final 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 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,
                      JFrame frame)
Method Detail

layoutWindow

private void layoutWindow(Container container)

createVCRController

private JPanel createVCRController(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(TreeSelectionEvent e)
Specified by:
valueChanged in interface 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(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(ActionEvent e)
Specified by:
actionPerformed in interface 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(ChangeEvent e)
Specified by:
stateChanged in interface ChangeListener

showProperties

protected void showProperties(Properties properties)
Shows the properties in the propertiesPane of the AtomSetChooser window

Parameters:
properties - Properties to be shown.

showAuxiliaryInfo

protected void showAuxiliaryInfo(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(PropertyChangeEvent propertyChangeEvent)
Specified by:
propertyChange in interface PropertyChangeListener

run

public void run()
Specified by:
run in interface Runnable