de.schlichtherle.swing
Class EnhancedPanel

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 de.schlichtherle.swing.EnhancedPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
AesKeyStrengthPanel, CreateKeyPanel, OpenKeyPanel

public class EnhancedPanel
extends JPanel

This class adds methods to fire PanelEvents.

Note that in TrueZIP 6.1, this class has been refactored to coalesce multiple panel events for the same cause by posting them to the AWT's Event Queue, from which the coalesced event would then be dispatched by AWT's Event Dispatching Thread.

However, since TrueZIP 6.4, these events are fired synchronously again, whereby it is ensured that only a single event is fired for each cause.

Since:
TrueZIP 5.1
Version:
TrueZIP 6.7
Author:
Christian Schlichtherle
See Also:
Serialized Form

Nested Class Summary
 
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 inherited from class javax.swing.JComponent
accessibleContext, 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
EnhancedPanel()
          Creates a new EnhancedPanel with a double buffer and a flow layout.
EnhancedPanel(boolean isDoubleBuffered)
          Creates a new EnhancedPanel with FlowLayout and the specified buffering strategy.
EnhancedPanel(LayoutManager layout)
          Create a new buffered EnhancedPanel with the specified layout manager.
EnhancedPanel(LayoutManager layout, boolean isDoubleBuffered)
          Creates a new EnhancedPanel with the specified layout manager and buffering strategy.
 
Method Summary
 void addPanelListener(PanelListener listener)
          Adds the listener to the list of receivers for PanelEvents.
protected  AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent)
          Deprecated. See EnhancedPanel.
protected  void fireAncestorWindowHidden(PanelEvent event)
          Deprecated. You should not call this method directly.
protected  void fireAncestorWindowShown(PanelEvent event)
          Deprecated. You should not call this method directly.
 Window getAncestorWindow()
          Returns the ancestor Window of this Panel or null if the component is not (yet) placed in a Window.
 EventListener[] getListeners(Class listenerType)
           
 PanelListener[] getPanelListeners()
          Returns an array of all the panel listeners registered on this component.
protected  void processEvent(AWTEvent event)
          Deprecated. See EnhancedPanel.
protected  void processPanelEvent(PanelEvent event)
          Calls fireAncestorWindowShown(de.schlichtherle.swing.event.PanelEvent) or fireAncestorWindowHidden(de.schlichtherle.swing.event.PanelEvent), depending on the ID of the given event.
 void removePanelListener(PanelListener listener)
          Removes the listener from the list of receivers for PanelEvents.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, 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, 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, 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
 

Constructor Detail

EnhancedPanel

public EnhancedPanel(LayoutManager layout,
                     boolean isDoubleBuffered)
Creates a new EnhancedPanel with the specified layout manager and buffering strategy.

Parameters:
layout - The LayoutManager to use.
isDoubleBuffered - A boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates.

EnhancedPanel

public EnhancedPanel(LayoutManager layout)
Create a new buffered EnhancedPanel with the specified layout manager.

Parameters:
layout - The LayoutManager to use.

EnhancedPanel

public EnhancedPanel(boolean isDoubleBuffered)
Creates a new EnhancedPanel with FlowLayout and the specified buffering strategy. If isDoubleBuffered is true, the EnhancedPanel will use a double buffer.

Parameters:
isDoubleBuffered - A boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates.

EnhancedPanel

public EnhancedPanel()
Creates a new EnhancedPanel with a double buffer and a flow layout.

Method Detail

coalesceEvents

protected AWTEvent coalesceEvents(AWTEvent existingEvent,
                                  AWTEvent newEvent)
Deprecated. See EnhancedPanel.

Overridden in order to prevent this component to deliver a PanelEvent multiple times from the same source.

Overrides:
coalesceEvents in class Component

processEvent

protected void processEvent(AWTEvent event)
Deprecated. See EnhancedPanel.

Overridden in order to process PanelEvents.

Overrides:
processEvent in class Container

processPanelEvent

protected void processPanelEvent(PanelEvent event)
Calls fireAncestorWindowShown(de.schlichtherle.swing.event.PanelEvent) or fireAncestorWindowHidden(de.schlichtherle.swing.event.PanelEvent), depending on the ID of the given event.


getAncestorWindow

public Window getAncestorWindow()
Returns the ancestor Window of this Panel or null if the component is not (yet) placed in a Window.


addPanelListener

public void addPanelListener(PanelListener listener)
Adds the listener to the list of receivers for PanelEvents.

Note that the listener doesn't get serialized with this component!

Parameters:
listener - The listener to add. If this method is called n times with the same listener, any events generated will be delivered to this listener n times.
Throws:
NullPointerException - If listener is null.

removePanelListener

public void removePanelListener(PanelListener listener)
Removes the listener from the list of receivers for PanelEvents.

Parameters:
listener - The listener to remove. If this listener has been added multiple times, it is removed from the list only once.
Throws:
NullPointerException - If listener is null.

getPanelListeners

public PanelListener[] getPanelListeners()
Returns an array of all the panel listeners registered on this component.

Returns:
All of this panel's PanelListeners or an empty array if no panel listeners are currently registered.
See Also:
addPanelListener(de.schlichtherle.swing.event.PanelListener), removePanelListener(de.schlichtherle.swing.event.PanelListener)

getListeners

public EventListener[] getListeners(Class listenerType)
Overrides:
getListeners in class JComponent

fireAncestorWindowShown

protected void fireAncestorWindowShown(PanelEvent event)
Deprecated. You should not call this method directly.

Notifies all registered listeners about the event. This is a synchronous operation.

Parameters:
event - The event to be fired.

fireAncestorWindowHidden

protected void fireAncestorWindowHidden(PanelEvent event)
Deprecated. You should not call this method directly.

Notifies all registered listeners about the event. This is a synchronous operation.

Parameters:
event - The event to be fired.