Class AbstractFileViewPanel<T>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.pushingpixels.flamingo.api.common.JCommandButtonPanel
-
- org.pushingpixels.flamingo.api.common.AbstractFileViewPanel<T>
-
- Type Parameters:
T
- Type tag.
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
public abstract class AbstractFileViewPanel<T> extends JCommandButtonPanel
Panel that hosts file-related command buttons with progress indication and cancellation capabilities.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractFileViewPanel.Leaf
Information on the specific file.-
Nested classes/interfaces inherited from class org.pushingpixels.flamingo.api.common.JCommandButtonPanel
JCommandButtonPanel.LayoutKind
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,JCommandButton>
buttonMap
Maps from file name to the buttons.protected Set<JCommandButton>
loadedSet
Contains the buttons with completely loaded images.protected ProgressListener
progressListener
Progress listener to report back on loaded images.-
Fields inherited from class org.pushingpixels.flamingo.api.common.JCommandButtonPanel
buttonGroup, buttons, currDimension, currState, groupTitles, isSingleSelectionMode, layoutKind, maxButtonColumns, maxButtonRows, toShowGroupLabels, uiClassID
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description AbstractFileViewPanel(int startingDimension, ProgressListener progressListener)
Creates a new panel.AbstractFileViewPanel(CommandButtonDisplayState startingState, ProgressListener progressListener)
Creates a new panel.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cancelMainWorker()
Cancels the pending processing.protected abstract void
configureCommandButton(AbstractFileViewPanel.Leaf leaf, JCommandButton button, ResizableIcon icon)
Configures the specified command button.Map<String,JCommandButton>
getButtonMap()
Returns the button map.protected abstract InputStream
getLeafContent(T leaf)
Returns the input stream with the file contents.int
getLoadedIconCount()
Returns the number of loaded icons.protected abstract ResizableIcon
getResizableIcon(AbstractFileViewPanel.Leaf leaf, InputStream stream, CommandButtonDisplayState state, Dimension dimension)
Returns the icon for the specified parameters.void
setFolder(List<StringValuePair<T>> leafs)
Sets the current entries to show.protected abstract boolean
toShowFile(StringValuePair<T> pair)
Returns indication whether the specified file should be shown on this panel.-
Methods inherited from class org.pushingpixels.flamingo.api.common.JCommandButtonPanel
addButtonGroup, addButtonGroup, addButtonToGroup, addButtonToGroup, addButtonToLastGroup, addChangeListener, fireStateChanged, getButtonCount, getGroupButtons, getGroupCount, getGroupTitleAt, getLayoutKind, getMaxButtonColumns, getMaxButtonRows, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedButton, getUIClassID, isToShowGroupLabels, removeAllGroups, removeButtonFromGroup, removeButtonGroup, removeChangeListener, setIconDimension, setIconState, setLayoutKind, setMaxButtonColumns, setMaxButtonRows, setSingleSelectionMode, setToShowGroupLabels, updateUI
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
buttonMap
protected Map<String,JCommandButton> buttonMap
Maps from file name to the buttons.
-
progressListener
protected ProgressListener progressListener
Progress listener to report back on loaded images.
-
loadedSet
protected Set<JCommandButton> loadedSet
Contains the buttons with completely loaded images.
-
-
Constructor Detail
-
AbstractFileViewPanel
public AbstractFileViewPanel(int startingDimension, ProgressListener progressListener)
Creates a new panel.- Parameters:
startingDimension
- Initial dimension for icons.progressListener
- Progress listener to report back on loaded icons.
-
AbstractFileViewPanel
public AbstractFileViewPanel(CommandButtonDisplayState startingState, ProgressListener progressListener)
Creates a new panel.- Parameters:
startingState
- Initial state for icons.progressListener
- Progress listener to report back on loaded icons.
-
-
Method Detail
-
setFolder
public void setFolder(List<StringValuePair<T>> leafs)
Sets the current entries to show. The current contents of the panel are discarded. For each matching entry determined by thetoShowFile(StringValuePair)
call, a newJCommandButton
hosting an the matching implementation ofResizableIcon
is added to the panel.- Parameters:
leafs
- Information on the entries to show in the panel.
-
getLoadedIconCount
public int getLoadedIconCount()
Returns the number of loaded icons.- Returns:
- The number of loaded icons.
-
cancelMainWorker
public void cancelMainWorker()
Cancels the pending processing.
-
getButtonMap
public Map<String,JCommandButton> getButtonMap()
Returns the button map.- Returns:
- Unmodifiable view on the button map.
-
toShowFile
protected abstract boolean toShowFile(StringValuePair<T> pair)
Returns indication whether the specified file should be shown on this panel.- Parameters:
pair
- Information on the file.- Returns:
true
if the specified file should be shown on this panel,false
otherwise.
-
getResizableIcon
protected abstract ResizableIcon getResizableIcon(AbstractFileViewPanel.Leaf leaf, InputStream stream, CommandButtonDisplayState state, Dimension dimension)
Returns the icon for the specified parameters.- Parameters:
leaf
- Information on the file.stream
- Input stream with the file contents.state
- Icon state.dimension
- Icon dimension.- Returns:
- File icon.
-
configureCommandButton
protected abstract void configureCommandButton(AbstractFileViewPanel.Leaf leaf, JCommandButton button, ResizableIcon icon)
Configures the specified command button. Can be used to wire additional behavior, such as tooltips or action listeners if the specific view panel implementation requires it.- Parameters:
leaf
- Information on the file "behind" the button.button
- Button to configure.icon
- Button icon.
-
getLeafContent
protected abstract InputStream getLeafContent(T leaf)
Returns the input stream with the file contents.- Parameters:
leaf
- Leaf (file behind a command button on this panel).- Returns:
- Input stream with the file contents.
-
-