org.emboss.jemboss.gui.filetree
Class RemoteDragTree

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.RemoteDragTree
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 RemoteDragTree
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 remote file tree which is a drag source & sink

See Also:
Serialized Form

Nested Class Summary
(package private)  class RemoteDragTree.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 static FileRoots froots
          remote directory roots
private  java.lang.String fs
          file separator
private  java.lang.String ls
          line separator
private  JembossParams mysettings
          jemboss properties
private  java.util.Vector openNode
          store of directories that are opened
private  javax.swing.JPopupMenu popup
          popup menu
 
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
RemoteDragTree(JembossParams mysettings, FileRoots froots)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Popup menu actions
 void addObject(RemoteFileNode parentNode, java.lang.String child, boolean ldir)
          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.lang.String root)
          Creates the tree model for the given root
private  void deleteNode(RemoteFileNode node)
          Delete a node (file or directory) from the tree and from the server
 void deleteObject(RemoteFileNode node)
          Delete a node from the tree
 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(RemoteFileNode dirNode)
          Explore a directory node
 java.awt.Insets getAutoscrollInsets()
          Gets the insets used for the autoscroll.
private  RemoteFileNode getChildNode(RemoteFileNode parent, java.lang.String childName)
          Gets the child node of a parent node
 java.lang.String getFilename()
          Get the selected node file name
 byte[] getLocalFile(java.io.File name)
          Get the contents of a local file as a byte array
private  RemoteFileNode getNode(java.lang.String path)
          Gets the node from the existing explored nodes and their children.
 RemoteFileNode getSelectedNode()
          Get RemoteFileNode of selected node
 RemoteFileNode[] getSelectedNodes()
          Get RemoteFileNodes of selected nodes
 boolean isFileSelection()
          Determine if selected node is a file
 boolean nodeExists(RemoteFileNode parentNode, java.lang.String child)
          Test if a child node exists
 void refreshRoot()
          This is used to refresh the file manager
private  void rename(java.lang.String rootPath, java.lang.String fullname, java.lang.String pathToNewFile, java.lang.String newfile, RemoteFileNode node, RemoteFileNode parentNode)
          Rename a node from the tree
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


froots

private static FileRoots froots
remote directory roots


popup

private javax.swing.JPopupMenu popup
popup menu


fs

private java.lang.String fs
file separator


ls

private java.lang.String ls
line separator


openNode

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


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

RemoteDragTree

public RemoteDragTree(JembossParams mysettings,
                      FileRoots froots)
Parameters:
mysettings - jemboss properties
froots - remote directory roots
Method Detail

refreshRoot

public void refreshRoot()
This is used to refresh the file manager


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

deleteNode

private void deleteNode(RemoteFileNode node)
Delete a node (file or directory) from the tree and from the server

Parameters:
node - node to remove

exploreNode

public void exploreNode(RemoteFileNode dirNode)
Explore a directory node

Parameters:
dirNode - direcory node to display

nodeExists

public boolean nodeExists(RemoteFileNode parentNode,
                          java.lang.String child)
Test if a child node exists

Parameters:
parentNode - parent node
child - child to test for

rename

private void rename(java.lang.String rootPath,
                    java.lang.String fullname,
                    java.lang.String pathToNewFile,
                    java.lang.String newfile,
                    RemoteFileNode node,
                    RemoteFileNode parentNode)
Rename a node from the tree

Parameters:
rootPath - root path
fullname - full name of node to rename
pathToNewFile - path to new file
newfile - new file name
node - node to rename

addObject

public void addObject(RemoteFileNode parentNode,
                      java.lang.String child,
                      boolean ldir)
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:
parentNode - parent node
child - file to add to the tree
ldir - true if child is a directory

deleteObject

public void deleteObject(RemoteFileNode node)
Delete a node from the tree

Parameters:
node - node to remove

getLocalFile

public byte[] getLocalFile(java.io.File name)
Get the contents of a local file as a byte array

Parameters:
name - local file name
Returns:
contents of file

getSelectedNode

public RemoteFileNode getSelectedNode()
Get RemoteFileNode of selected node

Returns:
node that is currently selected

getSelectedNodes

public RemoteFileNode[] getSelectedNodes()
Get RemoteFileNodes of selected nodes

Returns:
node that is currently selected

isFileSelection

public boolean isFileSelection()
Determine if selected node is a file

Returns:
true if the selected node is a file

getFilename

public java.lang.String getFilename()
Get the selected node file name

Returns:
file name

createTreeModel

private javax.swing.tree.DefaultTreeModel createTreeModel(java.lang.String root)
Creates the tree model for the given root

Parameters:
root - root to create model for
Returns:
tree model

getNode

private RemoteFileNode 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 RemoteFileNode getChildNode(RemoteFileNode 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

showFilePane

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

Parameters:
filename - file name
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.