com.alee.extended.list
Class WebFileListCellRenderer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by com.alee.laf.label.WebLabel
                      extended by com.alee.laf.list.WebListElement
                          extended by com.alee.laf.list.WebListCellRenderer
                              extended by com.alee.extended.list.WebFileListCellRenderer
All Implemented Interfaces:
LanguageMethods, Styleable, FontMethods<WebLabel>, SizeMethods<WebLabel>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.ListCellRenderer, javax.swing.SwingConstants

public class WebFileListCellRenderer
extends WebListCellRenderer

Custom list cell renderer for WebFileList component. This renderer is also able to generate image thumbnails for image file elements.

Author:
Mikle Garin
See Also:
Serialized Form

Nested Class Summary
protected  class WebFileListCellRenderer.FileCellLayout
          Custom layout for file list cell element.
 
Nested classes/interfaces inherited from class com.alee.laf.list.WebListCellRenderer
WebListCellRenderer.UIResource
 
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
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  WebLabel descriptionLabel
          File description label.
protected  java.util.concurrent.ExecutorService executorService
          Executor service for thumbnails generation.
protected  WebFileList fileList
          File list in which this list cell renderer is used.
protected static int gap
          Gap between renderer elements.
protected static java.awt.Insets iconCellMargin
           
protected static java.awt.Dimension iconCellSize
           
protected  WebLabel iconLabel
          Thumbnail icon label.
protected static int imageSide
          Image side length.
protected  WebLabel nameLabel
          File name label.
protected  WebLabel sizeLabel
          File size label.
protected  java.lang.Object thumbnailsLock
          Thumbnails queue lock object.
protected static int thumbSize
          Image thumbnails size.
protected static java.awt.Insets tileCellMargin
          Constant cell margins.
protected static java.awt.Dimension tileCellSize
          Constant cell sizes.
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WebFileListCellRenderer(WebFileList fileList)
          Constructs cell renderer for the specified file list.
 
Method Summary
 java.awt.Rectangle getDescriptionBounds()
          Returns description bounds for list cell.
 javax.swing.JLabel getDescriptionLabel()
          Returns file description label.
 javax.swing.JLabel getIconLabel()
          Returns thumbnail icon label.
 java.awt.Component getListCellRendererComponent(javax.swing.JList list, java.lang.Object value, int index, boolean isSelected, boolean cellHasFocus)
          Returns list cell renderer component.
 javax.swing.JLabel getNameLabel()
          Returns file name label.
 javax.swing.JLabel getSizeLabel()
          Returns file size label.
protected  boolean isTilesView()
          Returns whether list is currently displaying tiles or not.
protected  void queueThumbnailLoad(FileElement element, boolean disabled)
          Adds specified element into thumbnails queue.
 void updateFilesView()
          Updates renderer elements view.
 
Methods inherited from class com.alee.laf.label.WebLabel
changeFontSize, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, createTranslatedLabel, getFontName, getFontSize, getMargin, getMinimumHeight, getMinimumWidth, getPainter, getPreferredHeight, getPreferredSize, getPreferredWidth, getShadeColor, getStyleId, getTransparency, getWebUI, isBoldFont, isDrawShade, isItalicFont, isLanguageSet, isPlainFont, removeLanguage, removeLanguageUpdater, setBoldFont, setBoldFont, setDrawShade, setFontName, setFontSize, setFontSizeAndStyle, setFontSizeAndStyle, setFontStyle, setFontStyle, setItalicFont, setItalicFont, setLanguage, setLanguageUpdater, setMargin, setMargin, setMargin, setMinimumHeight, setMinimumWidth, setPainter, setPlainFont, setPlainFont, setPreferredHeight, setPreferredWidth, setShadeColor, setStyleId, setTransparency, updateLanguage, updateLanguage, updateUI
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
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, paintComponent, 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, 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

tileCellSize

protected static final java.awt.Dimension tileCellSize
Constant cell sizes.


iconCellSize

protected static final java.awt.Dimension iconCellSize

tileCellMargin

protected static final java.awt.Insets tileCellMargin
Constant cell margins.


iconCellMargin

protected static final java.awt.Insets iconCellMargin

thumbSize

protected static final int thumbSize
Image thumbnails size.

See Also:
Constant Field Values

imageSide

protected static final int imageSide
Image side length.

See Also:
Constant Field Values

gap

protected static final int gap
Gap between renderer elements.

See Also:
Constant Field Values

fileList

protected WebFileList fileList
File list in which this list cell renderer is used.


iconLabel

protected WebLabel iconLabel
Thumbnail icon label.


nameLabel

protected WebLabel nameLabel
File name label.


sizeLabel

protected WebLabel sizeLabel
File size label.


descriptionLabel

protected WebLabel descriptionLabel
File description label.


thumbnailsLock

protected final java.lang.Object thumbnailsLock
Thumbnails queue lock object.


executorService

protected java.util.concurrent.ExecutorService executorService
Executor service for thumbnails generation.

Constructor Detail

WebFileListCellRenderer

public WebFileListCellRenderer(WebFileList fileList)
Constructs cell renderer for the specified file list.

Parameters:
fileList - file list in which this cell renderer is used
Method Detail

getDescriptionBounds

public java.awt.Rectangle getDescriptionBounds()
Returns description bounds for list cell.

Returns:
description bounds for list cell

updateFilesView

public void updateFilesView()
Updates renderer elements view.


getIconLabel

public javax.swing.JLabel getIconLabel()
Returns thumbnail icon label.

Returns:
thumbnail icon label

getNameLabel

public javax.swing.JLabel getNameLabel()
Returns file name label.

Returns:
file name label

getSizeLabel

public javax.swing.JLabel getSizeLabel()
Returns file size label.

Returns:
file size label

getDescriptionLabel

public javax.swing.JLabel getDescriptionLabel()
Returns file description label.

Returns:
file description label

getListCellRendererComponent

public java.awt.Component getListCellRendererComponent(javax.swing.JList list,
                                                       java.lang.Object value,
                                                       int index,
                                                       boolean isSelected,
                                                       boolean cellHasFocus)
Returns list cell renderer component.

Specified by:
getListCellRendererComponent in interface javax.swing.ListCellRenderer
Overrides:
getListCellRendererComponent in class WebListCellRenderer
Parameters:
list - tree
value - cell value
index - cell index
isSelected - whether cell is selected or not
cellHasFocus - whether cell has focus or not
Returns:
cell renderer component

isTilesView

protected boolean isTilesView()
Returns whether list is currently displaying tiles or not.

Returns:
true if list is currently displaying tiles, false otherwise

queueThumbnailLoad

protected void queueThumbnailLoad(FileElement element,
                                  boolean disabled)
Adds specified element into thumbnails queue.

Parameters:
element - element to add