com.alee.utils.swing
Class WebHeavyWeightPopup

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.utils.swing.WebHeavyWeightPopup
All Implemented Interfaces:
PartialDecoration, LanguageContainerMethods, ShapeProvider, Styleable, SizeMethods<WebPanel>, SwingMethods, WindowMethods<javax.swing.JWindow>, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
WebDynamicMenu

public class WebHeavyWeightPopup
extends WebPanel
implements WindowMethods<javax.swing.JWindow>

Custom extension that makes use of Swing heavy-weight popup. It also provides same basic methods to manipulate popup window and its settings.

Author:
Mikle Garin
See Also:
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 closeOnOuterAction
          Whether should close popup on any action outside of this popup or not.
protected  GlobalFocusListener focusListener
          Custom global focus listener that closes popup.
protected  WindowFollowAdapter followAdapter
          Invoker follow adapter.
protected  boolean followInvoker
          Whether popup window should follow invoker's window or not.
protected  java.awt.Component invoker
          Invoker component.
protected  java.awt.Window invokerWindow
          Invoker component window.
protected  java.util.List<PopupListener> listeners
          Popup listeners.
protected  java.awt.event.AWTEventListener mouseListener
          Custom global mouse listener that closes popup.
protected  float opacity
          Popup window opacity.
protected  boolean opaque
          Whether popup window should be opaque or not.
protected  javax.swing.Popup popup
          Underlying Swing popup in which content is currently displayed.
protected  javax.swing.JWindow window
          Window in which popup content is currently displayed.
 
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
WebHeavyWeightPopup()
           
WebHeavyWeightPopup(java.awt.Component component)
           
WebHeavyWeightPopup(java.awt.LayoutManager layout)
           
WebHeavyWeightPopup(java.awt.LayoutManager layout, java.awt.Component... components)
           
WebHeavyWeightPopup(java.awt.LayoutManager layout, Painter painter)
           
WebHeavyWeightPopup(java.awt.LayoutManager layout, Painter painter, java.awt.Component... components)
           
WebHeavyWeightPopup(Painter painter)
           
WebHeavyWeightPopup(Painter painter, java.awt.Component component)
           
WebHeavyWeightPopup(java.lang.String styleId)
           
WebHeavyWeightPopup(java.lang.String styleId, java.awt.Component component)
           
WebHeavyWeightPopup(java.lang.String styleId, java.awt.LayoutManager layout)
           
 
Method Summary
 void addPopupListener(PopupListener listener)
           
 javax.swing.JWindow center()
          Centers window relative to screen center.
 javax.swing.JWindow center(java.awt.Component relativeTo)
          Centers window relative to the specified component center.
 javax.swing.JWindow center(java.awt.Component relativeTo, int width, int height)
          Changes window size and centers it relative to the specified component center.
 javax.swing.JWindow center(int width, int height)
          Changes window size and centers it relative to screen center.
 void firePopupClosed()
           
 void firePopupOpened()
           
 void firePopupWillBeClosed()
           
 void firePopupWillBeOpened()
           
 java.awt.Component getInvoker()
           
 java.awt.Window getInvokerWindow()
           
 javax.swing.Popup getPopup()
           
 javax.swing.JWindow getWindow()
           
 float getWindowOpacity()
          Returns window opacity.
 WebHeavyWeightPopup hidePopup()
           
protected  void installFollowAdapter()
           
 boolean isCloseOnOuterAction()
           
 boolean isFollowInvoker()
           
 boolean isWindowOpaque()
          Returns whether window is opaque or not.
 javax.swing.JWindow packAndCenter()
          Packs and centers window relative to old position.
 javax.swing.JWindow packAndCenter(boolean animate)
          Packs and centers window relative to old position.
 javax.swing.JWindow packToHeight(int height)
          Packs window to its preffered width and specified height.
 javax.swing.JWindow packToWidth(int width)
          Packs window to its preffered height and specified width.
 void removePopupListener(PopupListener listener)
           
 void setCloseOnOuterAction(boolean closeOnOuterAction)
           
 void setFollowInvoker(boolean followInvoker)
           
 javax.swing.JWindow setWindowOpacity(float opacity)
          Sets window opacity if that option is supported by the underlying system.
 javax.swing.JWindow setWindowOpaque(boolean opaque)
          Sets window opaque if that option is supported by the underlying system.
 WebHeavyWeightPopup showPopup(java.awt.Component invoker, int x, int y)
           
 WebHeavyWeightPopup showPopup(java.awt.Component invoker, java.awt.Point location)
           
protected  void uninstallFollowAdapter()
           
protected  javax.swing.JWindow updateOpacity()
           
protected  javax.swing.JWindow updateOpaque()
           
 
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, 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, 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, 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

listeners

protected java.util.List<PopupListener> listeners
Popup listeners.


closeOnOuterAction

protected boolean closeOnOuterAction
Whether should close popup on any action outside of this popup or not.


popup

protected javax.swing.Popup popup
Underlying Swing popup in which content is currently displayed.


window

protected javax.swing.JWindow window
Window in which popup content is currently displayed.


invoker

protected java.awt.Component invoker
Invoker component.


invokerWindow

protected java.awt.Window invokerWindow
Invoker component window.


mouseListener

protected java.awt.event.AWTEventListener mouseListener
Custom global mouse listener that closes popup.


focusListener

protected GlobalFocusListener focusListener
Custom global focus listener that closes popup.


opaque

protected boolean opaque
Whether popup window should be opaque or not.


followInvoker

protected boolean followInvoker
Whether popup window should follow invoker's window or not.


opacity

protected float opacity
Popup window opacity.


followAdapter

protected WindowFollowAdapter followAdapter
Invoker follow adapter.

Constructor Detail

WebHeavyWeightPopup

public WebHeavyWeightPopup()

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.awt.Component component)

WebHeavyWeightPopup

public WebHeavyWeightPopup(Painter painter)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.awt.LayoutManager layout,
                           Painter painter)

WebHeavyWeightPopup

public WebHeavyWeightPopup(Painter painter,
                           java.awt.Component component)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.awt.LayoutManager layout,
                           Painter painter,
                           java.awt.Component... components)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.awt.LayoutManager layout)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.awt.LayoutManager layout,
                           java.awt.Component... components)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.lang.String styleId)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.lang.String styleId,
                           java.awt.LayoutManager layout)

WebHeavyWeightPopup

public WebHeavyWeightPopup(java.lang.String styleId,
                           java.awt.Component component)
Method Detail

isCloseOnOuterAction

public boolean isCloseOnOuterAction()

setCloseOnOuterAction

public void setCloseOnOuterAction(boolean closeOnOuterAction)

getPopup

public javax.swing.Popup getPopup()

getWindow

public javax.swing.JWindow getWindow()

getInvoker

public java.awt.Component getInvoker()

getInvokerWindow

public java.awt.Window getInvokerWindow()

showPopup

public WebHeavyWeightPopup showPopup(java.awt.Component invoker,
                                     java.awt.Point location)

showPopup

public WebHeavyWeightPopup showPopup(java.awt.Component invoker,
                                     int x,
                                     int y)

hidePopup

public WebHeavyWeightPopup hidePopup()

addPopupListener

public void addPopupListener(PopupListener listener)

removePopupListener

public void removePopupListener(PopupListener listener)

firePopupWillBeOpened

public void firePopupWillBeOpened()

firePopupOpened

public void firePopupOpened()

firePopupWillBeClosed

public void firePopupWillBeClosed()

firePopupClosed

public void firePopupClosed()

setWindowOpaque

public javax.swing.JWindow setWindowOpaque(boolean opaque)
Description copied from interface: WindowMethods
Sets window opaque if that option is supported by the underlying system.

Specified by:
setWindowOpaque in interface WindowMethods<javax.swing.JWindow>
Parameters:
opaque - whether should make window opaque or not

updateOpaque

protected javax.swing.JWindow updateOpaque()

isWindowOpaque

public boolean isWindowOpaque()
Description copied from interface: WindowMethods
Returns whether window is opaque or not.

Specified by:
isWindowOpaque in interface WindowMethods<javax.swing.JWindow>
Returns:
true if window is opaque, false otherwise

setWindowOpacity

public javax.swing.JWindow setWindowOpacity(float opacity)
Description copied from interface: WindowMethods
Sets window opacity if that option is supported by the underlying system.

Specified by:
setWindowOpacity in interface WindowMethods<javax.swing.JWindow>
Parameters:
opacity - new window opacity

updateOpacity

protected javax.swing.JWindow updateOpacity()

getWindowOpacity

public float getWindowOpacity()
Description copied from interface: WindowMethods
Returns window opacity.

Specified by:
getWindowOpacity in interface WindowMethods<javax.swing.JWindow>
Returns:
window opacity

isFollowInvoker

public boolean isFollowInvoker()

setFollowInvoker

public void setFollowInvoker(boolean followInvoker)

installFollowAdapter

protected void installFollowAdapter()

uninstallFollowAdapter

protected void uninstallFollowAdapter()

center

public javax.swing.JWindow center()
Centers window relative to screen center.

Specified by:
center in interface WindowMethods<javax.swing.JWindow>
Returns:
processed window

center

public javax.swing.JWindow center(java.awt.Component relativeTo)
Centers window relative to the specified component center.

Specified by:
center in interface WindowMethods<javax.swing.JWindow>
Parameters:
relativeTo - component used to center window
Returns:
processed window

center

public javax.swing.JWindow center(int width,
                                  int height)
Changes window size and centers it relative to screen center.

Specified by:
center in interface WindowMethods<javax.swing.JWindow>
Parameters:
width - new window width
height - new window height
Returns:
processed window

center

public javax.swing.JWindow center(java.awt.Component relativeTo,
                                  int width,
                                  int height)
Changes window size and centers it relative to the specified component center.

Specified by:
center in interface WindowMethods<javax.swing.JWindow>
Parameters:
relativeTo - component used to center window
width - new window width
height - new window height
Returns:
processed window

packToWidth

public javax.swing.JWindow packToWidth(int width)
Packs window to its preffered height and specified width.

Specified by:
packToWidth in interface WindowMethods<javax.swing.JWindow>
Parameters:
width - new window width
Returns:
processed window

packToHeight

public javax.swing.JWindow packToHeight(int height)
Packs window to its preffered width and specified height.

Specified by:
packToHeight in interface WindowMethods<javax.swing.JWindow>
Parameters:
height - new window height
Returns:
processed window

packAndCenter

public javax.swing.JWindow packAndCenter()
Packs and centers window relative to old position.

Specified by:
packAndCenter in interface WindowMethods<javax.swing.JWindow>
Returns:
processed window

packAndCenter

public javax.swing.JWindow packAndCenter(boolean animate)
Packs and centers window relative to old position.

Specified by:
packAndCenter in interface WindowMethods<javax.swing.JWindow>
Parameters:
animate - whether should animate window size changes or not
Returns:
processed window