org.emboss.jemboss.gui.filetree
Class DragTree

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JTree
                  extended byorg.emboss.jemboss.gui.filetree.DragTree
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.awt.dnd.Autoscroll, java.awt.dnd.DragGestureListener, java.awt.dnd.DragSourceListener, java.awt.dnd.DropTargetListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.Scrollable, java.io.Serializable

public class DragTree
extends javax.swing.JTree
implements java.awt.dnd.DragGestureListener, java.awt.dnd.DragSourceListener, java.awt.dnd.DropTargetListener, java.awt.event.ActionListener, java.awt.dnd.Autoscroll

Creates a local file tree manager for Jemboss. This acts as a drag source and sink for files.

See Also:
Serialized Form

Nested Class Summary
(package private)  class DragTree.PopupListener
          Popup menu listener
 
Nested classes inherited from class javax.swing.JTree
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private static int AUTOSCROLL_MARGIN
          AutoScroll margin
private  java.awt.Insets autoscrollInsets
          used by AutoScroll method
private  java.awt.Cursor cbusy
          busy cursor
private  java.awt.Cursor cdone
          done cursor
private  java.lang.String fs
          file separator
private  JembossParams mysettings
          jemboss properties
private  java.util.Vector openNode
          store of directories that are opened
private  javax.swing.JPopupMenu popup
          popup menu
private  java.io.File root
          root directory
 
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
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
 
Constructor Summary
DragTree(java.io.File rt, javax.swing.JFrame f, JembossParams mysettings)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Popup menu actions
 javax.swing.tree.DefaultMutableTreeNode addObject(java.lang.String child, java.lang.String path, FileNode node)
          Adding a file (or directory) to the file tree manager.
 void autoscroll(java.awt.Point location)
          Handles the auto scrolling of the JTree.
private  javax.swing.tree.DefaultTreeModel createTreeModel(java.io.File root)
          Make the given directory the root and create a new DefaultTreeModel.
 void deleteFile(FileNode node)
          Delete a file from the tree
 void deleteObject(FileNode node)
          Delete a node from the JTree
 void dragDropEnd(java.awt.dnd.DragSourceDropEvent e)
           
 void dragEnter(java.awt.dnd.DragSourceDragEvent e)
           
 void dragEnter(java.awt.dnd.DropTargetDragEvent e)
           
 void dragExit(java.awt.dnd.DragSourceEvent e)
           
 void dragExit(java.awt.dnd.DropTargetEvent e)
           
 void dragGestureRecognized(java.awt.dnd.DragGestureEvent e)
           
 void dragOver(java.awt.dnd.DragSourceDragEvent e)
           
 void dragOver(java.awt.dnd.DropTargetDragEvent e)
          When a suitable DataFlavor is offered over a remote file node the node is highlighted/selected and the drag accepted.
 void drop(java.awt.dnd.DropTargetDropEvent e)
           
 void dropActionChanged(java.awt.dnd.DragSourceDragEvent e)
           
 void dropActionChanged(java.awt.dnd.DropTargetDragEvent e)
           
 void exploreNode(FileNode dirNode)
          Explore a directory node
private  int getAnIndex(FileNode parentNode, java.lang.String child)
          Finds a new index for adding a new file to the file manager.
 java.awt.Insets getAutoscrollInsets()
          Gets the insets used for the autoscroll.
private  FileNode getChildNode(FileNode parent, java.lang.String childName)
          Gets the child node of a parent node
private  FileNode getNode(java.lang.String path)
          Gets the node from the existing explored nodes and their children.
 java.io.File[] getSelectedFiles()
          Get selected files
 FileNode getSelectedNode()
          Get FileNode of selected node
 FileNode[] getSelectedNodes()
          Get FileNodes of selected nodes
 boolean isFileSelection()
          Return true if selected node is a file
 void newRoot(java.lang.String newRoot)
          Define a directory root for the file tree
protected static byte[] readByteFile(java.lang.String filename)
          Read a file into a byte array.
 void refresh(FileNode node)
          Refresh
private  void renameFile(java.io.File oldFile, FileNode oldNode, java.lang.String newFullName)
          Method to rename a file and update the filenode's.
static void showFilePane(java.lang.String filename, JembossParams mysettings)
          Opens a JFrame with the file contents displayed.
 
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mysettings

private JembossParams mysettings
jemboss properties


root

private java.io.File root
root directory


openNode

private java.util.Vector openNode
store of directories that are opened


fs

private java.lang.String fs
file separator


popup

private javax.swing.JPopupMenu popup
popup menu


cbusy

private java.awt.Cursor cbusy
busy cursor


cdone

private java.awt.Cursor cdone
done cursor


AUTOSCROLL_MARGIN

private static final int AUTOSCROLL_MARGIN
AutoScroll margin

See Also:
Constant Field Values

autoscrollInsets

private java.awt.Insets autoscrollInsets
used by AutoScroll method

Constructor Detail

DragTree

public DragTree(java.io.File rt,
                javax.swing.JFrame f,
                JembossParams mysettings)
Parameters:
rt - root directory
f - frame
mysettings - jemboss properties
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Popup menu actions

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - action event

deleteFile

public void deleteFile(FileNode node)
Delete a file from the tree

Parameters:
node - node to delete

renameFile

private void renameFile(java.io.File oldFile,
                        FileNode oldNode,
                        java.lang.String newFullName)
Method to rename a file and update the filenode's.

Parameters:
oldFile - file to rename
oldNode - filenode to be removed
newFullName - name of the new file

newRoot

public void newRoot(java.lang.String newRoot)
Define a directory root for the file tree

Parameters:
newRoot - directory to use as the root for the tree.

refresh

public void refresh(FileNode node)
Refresh


getSelectedNode

public FileNode getSelectedNode()
Get FileNode of selected node

Returns:
node that is currently selected

getSelectedNodes

public FileNode[] getSelectedNodes()
Get FileNodes of selected nodes

Returns:
node that is currently selected

getSelectedFiles

public java.io.File[] getSelectedFiles()
Get selected files

Returns:
node that is currently selected

isFileSelection

public boolean isFileSelection()
Return true if selected node is a file

Returns:
true is a file is selected, false if a directory is selected

createTreeModel

private javax.swing.tree.DefaultTreeModel createTreeModel(java.io.File root)
Make the given directory the root and create a new DefaultTreeModel.

Parameters:
root - root directory

addObject

public javax.swing.tree.DefaultMutableTreeNode addObject(java.lang.String child,
                                                         java.lang.String path,
                                                         FileNode node)
Adding a file (or directory) to the file tree manager. This looks to see if the directory has already been opened and updates the filetree if it has.

Parameters:
child - new child to add in
path - path to where child is to be added
node - node to add child to

deleteObject

public void deleteObject(FileNode node)
Delete a node from the JTree

Parameters:
node - node for deletion

exploreNode

public void exploreNode(FileNode dirNode)
Explore a directory node

Parameters:
dirNode - direcory node to display

getNode

private FileNode getNode(java.lang.String path)
Gets the node from the existing explored nodes and their children.

Parameters:
path - path to a file or directory
Returns:
corresponding node if the directory or file is visible otherwise returns null.

getChildNode

private FileNode getChildNode(FileNode parent,
                              java.lang.String childName)
Gets the child node of a parent node

Parameters:
parent - parent node
childName - name of child
Returns:
the child node

getAnIndex

private int getAnIndex(FileNode parentNode,
                       java.lang.String child)
Finds a new index for adding a new file to the file manager.

Parameters:
parentNode - parent directory node
child - new child node
Returns:
index of the child in the directory

readByteFile

protected static byte[] readByteFile(java.lang.String filename)
Read a file into a byte array.

Parameters:
filename - file name
Returns:
byte[] contents of file

showFilePane

public static void showFilePane(java.lang.String filename,
                                JembossParams mysettings)
Opens a JFrame with the file contents displayed.

Parameters:
filename - file name to display
mysettings - jemboss properties

dragGestureRecognized

public void dragGestureRecognized(java.awt.dnd.DragGestureEvent e)
Specified by:
dragGestureRecognized in interface java.awt.dnd.DragGestureListener

dragDropEnd

public void dragDropEnd(java.awt.dnd.DragSourceDropEvent e)
Specified by:
dragDropEnd in interface java.awt.dnd.DragSourceListener

dragEnter

public void dragEnter(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dragEnter in interface java.awt.dnd.DragSourceListener

dragExit

public void dragExit(java.awt.dnd.DragSourceEvent e)
Specified by:
dragExit in interface java.awt.dnd.DragSourceListener

dragOver

public void dragOver(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dragOver in interface java.awt.dnd.DragSourceListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DragSourceDragEvent e)
Specified by:
dropActionChanged in interface java.awt.dnd.DragSourceListener

dragEnter

public void dragEnter(java.awt.dnd.DropTargetDragEvent e)
Specified by:
dragEnter in interface java.awt.dnd.DropTargetListener

drop

public void drop(java.awt.dnd.DropTargetDropEvent e)
Specified by:
drop in interface java.awt.dnd.DropTargetListener

dragOver

public void dragOver(java.awt.dnd.DropTargetDragEvent e)
When a suitable DataFlavor is offered over a remote file node the node is highlighted/selected and the drag accepted. Otherwise the drag is rejected.

Specified by:
dragOver in interface java.awt.dnd.DropTargetListener

dropActionChanged

public void dropActionChanged(java.awt.dnd.DropTargetDragEvent e)
Specified by:
dropActionChanged in interface java.awt.dnd.DropTargetListener

dragExit

public void dragExit(java.awt.dnd.DropTargetEvent e)
Specified by:
dragExit in interface java.awt.dnd.DropTargetListener

autoscroll

public void autoscroll(java.awt.Point location)
Handles the auto scrolling of the JTree.

Specified by:
autoscroll in interface java.awt.dnd.Autoscroll
Parameters:
location - The location of the mouse.

getAutoscrollInsets

public java.awt.Insets getAutoscrollInsets()
Gets the insets used for the autoscroll.

Specified by:
getAutoscrollInsets in interface java.awt.dnd.Autoscroll
Returns:
The insets.