com.alee.managers.popup
Class WebPopup

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 com.alee.laf.panel.WebPanel
                      extended by com.alee.managers.popup.WebPopup
All Implemented Interfaces:
PartialDecoration, LanguageContainerMethods, ShapeProvider, Styleable, SizeMethods<WebPanel>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
WebButtonPopup, WebNotificationPopup

public class WebPopup
extends WebPanel

This is base popup class which offers basic popups functionality and contains all features needed to create great-looking popups within the window root pane bounds.

Author:
Mikle Garin
See Also:
PopupManager, PopupLayer, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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  boolean animated
           
protected  boolean closeOnFocusLoss
           
protected  java.awt.Component defaultFocusComponent
           
protected  float fade
           
protected static int fadeFps
           
protected  FadeStateType fadeStateType
           
protected static long fadeTime
           
protected  WebTimer fadeTimer
           
protected  java.util.List<java.awt.Component> focusableChilds
           
protected  boolean focused
           
protected  DefaultFocusTracker focusTracker
           
protected  javax.swing.event.AncestorListener lastAncestorListener
           
protected  java.awt.Component lastComponent
           
protected  java.awt.event.ComponentListener lastComponentListener
           
protected  java.util.List<PopupListener> popupListeners
           
protected  boolean requestFocusOnShow
           
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WebPopup()
           
WebPopup(Painter stylePainter)
           
WebPopup(PopupStyle popupStyle)
           
 
Method Summary
 void addFocusableChild(java.awt.Component child)
           
 void addPopupListener(PopupListener listener)
          Popup listeners
protected  void clearLocationListeners()
           
 boolean contains(int x, int y)
          
 void firePopupClosed()
           
 void firePopupOpened()
           
 void firePopupWillBeClosed()
           
 void firePopupWillBeOpened()
           
protected  void focusChanged(boolean focused)
          Called when this popup recieve or lose focus.
 java.awt.Component getDefaultFocusComponent()
           
 java.util.List<java.awt.Component> getFocusableChilds()
          Focusable components which will not force popup to close
 PopupLayer getPopupLayer()
          Returns popup layer this WebPopup is added into.
 void hidePopup()
          Popup hide methods
protected  void hidePopupImpl()
           
protected  void initializePopup()
          Initializes various popup settings.
 boolean isAnimated()
          Popup settings
 boolean isChildFocused()
           
 boolean isCloseOnFocusLoss()
           
 boolean isRequestFocusOnShow()
           
 void packPopup()
          Popup pack method
protected  void paintComponent(java.awt.Graphics g)
          
 void removeFocusableChild(java.awt.Component child)
           
 void removePopupListener(PopupListener listener)
           
 void setAnimated(boolean animated)
           
 void setCloseOnFocusLoss(boolean closeOnFocusLoss)
           
 void setDefaultFocusComponent(java.awt.Component defaultFocusComponent)
           
 void setPopupStyle(PopupStyle popupStyle)
          Popup styling
 void setRequestFocusOnShow(boolean requestFocusOnShow)
           
 void showAsPopupMenu(java.awt.Component component)
          Popup display methods
 void showPopup(java.awt.Component component)
           
 void showPopup(java.awt.Component component, DataProvider<java.awt.Rectangle> boundsProvider)
           
 void showPopup(java.awt.Component component, int x, int y)
           
 void showPopup(java.awt.Component component, int x, int y, int width, int height)
           
 void showPopup(java.awt.Component component, java.awt.Point location)
           
 void showPopup(java.awt.Component component, java.awt.Rectangle bounds)
           
 void showPopupAsModal(java.awt.Component component)
          Modal popup display methods
 void showPopupAsModal(java.awt.Component component, boolean hfill, boolean vfill)
           
 void updateBounds()
           
protected  void updateComponentAncestorListener(java.awt.Component component, int x, int y, int width, int height)
           
protected  void updateLocationListeners(java.awt.Component component, DataProvider<java.awt.Rectangle> boundsProvider)
           
protected  void updatePopupBounds(java.awt.Component component, int x, int y, int width, int height)
           
protected  void updatePopupBounds(java.awt.Component component, java.awt.Rectangle bounds)
           
 
Methods inherited from class com.alee.laf.panel.WebPanel
add, add, add, add, add, add, getBorderColor, getBorderStroke, getDisabledBorderColor, getFirstComponent, getLanguageContainerKey, getLastComponent, getMargin, getMinimumHeight, getMinimumWidth, getPainter, getPreferredHeight, getPreferredSize, getPreferredWidth, getRound, getShadeTransparency, getShadeWidth, getStyleId, getWebUI, isPaintBackground, isPaintBottom, isPaintBottomLine, isPaintFocus, isPaintLeft, isPaintLeftLine, isPaintRight, isPaintRightLine, isPaintTop, isPaintTopLine, isUndecorated, isWebColoredBackground, provideShape, removeLanguageContainerKey, setBorderColor, setBorderStroke, setDisabledBorderColor, setLanguageContainerKey, setMargin, setMargin, setMargin, setMinimumHeight, setMinimumWidth, setPaintBackground, setPaintBottom, setPaintBottomLine, setPainter, setPaintFocus, setPaintLeft, setPaintLeftLine, setPaintRight, setPaintRightLine, setPaintSideLines, setPaintSides, setPaintTop, setPaintTopLine, setPreferredHeight, setPreferredWidth, setRound, setShadeTransparency, setShadeWidth, setStyleId, setUndecorated, setWebColoredBackground, updateUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, 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, 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, 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
 

Field Detail

popupListeners

protected java.util.List<PopupListener> popupListeners

fadeFps

protected static final int fadeFps
See Also:
Constant Field Values

fadeTime

protected static final long fadeTime
See Also:
Constant Field Values

animated

protected boolean animated

closeOnFocusLoss

protected boolean closeOnFocusLoss

requestFocusOnShow

protected boolean requestFocusOnShow

defaultFocusComponent

protected java.awt.Component defaultFocusComponent

focusableChilds

protected java.util.List<java.awt.Component> focusableChilds

lastComponent

protected java.awt.Component lastComponent

lastComponentListener

protected java.awt.event.ComponentListener lastComponentListener

lastAncestorListener

protected javax.swing.event.AncestorListener lastAncestorListener

focused

protected boolean focused

fadeStateType

protected FadeStateType fadeStateType

fade

protected float fade

fadeTimer

protected WebTimer fadeTimer

focusTracker

protected DefaultFocusTracker focusTracker
Constructor Detail

WebPopup

public WebPopup()

WebPopup

public WebPopup(PopupStyle popupStyle)

WebPopup

public WebPopup(Painter stylePainter)
Method Detail

initializePopup

protected void initializePopup()
Initializes various popup settings.


focusChanged

protected void focusChanged(boolean focused)
Called when this popup recieve or lose focus. You can your own behavior for focus change by overriding this method.

Parameters:
focused - whether popup has focus or not

getPopupLayer

public PopupLayer getPopupLayer()
Returns popup layer this WebPopup is added into.

Returns:
popup layer this WebPopup is added into

setPopupStyle

public void setPopupStyle(PopupStyle popupStyle)
Popup styling


isAnimated

public boolean isAnimated()
Popup settings


setAnimated

public void setAnimated(boolean animated)

isCloseOnFocusLoss

public boolean isCloseOnFocusLoss()

setCloseOnFocusLoss

public void setCloseOnFocusLoss(boolean closeOnFocusLoss)

isRequestFocusOnShow

public boolean isRequestFocusOnShow()

setRequestFocusOnShow

public void setRequestFocusOnShow(boolean requestFocusOnShow)

getDefaultFocusComponent

public java.awt.Component getDefaultFocusComponent()

setDefaultFocusComponent

public void setDefaultFocusComponent(java.awt.Component defaultFocusComponent)

getFocusableChilds

public java.util.List<java.awt.Component> getFocusableChilds()
Focusable components which will not force popup to close


addFocusableChild

public void addFocusableChild(java.awt.Component child)

removeFocusableChild

public void removeFocusableChild(java.awt.Component child)

isChildFocused

public boolean isChildFocused()

showAsPopupMenu

public void showAsPopupMenu(java.awt.Component component)
Popup display methods


showPopup

public void showPopup(java.awt.Component component)

showPopup

public void showPopup(java.awt.Component component,
                      java.awt.Rectangle bounds)

showPopup

public void showPopup(java.awt.Component component,
                      int x,
                      int y,
                      int width,
                      int height)

showPopup

public void showPopup(java.awt.Component component,
                      java.awt.Point location)

showPopup

public void showPopup(java.awt.Component component,
                      int x,
                      int y)

showPopup

public void showPopup(java.awt.Component component,
                      DataProvider<java.awt.Rectangle> boundsProvider)

updatePopupBounds

protected void updatePopupBounds(java.awt.Component component,
                                 java.awt.Rectangle bounds)

updatePopupBounds

protected void updatePopupBounds(java.awt.Component component,
                                 int x,
                                 int y,
                                 int width,
                                 int height)

updateComponentAncestorListener

protected void updateComponentAncestorListener(java.awt.Component component,
                                               int x,
                                               int y,
                                               int width,
                                               int height)

updateLocationListeners

protected void updateLocationListeners(java.awt.Component component,
                                       DataProvider<java.awt.Rectangle> boundsProvider)

clearLocationListeners

protected void clearLocationListeners()

showPopupAsModal

public void showPopupAsModal(java.awt.Component component)
Modal popup display methods


showPopupAsModal

public void showPopupAsModal(java.awt.Component component,
                             boolean hfill,
                             boolean vfill)

hidePopup

public void hidePopup()
Popup hide methods


hidePopupImpl

protected void hidePopupImpl()

packPopup

public void packPopup()
Popup pack method


updateBounds

public void updateBounds()

contains

public boolean contains(int x,
                        int y)

Overrides:
contains in class javax.swing.JComponent

addPopupListener

public void addPopupListener(PopupListener listener)
Popup listeners


removePopupListener

public void removePopupListener(PopupListener listener)

firePopupWillBeOpened

public void firePopupWillBeOpened()

firePopupOpened

public void firePopupOpened()

firePopupWillBeClosed

public void firePopupWillBeClosed()

firePopupClosed

public void firePopupClosed()

paintComponent

protected void paintComponent(java.awt.Graphics g)

Overrides:
paintComponent in class javax.swing.JComponent