Package org.astrogrid.samp.gui
Class IconBox
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.astrogrid.samp.gui.IconBox
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable
class IconBox extends javax.swing.JComponentComponent which displays the contents of a ListModel as icons. Custom icon and tooltip generation are supported by use of a separate renderer object.- Since:
- 26 Nov 2008
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceIconBox.CellRendererDefines how list model elements will be rendered as icons and tooltips.private classIconBox.DefaultRendererDefault renderer.private static classIconBox.EntryConvenience struct-type class which aggregates an icon and a tooltip.-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.ColordisabledBg_private static javax.swing.ListModelEMPTY_LIST_MODELprivate java.awt.ColorenabledBg_private java.util.ListentryList_private intgap_private java.awt.DimensionmaxSize_private java.awt.DimensionminSize_private javax.swing.ListModelmodel_private javax.swing.event.ListDataListenermodelListener_private java.awt.DimensionprefSize_private IconBox.CellRendererrenderer_private booleanreversed_private booleantrailing_private inttransSize_private booleanvertical_-
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
-
-
Constructor Summary
Constructors Constructor Description IconBox(int transSize)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static javax.swing.ListModelcreateEmptyListModel()Constructs an immutable list model with no content.private IconBox.EntrycreateEntry(int index)Constructs an Entry object from an object contained in the ListModel, using the currently installed renderer.intgetIndexAt(java.awt.Point point)Returns the index of the list model element whose icon is displayed at a given point in this component.java.awt.DimensiongetMaximumSize()java.awt.DimensiongetMinimumSize()javax.swing.ListModelgetModel()Returns the list model used by this component.java.awt.DimensiongetPreferredSize()IconBox.CellRenderergetRenderer()Returns the object which turns list model contents into display things.booleangetReversed()Returns the first-to-last ordering of the icons in this component.java.lang.StringgetToolTipText(java.awt.event.MouseEvent evt)booleangetTrailing()Returns the alignment of the icons in this component.intgetTransverseSize()Returns the transverse dimension in pixels of this box.booleangetVertical()Returns whether icons will be lined up horizontally or vertically.protected voidpaintComponent(java.awt.Graphics g)private voidrefreshState()Refreshes the list-related state from scratch.voidsetEnabled(boolean enabled)voidsetMaximumSize(java.awt.Dimension maxSize)voidsetMinimumSize(java.awt.Dimension minSize)voidsetModel(javax.swing.ListModel model)Sets the list model for use with this component.voidsetPreferredSize(java.awt.Dimension prefSize)voidsetRenderer(IconBox.CellRenderer renderer)Sets the object which is used to turn list model contents into the icons and tooltips displayed by this component.voidsetReversed(boolean reversed)Sets the first-to-last ordering of the icons in this component.voidsetTrailing(boolean trailing)Sets the alignment of the icons in this component.voidsetTransverseSize(int transSize)Sets the transverse dimension in pixels of this box.voidsetVertical(boolean vertical)Sets whether icons will be lined up in a horizontal or vertical line.-
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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
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, getAccessibleContext, 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
-
entryList_
private final java.util.List entryList_
-
modelListener_
private final javax.swing.event.ListDataListener modelListener_
-
enabledBg_
private final java.awt.Color enabledBg_
-
disabledBg_
private final java.awt.Color disabledBg_
-
vertical_
private boolean vertical_
-
trailing_
private boolean trailing_
-
reversed_
private boolean reversed_
-
transSize_
private int transSize_
-
gap_
private int gap_
-
renderer_
private IconBox.CellRenderer renderer_
-
model_
private javax.swing.ListModel model_
-
minSize_
private java.awt.Dimension minSize_
-
maxSize_
private java.awt.Dimension maxSize_
-
prefSize_
private java.awt.Dimension prefSize_
-
EMPTY_LIST_MODEL
private static final javax.swing.ListModel EMPTY_LIST_MODEL
-
-
Method Detail
-
setVertical
public void setVertical(boolean vertical)
Sets whether icons will be lined up in a horizontal or vertical line.- Parameters:
vertical- true for vertical run, false for horizontal
-
getVertical
public boolean getVertical()
Returns whether icons will be lined up horizontally or vertically.- Returns:
- false for hormizontal run, true for vertical
-
setTrailing
public void setTrailing(boolean trailing)
Sets the alignment of the icons in this component.- Parameters:
trailing- false for left/top, true for right/bottom alignment
-
getTrailing
public boolean getTrailing()
Returns the alignment of the icons in this component.- Returns:
- false for left/top, true for right/bottom alignment
-
setReversed
public void setReversed(boolean reversed)
Sets the first-to-last ordering of the icons in this component.- Parameters:
reversed- false for increasing to right/bottom, true for increasig to left/top
-
getReversed
public boolean getReversed()
Returns the first-to-last ordering of the icons in this component.- Returns:
- false for increasing to right/bottom, true for increasig to left/top
-
setEnabled
public void setEnabled(boolean enabled)
- Overrides:
setEnabledin classjavax.swing.JComponent
-
refreshState
private void refreshState()
Refreshes the list-related state from scratch.
-
createEntry
private IconBox.Entry createEntry(int index)
Constructs an Entry object from an object contained in the ListModel, using the currently installed renderer.- Parameters:
index- index of entry in list- Returns:
- new entry
-
setModel
public void setModel(javax.swing.ListModel model)
Sets the list model for use with this component. Objects will be rendered as icons by using the currently intalled renderer.- Parameters:
model- list model
-
getModel
public javax.swing.ListModel getModel()
Returns the list model used by this component.- Returns:
- list model
-
setTransverseSize
public void setTransverseSize(int transSize)
Sets the transverse dimension in pixels of this box.- Parameters:
transSize- pixel count across list run
-
getTransverseSize
public int getTransverseSize()
Returns the transverse dimension in pixels of this box.- Returns:
- pixel count across run
-
setRenderer
public void setRenderer(IconBox.CellRenderer renderer)
Sets the object which is used to turn list model contents into the icons and tooltips displayed by this component.- Parameters:
renderer- new renderer
-
getRenderer
public IconBox.CellRenderer getRenderer()
Returns the object which turns list model contents into display things. The default value tries to cast to Icon and uses toString for tooltip.- Returns:
- current renderer
-
setPreferredSize
public void setPreferredSize(java.awt.Dimension prefSize)
- Overrides:
setPreferredSizein classjavax.swing.JComponent
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
- Overrides:
getPreferredSizein classjavax.swing.JComponent
-
setMinimumSize
public void setMinimumSize(java.awt.Dimension minSize)
- Overrides:
setMinimumSizein classjavax.swing.JComponent
-
getMinimumSize
public java.awt.Dimension getMinimumSize()
- Overrides:
getMinimumSizein classjavax.swing.JComponent
-
setMaximumSize
public void setMaximumSize(java.awt.Dimension maxSize)
- Overrides:
setMaximumSizein classjavax.swing.JComponent
-
getMaximumSize
public java.awt.Dimension getMaximumSize()
- Overrides:
getMaximumSizein classjavax.swing.JComponent
-
getIndexAt
public int getIndexAt(java.awt.Point point)
Returns the index of the list model element whose icon is displayed at a given point in this component.- Parameters:
point- point to interrogate- Returns:
- list model index, or -1 if not found
-
paintComponent
protected void paintComponent(java.awt.Graphics g)
- Overrides:
paintComponentin classjavax.swing.JComponent
-
getToolTipText
public java.lang.String getToolTipText(java.awt.event.MouseEvent evt)
- Overrides:
getToolTipTextin classjavax.swing.JComponent
-
createEmptyListModel
private static javax.swing.ListModel createEmptyListModel()
Constructs an immutable list model with no content.- Returns:
- dummy list model
-
-