org::gel::mauve::gui::dnd::FileDrop Class Reference

This class makes it easy to drag and drop files from the operating system to a Java program. More...

List of all members.

Public Member Functions

 FileDrop (final PrintStream out, final Component c, final Border dragBorder, final boolean recursive, final Listener listener)
 Full constructor with a specified border and debugging optionally turned on.

 FileDrop (final PrintStream out, final Component c, final Border dragBorder, final Listener listener)
 Constructor with a specified border and debugging optionally turned on.

 FileDrop (final Component c, final Border dragBorder, final boolean recursive, final Listener listener)
 Constructor with a specified border and the option to recursively set drop targets.

 FileDrop (final Component c, final Border dragBorder, final Listener listener)
 Constructor with a specified border.

 FileDrop (final PrintStream out, final Component c, final boolean recursive, final Listener listener)
 Constructor with a default border, debugging optionally turned on and the option to recursively set drop targets.

 FileDrop (final PrintStream out, final Component c, final Listener listener)
 Constructor with a default border and debugging optionally turned on.

 FileDrop (final Component c, final boolean recursive, final Listener listener)
 Constructor with a default border and the option to recursively set drop targets.

 FileDrop (final Component c, final Listener listener)
 Constructs a FileDropwith a default light-blue border and, if c is a Container, recursively sets all elements contained within as drop targets, though only the top level container will change borders.


Static Public Member Functions

boolean remove (PrintStream out, Component c, boolean recursive)
 Removes the drag-and-drop hooks from the component and optionally from the all children.

boolean remove (Component c)
 Removes the drag-and-drop hooks from the component and optionally from the all children.


Private Member Functions

boolean isDragOk (final PrintStream out, final DropTargetDragEvent evt)
 Determine if the dragged data is a file list.

void makeDropTarget (final PrintStream out, final Component c, boolean recursive)

Static Private Member Functions

void log (PrintStream out, String message)
 Outputs message to out if it's not null.

boolean supportsDnD ()

Private Attributes

transient DropTargetListener dropListener
transient Border normalBorder

Static Private Attributes

Color defaultBorderColor = new Color (0f, 0f, 1f, 0.25f)
Boolean supportsDnD
 Discover if the running JVM is modern enough to have drag and drop.


Detailed Description

This class makes it easy to drag and drop files from the operating system to a Java program.

Any Component can be dropped onto, but only JComponent s will indicate the drop event with a changed border. <p/>To use this class, construct a new FileDrop by passing it the target component and a Listener to receive notification when file(s) have been dropped. Here is an example: <p/>

JPanel myPanel = new JPanel(); new FileDrop( myPanel, new FileDrop.Listener() { public void filesDropped( File[] files ) { // handle file drop ... } // end filesDropped }); // end FileDrop.Listener

<p/>You can specify the border that will appear when files are being dragged by calling the constructor with a Border. Only JComponent s will show any indication with a border. <p/>You can turn on some debugging features by passing a PrintStream object (such as System.out) into the full constructor. A null value will result in no extra debugging information being output. <p/>

I'm releasing this code into the Public Domain. Enjoy.

Original author: Robert Harder, rharder@usa.net

Author:
Robert Harder

rharder@usa.net

Version:
1.0

Definition at line 66 of file FileDrop.java.


Constructor & Destructor Documentation

org::gel::mauve::gui::dnd::FileDrop::FileDrop final Component  c,
final Listener  listener
[inline]
 

Constructs a FileDropwith a default light-blue border and, if c is a Container, recursively sets all elements contained within as drop targets, though only the top level container will change borders.

Parameters:
c Component on which files will be dropped.
listener Listens for filesDropped.
Since:
1.0

Definition at line 89 of file FileDrop.java.

References defaultBorderColor.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final Component  c,
final boolean  recursive,
final Listener  listener
[inline]
 

Constructor with a default border and the option to recursively set drop targets.

If your component is a Container, then each of its children components will also listen for drops, though only the parent will change borders.

Parameters:
c Component on which files will be dropped.
recursive Recursively set children as drop targets.
listener Listens for filesDropped.
Since:
1.0

Definition at line 113 of file FileDrop.java.

References defaultBorderColor.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final PrintStream  out,
final Component  c,
final Listener  listener
[inline]
 

Constructor with a default border and debugging optionally turned on.

With Debugging turned on, more status messages will be displayed to out. A common way to use this constructor is with System.out or System.err. A null value for the parameter out will result in no debugging output.

Parameters:
out PrintStream to record debugging info or null for no debugging.
out 
c Component on which files will be dropped.
listener Listens for filesDropped.
Since:
1.0

Definition at line 140 of file FileDrop.java.

References defaultBorderColor.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final PrintStream  out,
final Component  c,
final boolean  recursive,
final Listener  listener
[inline]
 

Constructor with a default border, debugging optionally turned on and the option to recursively set drop targets.

If your component is a Container, then each of its children components will also listen for drops, though only the parent will change borders. With Debugging turned on, more status messages will be displayed to out. A common way to use this constructor is with System.out or System.err. A null value for the parameter out will result in no debugging output.

Parameters:
out PrintStream to record debugging info or null for no debugging.
out 
c Component on which files will be dropped.
recursive Recursively set children as drop targets.
listener Listens for filesDropped.
Since:
1.0

Definition at line 172 of file FileDrop.java.

References defaultBorderColor.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final Component  c,
final Border  dragBorder,
final Listener  listener
[inline]
 

Constructor with a specified border.

Parameters:
c Component on which files will be dropped.
dragBorder Border to use on JComponent when dragging occurs.
listener Listens for filesDropped.
Since:
1.0

Definition at line 194 of file FileDrop.java.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final Component  c,
final Border  dragBorder,
final boolean  recursive,
final Listener  listener
[inline]
 

Constructor with a specified border and the option to recursively set drop targets.

If your component is a Container, then each of its children components will also listen for drops, though only the parent will change borders.

Parameters:
c Component on which files will be dropped.
dragBorder Border to use on JComponent when dragging occurs.
recursive Recursively set children as drop targets.
listener Listens for filesDropped.
Since:
1.0

Definition at line 219 of file FileDrop.java.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final PrintStream  out,
final Component  c,
final Border  dragBorder,
final Listener  listener
[inline]
 

Constructor with a specified border and debugging optionally turned on.

With Debugging turned on, more status messages will be displayed to out. A common way to use this constructor is with System.out or System.err. A null value for the parameter out will result in no debugging output.

Parameters:
out PrintStream to record debugging info or null for no debugging.
c Component on which files will be dropped.
dragBorder Border to use on JComponent when dragging occurs.
listener Listens for filesDropped.
Since:
1.0

Definition at line 241 of file FileDrop.java.

org::gel::mauve::gui::dnd::FileDrop::FileDrop final PrintStream  out,
final Component  c,
final Border  dragBorder,
final boolean  recursive,
final Listener  listener
[inline]
 

Full constructor with a specified border and debugging optionally turned on.

With Debugging turned on, more status messages will be displayed to out. A common way to use this constructor is with System.out or System.err. A null value for the parameter out will result in no debugging output.

Parameters:
out PrintStream to record debugging info or null for no debugging.
c Component on which files will be dropped.
dragBorder Border to use on JComponent when dragging occurs.
recursive Recursively set children as drop targets.
listener Listens for filesDropped.
Since:
1.0

Definition at line 269 of file FileDrop.java.

References dropListener, isDragOk(), log(), makeDropTarget(), normalBorder, and supportsDnD().


Member Function Documentation

boolean org::gel::mauve::gui::dnd::FileDrop::isDragOk final PrintStream  out,
final DropTargetDragEvent  evt
[inline, private]
 

Determine if the dragged data is a file list.

Definition at line 459 of file FileDrop.java.

Referenced by FileDrop().

void org::gel::mauve::gui::dnd::FileDrop::log PrintStream  out,
String  message
[inline, static, private]
 

Outputs message to out if it's not null.

Definition at line 486 of file FileDrop.java.

Referenced by FileDrop().

void org::gel::mauve::gui::dnd::FileDrop::makeDropTarget final PrintStream  out,
final Component  c,
boolean  recursive
[inline, private]
 

Definition at line 415 of file FileDrop.java.

References dropListener.

Referenced by FileDrop().

boolean org::gel::mauve::gui::dnd::FileDrop::remove PrintStream  out,
Component  c,
boolean  recursive
[inline, static]
 

Removes the drag-and-drop hooks from the component and optionally from the all children.

You should call this if you add and remove components after you've set up the drag-and-drop.

Parameters:
out Optional PrintStreamfor logging drag and drop messages
c The component to unregister
recursive Recursively unregister components within a container
Since:
1.0

Definition at line 521 of file FileDrop.java.

boolean org::gel::mauve::gui::dnd::FileDrop::remove Component  c  )  [inline, static]
 

Removes the drag-and-drop hooks from the component and optionally from the all children.

You should call this if you add and remove components after you've set up the drag-and-drop. This will recursively unregister all components contained within c if c is a Container.

Parameters:
c The component to unregister as a drop target
Since:
1.0

Definition at line 503 of file FileDrop.java.

boolean org::gel::mauve::gui::dnd::FileDrop::supportsDnD  )  [inline, static, private]
 

Definition at line 400 of file FileDrop.java.

Referenced by FileDrop().


Member Data Documentation

Color org::gel::mauve::gui::dnd::FileDrop::defaultBorderColor = new Color (0f, 0f, 1f, 0.25f) [static, private]
 

Definition at line 75 of file FileDrop.java.

Referenced by FileDrop().

transient DropTargetListener org::gel::mauve::gui::dnd::FileDrop::dropListener [private]
 

Definition at line 69 of file FileDrop.java.

Referenced by FileDrop(), and makeDropTarget().

transient Border org::gel::mauve::gui::dnd::FileDrop::normalBorder [private]
 

Definition at line 67 of file FileDrop.java.

Referenced by FileDrop().

Boolean org::gel::mauve::gui::dnd::FileDrop::supportsDnD [static, private]
 

Discover if the running JVM is modern enough to have drag and drop.

Definition at line 72 of file FileDrop.java.


The documentation for this class was generated from the following file:
Generated on Mon Aug 19 06:04:07 2013 for Mauve by doxygen 1.3.6