net.sourceforge.olduvai.treejuxtaposer
Class TreeWriter

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 net.sourceforge.olduvai.treejuxtaposer.TreeWriter
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class TreeWriter
extends javax.swing.JFrame
implements java.awt.event.ActionListener

Static utility class to write a tree to a file. Does not create an object, no constructor. Newick files are created, but the functions here could be used to create a Nexus file writer.

Author:
jslack
See Also:
Serialized Form

Nested Class Summary
 
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  javax.swing.JButton CancelButton
          Cancel button that does not change the node and does not reset differences.
private static char childSeparator
          Place between children of a subtree root.
private static char closeBracket
          Close bracket to wrap children of a subtree root.
private  javax.swing.JLabel dialogLabel
          Label for the text field.
private static char doubleQuote
          Quote object to wrap node names.
private static char infoSeparator
          UNUSED separator for placing more information after the node name.
private static char lineTerminator
          End of tree character.
private  javax.swing.JTextField newLabel
          Text area to read new label name.
private  javax.swing.JButton OkButton
          OK button that resets the differences and search dialog.
private static char openBracket
          Open bracket to wrap children of a subtree root.
private static char quote
          UNUSED single quote character.
private  TreeNode renameNode
          Node that is being renamed.
private  TreeJuxtaposer tj
          TreeJuxtaposer used to reset the differences and search dialog with TreeJuxtaposer.postDeleteTrees().
private static char treeTerminator
          End of tree character.
 
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
TreeWriter(TreeNode renameNode, TreeJuxtaposer tj)
          Start a tree writer dialog that allows a user to enter a new name for a node.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent arg0)
          Capture button press for newly renamed node.
private  void initGUI()
          Initialize the GUI for changing the label of a node.
private static void nodeWriter(TreeNode currNode, java.io.BufferedWriter writer)
          Write a single node to the writer object, after calling the subtree writer on each child.
private static void subtreeWriter(TreeNode subtreeRoot, java.io.BufferedWriter writer)
          Wrap a series of nodes in brackets, then call the node writer on each child of the input subtree root.
static void writeTree(Tree t, java.lang.String fileName)
          Writes Tree to file by name of fileName.
 
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, transferFocusBackward, 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, 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

lineTerminator

private static final char lineTerminator
End of tree character.

See Also:
Constant Field Values

treeTerminator

private static final char treeTerminator
End of tree character.

See Also:
Constant Field Values

openBracket

private static final char openBracket
Open bracket to wrap children of a subtree root.

See Also:
Constant Field Values

closeBracket

private static final char closeBracket
Close bracket to wrap children of a subtree root.

See Also:
Constant Field Values

childSeparator

private static final char childSeparator
Place between children of a subtree root.

See Also:
Constant Field Values

doubleQuote

private static final char doubleQuote
Quote object to wrap node names.

See Also:
Constant Field Values

infoSeparator

private static final char infoSeparator
UNUSED separator for placing more information after the node name.

See Also:
Constant Field Values

quote

private static final char quote
UNUSED single quote character.

See Also:
Constant Field Values

tj

private TreeJuxtaposer tj
TreeJuxtaposer used to reset the differences and search dialog with TreeJuxtaposer.postDeleteTrees().


renameNode

private TreeNode renameNode
Node that is being renamed.


OkButton

private javax.swing.JButton OkButton
OK button that resets the differences and search dialog.


CancelButton

private javax.swing.JButton CancelButton
Cancel button that does not change the node and does not reset differences.


dialogLabel

private javax.swing.JLabel dialogLabel
Label for the text field.


newLabel

private javax.swing.JTextField newLabel
Text area to read new label name.

Constructor Detail

TreeWriter

public TreeWriter(TreeNode renameNode,
                  TreeJuxtaposer tj)
Start a tree writer dialog that allows a user to enter a new name for a node. Reinitializes the differences and search dialog to start a new cache. Nodes that were previously labeled and match other nodes in other trees do not affect the identically named nodes, which may cause issues with the differences and search dialog if they are not reset.

Parameters:
renameNode - Node that is being renamed, does not know it's own tree.
tj - TreeJuxtaposer object, for referencing the search dialog.
Method Detail

writeTree

public static void writeTree(Tree t,
                             java.lang.String fileName)
Writes Tree to file by name of fileName.

Parameters:
t - Tree to be written to file.
fileName - output file name.

nodeWriter

private static void nodeWriter(TreeNode currNode,
                               java.io.BufferedWriter writer)
                        throws java.io.IOException
Write a single node to the writer object, after calling the subtree writer on each child. All nodes are quoted with doubleQuote.

Parameters:
currNode - Node to write.
writer - Writer object used to send the node and its subtree to file.
Throws:
java.io.IOException

subtreeWriter

private static void subtreeWriter(TreeNode subtreeRoot,
                                  java.io.BufferedWriter writer)
                           throws java.io.IOException
Wrap a series of nodes in brackets, then call the node writer on each child of the input subtree root.

Parameters:
subtreeRoot - Root of the subtree to write. This node itself is not written by this function.
writer - Writer object used to send the subtree to file.
Throws:
java.io.IOException

initGUI

private void initGUI()
Initialize the GUI for changing the label of a node. This action causes differences and search dialogs to be updated.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent arg0)
Capture button press for newly renamed node.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
arg0 - Button press, either OK or cancel.