## org.emboss.jemboss.gui.filetree
Class DragTree

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--javax.swing.JTree
                              |
                              +--org.emboss.jemboss.gui.filetree.DragTree

All Implemented Interfaces:
  javax.accessibility.Accessible, java.awt.event.ActionListener, 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

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

See Also:
  Serialized Form

Nested Class Summary
`(package private) class` `DragTree.PopupListener`

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 java.awt.Cursor` `cbusy`
`private java.awt.Cursor` `cdone`
`private java.lang.String` `fs`
`private JembossParams` `mysettings`
`private java.util.Vector` `openNode`
`private javax.swing.JPopupMenu` `popup`
`private java.io.File` `root`

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.
`private javax.swing.tree.DefaultTreeModel` `createTreeModel(java.io.File root)` Make the given directory the root and create a new DefaultTreeModel.
`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)`
`private int` `getAnIndex(FileNode parentNode, java.lang.String child)` Finds a new index for adding a new file to the file manager.
`java.lang.String` `getFilename()`
`private FileNode` `getNode(java.lang.String path)` Gets the node from the existing explored nodes.
`FileNode` `getSelectedNode()`
`boolean` `isFileSelection()`
`void` `newRoot(java.lang.String newRoot)`
`void` `refresh(FileNode node)`
`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

### root

    private java.io.File root

### openNode

    private java.util.Vector openNode

### fs

    private java.lang.String fs

### popup

    private javax.swing.JPopupMenu popup

### cbusy

    private java.awt.Cursor cbusy

### cdone

    private java.awt.Cursor cdone

Constructor Detail

### DragTree

    public DragTree(java.io.File rt,
                    javax.swing.JFrame f,
                    JembossParams mysettings)

Method Detail

### actionPerformed

    public void actionPerformed(java.awt.event.ActionEvent e)

  Popup menu actions

  Specified by:
    `actionPerformed` in interface `java.awt.event.ActionListener`

### renameFile

    private void renameFile(java.io.File oldFile,
                            FileNode oldNode,
                            java.lang.String newFullName)

  Method to rename a file and update the filenode's.

### newRoot

    public void newRoot(java.lang.String newRoot)

### refresh

    public void refresh(FileNode node)

### 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`

### getFilename

    public java.lang.String getFilename()

  Returns:
    String path name to file that is currently selected

### getSelectedNode

    public FileNode getSelectedNode()

  Returns:
    FileNode node that is currently selected

### isFileSelection

    public boolean isFileSelection()

  Returns:
    boolean 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.

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

### getNode

    private FileNode getNode(java.lang.String path)

  Gets the node from the existing explored nodes.

  Returns:
    FileNode node the corresponding node if the directory or file is visible otherwise returns null.

### getAnIndex

    private int getAnIndex(FileNode parentNode,
                           java.lang.String child)

  Finds a new index for adding a new file to the file manager.

  Returns:
    int childIndex the index of the child in the directory

### deleteObject

    public void deleteObject(FileNode node)

  Delete a node from the JTree

### showFilePane

    public static void showFilePane(java.lang.String filename,
                                    JembossParams mysettings)

  Opens a JFrame with the file contents displayed.