Package com.gargoylesoftware.base.gui
Class DelayedComponentLoaderPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.gargoylesoftware.base.gui.DelayedComponentLoaderPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
public class DelayedComponentLoaderPanel extends javax.swing.JComponent
A panel that supports delayed loading of its contents. This is useful when the component that will fill this panel will take a long time to load. A "please wait" message will be displayed while the component is being loaded. When loading is complete, the new component will be made a child of this panel so that it can become visible.The following sample will create a delayed loader with a default "please wait" message.
final DelayedComponentLoaderPanel panel = new DelayedComponentLoaderPanel(); panel.setComponentLoader( new DefaultComponentLoader(MyExpensiveComponent.class) );
This sample has a custom message.final JLabel label = new JLabel("My custom wait message"); final DelayedComponentLoaderPanel panel = new DelayedComponentLoaderPanel(label); panel.setComponentLoader( new DefaultComponentLoader(MyExpensiveComponent.class) );
- Version:
- $Revision: 1.6 $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set
listeners_
private static int
LOADER_FINISHED
private static int
LOADER_STARTED
private static long
serialVersionUID
private java.awt.Component
waitingComponent_
-
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 DelayedComponentLoaderPanel()
Create a new panel that will display a simple "please wait" message when it is loading.DelayedComponentLoaderPanel(java.awt.Component waitingComponent)
Create a new panel that will display the specified waitingComponent while it is loading.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDelayedComponentLoaderListener(DelayedComponentLoaderListener listener)
Add the specified listener.protected void
assertNotNull(java.lang.String fieldName, java.lang.Object object)
Throw an exception if the specified object is nullprivate void
fireComponentLoadingEvent(int action, ComponentLoader loader, java.awt.Component loadedComponent)
Fire the component loading event.void
removeDelayedComponentLoaderListener(DelayedComponentLoaderListener listener)
Remove the specified listener.private void
replaceComponent(java.awt.Component component)
Replace the current child with the specified componentvoid
setComponentLoader(ComponentLoader loader)
Set the new component loader.-
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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, 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
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
LOADER_STARTED
private static final int LOADER_STARTED
- See Also:
- Constant Field Values
-
LOADER_FINISHED
private static final int LOADER_FINISHED
- See Also:
- Constant Field Values
-
listeners_
private java.util.Set listeners_
-
waitingComponent_
private java.awt.Component waitingComponent_
-
-
Constructor Detail
-
DelayedComponentLoaderPanel
public DelayedComponentLoaderPanel()
Create a new panel that will display a simple "please wait" message when it is loading.
-
DelayedComponentLoaderPanel
public DelayedComponentLoaderPanel(java.awt.Component waitingComponent)
Create a new panel that will display the specified waitingComponent while it is loading.- Parameters:
waitingComponent
- The component to display while loading is in progress.
-
-
Method Detail
-
setComponentLoader
public void setComponentLoader(ComponentLoader loader)
Set the new component loader. The waiting component will be displayed immediately and component loading will start on a background thread. If the new loader is null then no loading will take place and the waiting component will be displayed indefinitely- Parameters:
loader
- The new component loader.
-
replaceComponent
private void replaceComponent(java.awt.Component component)
Replace the current child with the specified component- Parameters:
component
- The new component.
-
addDelayedComponentLoaderListener
public void addDelayedComponentLoaderListener(DelayedComponentLoaderListener listener)
Add the specified listener.- Parameters:
listener
- The new listener
-
removeDelayedComponentLoaderListener
public void removeDelayedComponentLoaderListener(DelayedComponentLoaderListener listener)
Remove the specified listener.- Parameters:
listener
- the listener to remove.
-
fireComponentLoadingEvent
private void fireComponentLoadingEvent(int action, ComponentLoader loader, java.awt.Component loadedComponent)
Fire the component loading event.- Parameters:
action
- The action idloader
- The loaderloadedComponent
- The component that was just loaded.
-
assertNotNull
protected final void assertNotNull(java.lang.String fieldName, java.lang.Object object)
Throw an exception if the specified object is null- Parameters:
fieldName
- The name of the paremeter we are checkingobject
- The value of the parameter we are checking
-
-