com.alee.extended.filechooser
Class WebFileDrop

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.alee.laf.panel.WebPanel
                      extended by com.alee.extended.filechooser.WebFileDrop
All Implemented Interfaces:
PartialDecoration, LanguageContainerMethods, LanguageMethods, ShapeProvider, Styleable, SizeMethods<WebPanel>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class WebFileDrop
extends WebPanel
implements LanguageMethods

Custom component that acts as files container and allows drag & drop them. Separate WebFilePlate component is created for each added file to display it.

Author:
Mikle Garin
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
protected  boolean allowSameFiles
           
static javax.swing.ImageIcon CROSS_ICON
          Remove file icon.
protected  int dashRound
           
protected  int dashSideSpacing
           
protected static java.awt.BasicStroke dashStroke
           
protected  int dragAction
           
protected  java.awt.Color dropBackground
           
protected  java.awt.Color dropBorder
           
protected  java.lang.String dropText
           
protected  float dropTextOpacity
           
protected  AbstractFileFilter fileFilter
           
protected  boolean filesDragEnabled
           
protected  boolean filesDropEnabled
           
protected  java.util.List<FilesSelectionListener> listeners
           
protected  java.util.List<java.io.File> selectedFiles
           
protected  boolean showDropText
           
protected  boolean showFileExtensions
           
protected  boolean showRemoveButton
           
 
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.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
WebFileDrop()
           
 
Method Summary
 void addFileSelectionListener(FilesSelectionListener listener)
           
 void addSelectedFile(java.io.File file)
           
protected  boolean addSelectedFileImpl(java.io.File file)
           
 void addSelectedFiles(java.io.File... files)
           
 void addSelectedFiles(java.util.List<java.io.File> files)
           
protected  WebFilePlate createFilePlate(java.io.File file)
           
protected  void fireSelectionChanged()
           
 int getDashRound()
           
 int getDashSideSpacing()
           
 int getDragAction()
           
 java.awt.Color getDropBackground()
           
 java.awt.Color getDropBorder()
           
 java.lang.String getDropText()
           
 AbstractFileFilter getFileFilter()
           
 java.util.List<WebFilePlate> getFilePlates(java.io.File file)
           
 java.util.List<java.io.File> getSelectedFiles()
           
 boolean isAllowSameFiles()
           
 boolean isDropTextVisible()
           
 boolean isFilesDragEnabled()
           
 boolean isFilesDropEnabled()
           
 boolean isLanguageSet()
          Returns whether this component registered in LanguageManager or not.
 boolean isShowDropText()
           
 boolean isShowFileExtensions()
           
 boolean isShowRemoveButton()
           
protected  void paintComponent(java.awt.Graphics g)
           
 void removeAllSelectedFiles()
           
 void removeFileSelectionListener(FilesSelectionListener listener)
           
 void removeLanguage()
          Unregisters component from LanguageManager.
 void removeLanguageUpdater()
          Unregisters any custom language updater set for this component.
 void removeSelectedFile(java.io.File file)
           
protected  boolean removeSelectedFileImpl(java.io.File file, boolean animate)
           
 void removeSelectedFiles(java.io.File... files)
           
 void removeSelectedFiles(java.util.List<java.io.File> files)
           
 void setAllowSameFiles(boolean allowSameFiles)
           
 void setDashRound(int dashRound)
           
 void setDashSideSpacing(int dashSideSpacing)
           
 void setDragAction(int dragAction)
           
 void setDropBackground(java.awt.Color dropBackground)
           
 void setDropBorder(java.awt.Color dropBorder)
           
 void setDropText(java.lang.String dropText)
           
 void setFileFilter(AbstractFileFilter fileFilter)
           
 void setFilesDragEnabled(boolean filesDragEnabled)
           
 void setFilesDropEnabled(boolean filesDropEnabled)
           
 void setLanguage(java.lang.String key, java.lang.Object... data)
          Registers component in LanguageManager under specified key and with specified formatting data.
 void setLanguageUpdater(LanguageUpdater updater)
          Registers custom language updater for this component.
 void setSelectedFiles(java.util.List<java.io.File> files)
           
 void setShowDefaultDropText(boolean defaultDropText)
           
 void setShowDropText(boolean showDropText)
           
 void setShowFileExtensions(boolean showFileExtensions)
           
 void setShowRemoveButton(boolean showRemoveButton)
           
 void updateLanguage(java.lang.Object... data)
          Updates component language and formatting data.
 void updateLanguage(java.lang.String key, java.lang.Object... data)
          Changes component language key and updates its language and formatting data.
 
Methods inherited from class com.alee.laf.panel.WebPanel
add, add, add, add, add, add, getBorderColor, getBorderStroke, getDisabledBorderColor, getFirstComponent, getLanguageContainerKey, getLastComponent, getMargin, getMinimumHeight, getMinimumWidth, getPainter, getPreferredHeight, getPreferredSize, getPreferredWidth, getRound, getShadeTransparency, getShadeWidth, getStyleId, getWebUI, isPaintBackground, isPaintBottom, isPaintBottomLine, isPaintFocus, isPaintLeft, isPaintLeftLine, isPaintRight, isPaintRightLine, isPaintTop, isPaintTopLine, isUndecorated, isWebColoredBackground, provideShape, removeLanguageContainerKey, setBorderColor, setBorderStroke, setDisabledBorderColor, setLanguageContainerKey, setMargin, setMargin, setMargin, setMinimumHeight, setMinimumWidth, setPaintBackground, setPaintBottom, setPaintBottomLine, setPainter, setPaintFocus, setPaintLeft, setPaintLeftLine, setPaintRight, setPaintRightLine, setPaintSideLines, setPaintSides, setPaintTop, setPaintTopLine, setPreferredHeight, setPreferredWidth, setRound, setShadeTransparency, setShadeWidth, setStyleId, setUndecorated, setWebColoredBackground, updateUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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

CROSS_ICON

public static final javax.swing.ImageIcon CROSS_ICON
Remove file icon.


dashStroke

protected static final java.awt.BasicStroke dashStroke

dashRound

protected int dashRound

dashSideSpacing

protected int dashSideSpacing

dropBackground

protected java.awt.Color dropBackground

dropBorder

protected java.awt.Color dropBorder

listeners

protected final java.util.List<FilesSelectionListener> listeners

showRemoveButton

protected boolean showRemoveButton

showFileExtensions

protected boolean showFileExtensions

filesDragEnabled

protected boolean filesDragEnabled

dragAction

protected int dragAction

filesDropEnabled

protected boolean filesDropEnabled

allowSameFiles

protected boolean allowSameFiles

fileFilter

protected AbstractFileFilter fileFilter

showDropText

protected boolean showDropText

dropTextOpacity

protected float dropTextOpacity

dropText

protected java.lang.String dropText

selectedFiles

protected java.util.List<java.io.File> selectedFiles
Constructor Detail

WebFileDrop

public WebFileDrop()
Method Detail

isShowDropText

public boolean isShowDropText()

setShowDropText

public void setShowDropText(boolean showDropText)

isFilesDragEnabled

public boolean isFilesDragEnabled()

setFilesDragEnabled

public void setFilesDragEnabled(boolean filesDragEnabled)

getDragAction

public int getDragAction()

setDragAction

public void setDragAction(int dragAction)

isFilesDropEnabled

public boolean isFilesDropEnabled()

setFilesDropEnabled

public void setFilesDropEnabled(boolean filesDropEnabled)

getSelectedFiles

public java.util.List<java.io.File> getSelectedFiles()

setSelectedFiles

public void setSelectedFiles(java.util.List<java.io.File> files)

addSelectedFiles

public void addSelectedFiles(java.util.List<java.io.File> files)

addSelectedFiles

public void addSelectedFiles(java.io.File... files)

addSelectedFile

public void addSelectedFile(java.io.File file)

addSelectedFileImpl

protected boolean addSelectedFileImpl(java.io.File file)

removeAllSelectedFiles

public void removeAllSelectedFiles()

removeSelectedFiles

public void removeSelectedFiles(java.util.List<java.io.File> files)

removeSelectedFiles

public void removeSelectedFiles(java.io.File... files)

removeSelectedFile

public void removeSelectedFile(java.io.File file)

removeSelectedFileImpl

protected boolean removeSelectedFileImpl(java.io.File file,
                                         boolean animate)

getFilePlates

public java.util.List<WebFilePlate> getFilePlates(java.io.File file)

isAllowSameFiles

public boolean isAllowSameFiles()

setAllowSameFiles

public void setAllowSameFiles(boolean allowSameFiles)

getFileFilter

public AbstractFileFilter getFileFilter()

setFileFilter

public void setFileFilter(AbstractFileFilter fileFilter)

isShowRemoveButton

public boolean isShowRemoveButton()

setShowRemoveButton

public void setShowRemoveButton(boolean showRemoveButton)

isShowFileExtensions

public boolean isShowFileExtensions()

setShowFileExtensions

public void setShowFileExtensions(boolean showFileExtensions)

getDropBackground

public java.awt.Color getDropBackground()

setDropBackground

public void setDropBackground(java.awt.Color dropBackground)

getDropBorder

public java.awt.Color getDropBorder()

setDropBorder

public void setDropBorder(java.awt.Color dropBorder)

getDashRound

public int getDashRound()

setDashRound

public void setDashRound(int dashRound)

getDashSideSpacing

public int getDashSideSpacing()

setDashSideSpacing

public void setDashSideSpacing(int dashSideSpacing)

getDropText

public java.lang.String getDropText()

setDropText

public void setDropText(java.lang.String dropText)

setShowDefaultDropText

public void setShowDefaultDropText(boolean defaultDropText)

isDropTextVisible

public boolean isDropTextVisible()

createFilePlate

protected WebFilePlate createFilePlate(java.io.File file)

paintComponent

protected void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

addFileSelectionListener

public void addFileSelectionListener(FilesSelectionListener listener)

removeFileSelectionListener

public void removeFileSelectionListener(FilesSelectionListener listener)

fireSelectionChanged

protected void fireSelectionChanged()

setLanguage

public void setLanguage(java.lang.String key,
                        java.lang.Object... data)
Registers component in LanguageManager under specified key and with specified formatting data.

Specified by:
setLanguage in interface LanguageMethods
Parameters:
key - language record key
data - formatting data

updateLanguage

public void updateLanguage(java.lang.Object... data)
Updates component language and formatting data.

Specified by:
updateLanguage in interface LanguageMethods
Parameters:
data - new formatting data

updateLanguage

public void updateLanguage(java.lang.String key,
                           java.lang.Object... data)
Changes component language key and updates its language and formatting data.

Specified by:
updateLanguage in interface LanguageMethods
Parameters:
key - new language key
data - new formatting data

removeLanguage

public void removeLanguage()
Unregisters component from LanguageManager.

Specified by:
removeLanguage in interface LanguageMethods

isLanguageSet

public boolean isLanguageSet()
Returns whether this component registered in LanguageManager or not.

Specified by:
isLanguageSet in interface LanguageMethods
Returns:
true if component is registered in LanguageManager, false otherwise

setLanguageUpdater

public void setLanguageUpdater(LanguageUpdater updater)
Registers custom language updater for this component.

Specified by:
setLanguageUpdater in interface LanguageMethods
Parameters:
updater - component language updater

removeLanguageUpdater

public void removeLanguageUpdater()
Unregisters any custom language updater set for this component.

Specified by:
removeLanguageUpdater in interface LanguageMethods