Package com.jidesoft.popup
Class JidePopup
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
com.jidesoft.popup.JidePopup
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,WindowConstants
- Direct Known Subclasses:
Searchable.SearchPopup
JidePopup
is a popup window which can be resized, dragged and autohide if time out.
JidePopup uses JWindow as the container in order to show itself. By default, JidePopup is not focusable which means
no component in the JidePopup will get focus. For example, if you put a JTextField in JidePopup and the JTextField
becomes not editable, this is a result of non-focusable JWindow. So if you want components in JidePopup to be able to
receive focus, you can either call setFocusable(true) or you can call setDefaultFocusComponent(java.awt.Component)
to set a child component as the default focus component.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
This class implements accessibility support for thePopup
class.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
FieldsModifier and TypeFieldDescriptionprotected Component
protected Point
protected boolean
protected Insets
protected ResizablePanel
protected Dimension
protected ResizableSupport
protected ResizableWindow
static final String
Constrained property name indicating that the popup is attachable.static final String
If the popup shows a dialog and you don't want the popup to be hidden when the dialog is shown, you can use this special client property to do it.static final String
static final String
static final String
You can set client property to JidePopup control the window opacity (only when heavyweight popup is in use).static final String
You can set client property to JidePopup control the window opaque (only when heavyweight popup is in use) The value of the client property should be a boolean.static final String
You can set client property to JidePopup control the window shape (only when heavyweight popup is in use) The value of the client property should be a Shape.static final String
Bound property name.static final String
Bound property name for if the popup is detached.int
The distance between alert and screen border.static final int
Hides the popup when the owner is moved.static final String
Bound property name.static final int
static final int
Hides the popup when the owner is moved.static final String
Bound property name.static final int
Key used to indicate a light weight popup should be used.static final String
Bound property name.static final String
Bound property name for gripper.static final int
Moves the popup along with owner when the owner is moved.static final String
Bound property name for owner.static final String
static final String
Bound property name for resizable.static final String
Bound property name.static final String
static final String
Bound property name.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
Fields inherited from class java.awt.Component
accessibleContext, 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
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addExcludedComponent
(Component component) Adds a component as excluded component.protected void
Ensures that, by default, children cannot be added directly to this component.void
Adds aPopupMenu
listener which will listen to notification messages from the popup portion of the combo box.protected void
This method will process component hidden event for the popup's ancestor.protected void
This method will process component moved event for the popup's ancestor.protected void
beginDragging
(JComponent f, int mouseX, int mouseY, double relativeX, double relativeY) protected void
protected ResizableWindow
protected ResizablePanel
Creates lightweight container for the popup.protected JRootPane
Called by the constructor to set up theJRootPane
.protected void
createWindow
(Component owner, int x, int y) protected void
drag
(JComponent f, int newX, int newY, int mouseModifiers) protected void
void
NotifiesPopupMenuListener
s that the popup portion of the combo box has been canceled.void
NotifiesPopupMenuListener
s that the popup portion of the combo box has become invisible.void
NotifiesPopupMenuListener
s that the popup portion of the combo box will become visible.Gets theAccessibleContext
associated with thisPopup
.protected Component
Gets the actual owner.protected Rectangle
getAdjustedRectangle
(int x, int y, Component owner) Gets the rectangle adjusted by preferred size and the monitor device settings.Get the insets so that when the JidePopup is dragged back to this area, the JidePopup will jump to its original position automatically.Returns the content pane for this Popup.Gets the default focus component.int
Gets the default operation when the owner is moved.protected Rectangle
getDisplayScreenBounds
(Component owner) protected Point
getDisplayStartLocation
(Rectangle screenDim, Dimension size, int location) Get the display start location of the popup.protected static Frame
Returns the glass pane for this popup.int
Returns the currentJMenuBar
for thisPopup
, ornull
if no menu bar has been set.Returns the layered pane for this popup.getOwner()
Gets the owner of the popup.Gets the popup border set bysetPopupBorder(javax.swing.border.Border)
.protected Point
getPopupLocation
(Point point, Dimension size, Component owner) Calculates the popup location.Returns an array of all thePopupMenuListener
s added to this JComboBox with addPopupMenuListener().int
protected JComponent
getRealParent
(RootPaneContainer rootPaneContainer) Returns therootPane
object for this popup.int
Gets the time out value, in milliseconds.static Component
getTopLevelAncestor
(Component component) getUI()
Returns the look-and-feel object that renders this component.Returns the name of the look-and-feel class that renders this component.protected void
This method will process component event.protected void
protected void
protected void
protected void
protected void
protected void
void
void
hidePopup
(boolean cancelled) void
Hides the popup immediately (compare tohidePopup()
could use animation to hide the popup).void
hidePopupImmediately
(boolean cancelled) protected void
protected void
protected void
internalShowPopup
(int x, int y) protected void
internalShowPopup
(int x, int y, Component owner) boolean
Checks if the popup is attachable.boolean
Checks if the mouse event is on the popup.boolean
Checks if the popup is detached.protected boolean
boolean
Checks if the popup will be shown in one screen.boolean
isExcludedComponent
(Component component) Checks if a component is an excluded component.boolean
Get the flag indicating if JidePopup should keep the size last time it was popped up.boolean
Checks if the popup is movable.static boolean
isPopupAncestorOf
(JidePopup popup, Component c) boolean
boolean
Checks if the popup is resizable.boolean
gets the flag.protected boolean
Returns whether calls toadd
andsetLayout
cause an exception to be thrown.boolean
Checks if the popup is transient.protected void
void
Packs the popup.void
Removes the specified component from this container.void
Removes all excluded components that were added before.void
removeExcludedComponent
(Component component) Removes a component from the excluded component list.void
Removes aPopupMenuListener
.void
setAttachable
(boolean attachable) Sets the attachable option.void
setBackToOriginalInsets
(Insets backToOriginalInsets) Set the insets so that when the JidePopup is dragged back to this area, the JidePopup will jump to its original position automatically.void
Sets thisPopup
'scontentPane
property.void
setDefaultFocusComponent
(Component defaultFocusComponent) Sets the default focus component.void
setDefaultMoveOperation
(int defaultMoveOperation) Sets the default operation when the owner is moved.void
setDetached
(boolean detached) Changes the popup's detached mode.void
setDisplayStartLocation
(Point startLocation) Set the display start location of the popup.void
setEnsureInOneScreen
(boolean ensureInOneScreen) Sets the flag if the popup should appear within one screen.void
setGlassPane
(Component glass) Sets thisPopup
'sglassPane
property.void
setGripperLocation
(int gripperLocation) Sets the gripper location.void
Sets themenuBar
property for thisPopup
.void
setKeepPreviousSize
(boolean keepPreviousSize) Set the flag indicating if JidePopup should keep the size last time it was popped up.void
setLayeredPane
(JLayeredPane layered) Sets thisPopup
'slayeredPane
property.void
setLayout
(LayoutManager manager) Ensures that, by default, the layout of this component cannot be set.void
setMovable
(boolean movable) Sets the movable attribute.void
Sets the owner of the popup.void
setPopupBorder
(Border popupBorder) Sets the border for this popup.void
setPopupType
(int popupType) void
Sets the preferred popup size.void
setResizable
(boolean resizable) Sets the resizable option.void
setReturnFocusToOwner
(boolean returnFocusToOwner) Sets the flag to return focus to the owner when the popup is hidden.protected void
setRootPane
(JRootPane root) Sets therootPane
property for thisPopup
.protected void
setRootPaneCheckingEnabled
(boolean enabled) Determines whether calls toadd
andsetLayout
cause an exception to be thrown.void
setTimeout
(int timeout) Sets the time out value, in milliseconds.void
setTransient
(boolean isTransient) Sets the transient attribute.void
Sets the UI delegate for thisPopup
.void
setupResizeCorner
(int corner) Setup Resizable's ResizeCorner.void
setVisible
(boolean visible) Makes the component visible or invisible.protected boolean
Returns whether the AWTEventEventListener should be used to handle event processingvoid
Shows the popup.void
showPopup
(int location) Shows the popup at the specified location relative to the screen.void
showPopup
(int x, int y) Shows the popup at the specified x and y coordinates.void
Shows the popup at the specified x and y coordinates.void
Shows the popup at the specified location relative to the owner.void
Shows the popup.void
Shows the popup.void
Shows the popup.protected void
void
updateUI()
Notification from theUIManager
that the look and feel has changed.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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, 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, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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 Details
-
CLIENT_PROPERTY_WINDOW_OPACITY
You can set client property to JidePopup control the window opacity (only when heavyweight popup is in use). The value of the client property should be a float.- See Also:
-
CLIENT_PROPERTY_WINDOW_OPAQUE
You can set client property to JidePopup control the window opaque (only when heavyweight popup is in use) The value of the client property should be a boolean.- See Also:
-
CLIENT_PROPERTY_WINDOW_SHAPE
You can set client property to JidePopup control the window shape (only when heavyweight popup is in use) The value of the client property should be a Shape.- See Also:
-
CONTENT_PANE_PROPERTY
Bound property name.- See Also:
-
MENU_BAR_PROPERTY
Bound property name.- See Also:
-
LAYERED_PANE_PROPERTY
Bound property name.- See Also:
-
ROOT_PANE_PROPERTY
Bound property name.- See Also:
-
GLASS_PANE_PROPERTY
Bound property name.- See Also:
-
VISIBLE_PROPERTY
Bound property name.- See Also:
-
TRANSIENT_PROPERTY
- See Also:
-
ATTACHABLE_PROPERTY
Constrained property name indicating that the popup is attachable.- See Also:
-
MOVABLE_PROPERTY
Bound property name for gripper.- See Also:
-
DETACHED_PROPERTY
Bound property name for if the popup is detached.- See Also:
-
CLIENT_PROPERTY_POPUP_TYPE
- See Also:
-
CLIENT_PROPERTY_VALUE_POPUP_TYPE_COMBOBOX
- See Also:
-
_detached
protected boolean _detached -
_window
-
_panel
-
_resizableSupport
-
CLIENT_PROPERTY_POPUP_ACTUAL_OWNER
If the popup shows a dialog and you don't want the popup to be hidden when the dialog is shown, you can use this special client property to do it. Here is the code, assuming the dialog is shown from your popup.JComponent c = JideSwingUtilities.getFirstJComponent(dialog); if(c != null) { c.putClientProperty(JidePopup.CLIENT_PROPERTY_POPUP_ACTUAL_OWNER, component); }
- See Also:
-
RESIZABLE_PROPERTY
Bound property name for resizable.- See Also:
-
OWNER_PROPERTY
Bound property name for owner.- See Also:
-
DO_NOTHING_ON_MOVED
public static final int DO_NOTHING_ON_MOVEDHides the popup when the owner is moved.- See Also:
-
HIDE_ON_MOVED
public static final int HIDE_ON_MOVEDHides the popup when the owner is moved.- See Also:
-
MOVE_ON_MOVED
public static final int MOVE_ON_MOVEDMoves the popup along with owner when the owner is moved.- See Also:
-
DISTANCE_TO_SCREEN_BORDER
public int DISTANCE_TO_SCREEN_BORDERThe distance between alert and screen border. -
PROPERTY_GRIPPER_LOCATION
- See Also:
-
_previousSize
-
_actualOwner
-
_actualOwnerLocation
-
LIGHT_WEIGHT_POPUP
public static final int LIGHT_WEIGHT_POPUPKey used to indicate a light weight popup should be used.- See Also:
-
HEAVY_WEIGHT_POPUP
public static final int HEAVY_WEIGHT_POPUP- See Also:
-
_insets
-
-
Constructor Details
-
JidePopup
public JidePopup()Creates a Popup.
-
-
Method Details
-
createRootPane
Called by the constructor to set up theJRootPane
.- Returns:
- a new
JRootPane
- See Also:
-
getUI
Returns the look-and-feel object that renders this component.- Overrides:
getUI
in classJComponent
- Returns:
- the
PopupUI
object that renders this component
-
setUI
Sets the UI delegate for thisPopup
.- Parameters:
ui
- the UI delegate
-
updateUI
public void updateUI()Notification from theUIManager
that the look and feel has changed. Replaces the current UI object with the latest version from theUIManager
.- Overrides:
updateUI
in classJComponent
- See Also:
-
getUIClassID
Returns the name of the look-and-feel class that renders this component.- Overrides:
getUIClassID
in classJComponent
- Returns:
- the string "PopupUI"
- See Also:
-
isRootPaneCheckingEnabled
protected boolean isRootPaneCheckingEnabled()Returns whether calls toadd
andsetLayout
cause an exception to be thrown.- Returns:
true
ifadd
andsetLayout
are checked- See Also:
-
setRootPaneCheckingEnabled
protected void setRootPaneCheckingEnabled(boolean enabled) Determines whether calls toadd
andsetLayout
cause an exception to be thrown.- Parameters:
enabled
- a boolean value,true
if checking is to be enabled, which cause the exceptions to be thrown- See Also:
-
addImpl
Ensures that, by default, children cannot be added directly to this component. Instead, children must be added to its content pane. For example:thisComponent.getContentPane().add(child)
An attempt to add to directly to this component will cause a runtime exception to be thrown. Subclasses can disable this behavior. -
remove
Removes the specified component from this container. -
setLayout
Ensures that, by default, the layout of this component cannot be set. Instead, the layout of its content pane should be set. For example:thisComponent.getContentPane().setLayout(new GridLayout(1,2))
An attempt to set the layout of this component will cause an runtime exception to be thrown. Subclasses can disable this behavior. -
getJMenuBar
Returns the currentJMenuBar
for thisPopup
, ornull
if no menu bar has been set.- Returns:
- the
JMenuBar
used by this Popup. - See Also:
-
setJMenuBar
Sets themenuBar
property for thisPopup
.- Parameters:
m
- theJMenuBar
to use in this Popup.- See Also:
-
getContentPane
Returns the content pane for this Popup.- Returns:
- the content pane
-
setContentPane
Sets thisPopup
'scontentPane
property.- Parameters:
c
- the content pane for this popup.- Throws:
IllegalComponentStateException
- (a runtime exception) if the content pane parameter isnull
- See Also:
-
getLayeredPane
Returns the layered pane for this popup.- Returns:
- a
JLayeredPane
object - See Also:
-
setLayeredPane
Sets thisPopup
'slayeredPane
property.- Parameters:
layered
- theJLayeredPane
for this popup- Throws:
IllegalComponentStateException
- (a runtime exception) if the layered pane parameter isnull
- See Also:
-
getGlassPane
Returns the glass pane for this popup.- Returns:
- the glass pane
- See Also:
-
setGlassPane
Sets thisPopup
'sglassPane
property.- Parameters:
glass
- the glass pane for this popup- See Also:
-
getRootPane
Returns therootPane
object for this popup.- Overrides:
getRootPane
in classJComponent
- Returns:
- the
rootPane
property - See Also:
-
setRootPane
Sets therootPane
property for thisPopup
. This method is called by the constructor.- Parameters:
root
- the newJRootPane
object
-
setVisible
public void setVisible(boolean visible) Makes the component visible or invisible. OverridesComponent.setVisible
.- Overrides:
setVisible
in classJComponent
- Parameters:
visible
- true to make the component visible; false to make it invisible
-
getAccessibleContext
Gets theAccessibleContext
associated with thisPopup
. For popups, theAccessibleContext
takes the form of anAccessiblePopup
object. A newAccessiblePopup
instance is created if necessary.- Specified by:
getAccessibleContext
in interfaceAccessible
- Overrides:
getAccessibleContext
in classComponent
- Returns:
- an
AccessiblePopup
that serves as theAccessibleContext
of thisPopup
- See Also:
-
isKeepPreviousSize
public boolean isKeepPreviousSize()Get the flag indicating if JidePopup should keep the size last time it was popped up. The default value of this flag is true. If you want the popup to resize based on the changing contents like in IntelliHints, you need set this flag to false.- Returns:
- the flag.
-
setKeepPreviousSize
public void setKeepPreviousSize(boolean keepPreviousSize) Set the flag indicating if JidePopup should keep the size last time it was popped up.- Parameters:
keepPreviousSize
- the flag.
-
getBackToOriginalInsets
Get the insets so that when the JidePopup is dragged back to this area, the JidePopup will jump to its original position automatically. By default, the value is {10, 10, 10, 10}. You can disable the jump functionality by setting the insets to {0, 0, 0, 0}.- Returns:
- the insets.
-
setBackToOriginalInsets
Set the insets so that when the JidePopup is dragged back to this area, the JidePopup will jump to its original position automatically.- Parameters:
backToOriginalInsets
- the insets
-
showPopup
public void showPopup()Shows the popup. By default, it will show right below the owner. -
showPopup
Shows the popup. By default, it will show right below the owner after considering the insets. This call is almost the same as setOwner followed by showPopup() except in this case, the owner is only temporarily used to create the popup. It will not be added to excludedComponent list as setOwner would do.- Parameters:
owner
- the popup window's owner; if unspecified, it will default to the RootPaneContainer(Applet) or ContentContainer
-
showPopup
Shows the popup. By default, it will show right below the owner after considering the insets.- Parameters:
insets
- the popup's insets RootPaneContainer(Applet) or ContentContainer
-
showPopup
Shows the popup. By default, it will show right below the owner after considering the insets. Please note, if the owner is not displayed (isShowing returns false), the popup will not be displayed either.- Parameters:
insets
- the popup's insetsowner
- the popup window's owner; if unspecified, it will default to the RootPaneContainer(Applet) or ContentContainer
-
getPopupLocation
Calculates the popup location.- Parameters:
point
- owner is top-left coordinate relative to screen.size
- the size of the popup window.owner
- the owner- Returns:
- new popup location. By default, it will return the coordinate of the bottom-left corner of owner.
-
setupResizeCorner
public void setupResizeCorner(int corner) Setup Resizable's ResizeCorner.- Parameters:
corner
- the corner.
-
getTopLevelAncestor
-
showPopup
public void showPopup(int location) Shows the popup at the specified location relative to the screen. The valid locations are:SwingConstants.CENTER
SwingConstants.SOUTH
SwingConstants.NORTH
SwingConstants.WEST
SwingConstants.EAST
SwingConstants.NORTH_EAST
SwingConstants.NORTH_WEST
SwingConstants.SOUTH_EAST
SwingConstants.SOUTH_WEST
DISTANCE_TO_SCREEN_BORDER
.- Parameters:
location
- the new location.
-
showPopup
Shows the popup at the specified location relative to the owner. The valid locations are:SwingConstants.CENTER
SwingConstants.SOUTH
SwingConstants.NORTH
SwingConstants.WEST
SwingConstants.EAST
SwingConstants.NORTH_EAST
SwingConstants.NORTH_WEST
SwingConstants.SOUTH_EAST
SwingConstants.SOUTH_WEST
DISTANCE_TO_SCREEN_BORDER
.- Parameters:
location
- the new locationowner
- the popup window's owner; if unspecified, it will default to the RootPaneContainer(Applet) or ContentContainer
-
setDisplayStartLocation
Set the display start location of the popup.- Parameters:
startLocation
- the display start location.- See Also:
-
getDisplayStartLocation
Get the display start location of the popup. It will automatically calculate a point if the customer didn't invokesetDisplayStartLocation(java.awt.Point)
explicitly. It will just return the location if the customer already set it.- Parameters:
screenDim
- the dimension of the screensize
- the size of the popuplocation
- the direction to show the popup- Returns:
- the display start location.
-
getDisplayScreenBounds
-
packPopup
public void packPopup()Packs the popup. Setting size only if it's a light weight popup. Otherwise do pack. -
internalShowPopup
protected void internalShowPopup(int x, int y) -
internalShowPopup
-
getAdjustedRectangle
Gets the rectangle adjusted by preferred size and the monitor device settings. The client property "useAllMonitorDevices" could be registered in any ancestor component of the owner component to take effect.- Parameters:
x
- the original xy
- the original yowner
- the owner component- Returns:
- the adjusted rectangle according to the preferred size and monitor devie settings.
- Since:
- 3.4.1
-
createWindow
-
showPopup
public void showPopup(int x, int y) Shows the popup at the specified x and y coordinates.- Parameters:
x
- the x position. It is screen position.y
- the y position. It is screen position.
-
showPopup
Shows the popup at the specified x and y coordinates.- Parameters:
x
- the x position. It is screen position.y
- the y position. It is screen position.owner
- the popup window's owner; if unspecified, it will default to the RootPaneContainer(Applet) or ContentContainer
-
getFrame
-
createHeavyweightPopupContainer
- Parameters:
owner
- the owner for this popup container. It will be used to find the top level ancestor and use it as the parent for this popup window.- Returns:
- a ResizableWindow.
-
createLightweightPopupContainer
Creates lightweight container for the popup.- Parameters:
owner
- the owner for this popup container. This parameter is not used in this method. It was there mainly because the correspondingcreateHeavyweightPopupContainer(java.awt.Component)
has this parameter.- Returns:
- a ResizablePanel
-
installListeners
protected void installListeners() -
contentResized
protected void contentResized() -
installBorder
protected void installBorder() -
showPopupImmediately
protected void showPopupImmediately() -
movePopup
protected void movePopup() -
endDragging
protected void endDragging() -
beginDragging
protected void beginDragging(JComponent f, int mouseX, int mouseY, double relativeX, double relativeY) -
isDragging
protected boolean isDragging() -
drag
-
handleMousePressed
-
handleMouseReleased
-
handleMouseDragged
-
handleMouseEntered
-
handleMouseExited
-
handleWindowEvent
-
getRealParent
-
handleComponentEvent
This method will process component event. By default, if popup's ancestor is hidden, we will hide the popup as well if the popup is transient (isTransient returns true). If popup's ancestor is moved, we will either move or hide the popup depending ongetDefaultMoveOperation()
value.- Parameters:
e
- the ComponentEvent.
-
ancestorHidden
protected void ancestorHidden()This method will process component hidden event for the popup's ancestor. By default we will hide the popup immediately. You can override this to customize the behavior. -
ancestorMoved
protected void ancestorMoved()This method will process component moved event for the popup's ancestor. By default we will move the popup if getDefaultMoveOperation() is MOVE_ON_MOVED, or hide the popup if getDefaultMoveOperation() is HIDE_ON_MOVED. You can override this to customize the behavior. -
hidePopup
public void hidePopup() -
hidePopup
public void hidePopup(boolean cancelled) -
isPopupVisible
public boolean isPopupVisible() -
getPopupBounds
-
hidePopupImmediately
public void hidePopupImmediately(boolean cancelled) -
hidePopupImmediately
public void hidePopupImmediately()Hides the popup immediately (compare tohidePopup()
could use animation to hide the popup). -
shouldAWTEventListenerBeUsed
protected boolean shouldAWTEventListenerBeUsed()Returns whether the AWTEventEventListener should be used to handle event processing- Returns:
- true to use the AWT event listener; false otherwise
-
getOwner
Gets the owner of the popup.- Returns:
- the owner of the popup.
-
setOwner
Sets the owner of the popup. By default, we will call addExcludedComponent(owner) so that clicking on the owner will not hide the popup. If you prefer to hide the popup when the owner is clicked, please callremoveExcludedComponent(java.awt.Component)
to remove it explicitly after setOwner is called.- Parameters:
owner
- the new owner.
-
isMovable
public boolean isMovable()Checks if the popup is movable. If yes, it will show the gripper so that user can grab it and move the popup. If the popup is attached to its owner, moving it will detach from the owner.- Returns:
- true if gripper is visible
-
setMovable
public void setMovable(boolean movable) Sets the movable attribute.- Parameters:
movable
- true or false.
-
isResizable
public boolean isResizable()Checks if the popup is resizable. By default, resizable option is true. Depending on the detached/attached mode, the resizing behavior may be different. If a popup is detached to a component, it only allows you to resize from bottom, bottom right and right It obviously doesn't make sense to resize from top and top side is aligned with the attached component. (Notes: in the future we will allow resize from different corner if the popup is shown above owner due to not enough space on the screen).- Returns:
- if the popup is resizable.
-
setResizable
public void setResizable(boolean resizable) Sets the resizable option.- Parameters:
resizable
- true or false.
-
isAttachable
public boolean isAttachable()Checks if the popup is attachable. By default, attachable option is true.- Returns:
- if the popup is attachable.
-
setAttachable
public void setAttachable(boolean attachable) Sets the attachable option.- Parameters:
attachable
- true or false.
-
isDetached
public boolean isDetached()Checks if the popup is detached. A popup has detached and attached mode. When a popup is in attached, it will act like it's part of the owner (which can be set usingsetOwner(java.awt.Component)
. When owner is moved, the popup will be moved. If the owner is hidden, the popup will hidden. In the other word, it is attached with the owner. In detached mode, popup becomes an independent floating window. It will stay at the same location regardless if owner is moved. It could still be visible when owner is hidden.- Returns:
- true if it's ddetached Otherwise false.
-
setDetached
public void setDetached(boolean detached) Changes the popup's detached mode.- Parameters:
detached
- true or false.
-
getPopupBorder
Gets the popup border set bysetPopupBorder(javax.swing.border.Border)
.- Returns:
- the border for this popup.
-
setPopupBorder
Sets the border for this popup. Please note a non-empty border is needed if you want the popup to be resizable.- Parameters:
popupBorder
- the border for the popup.
-
isTransient
public boolean isTransient()Checks if the popup is transient.- Returns:
- true if transient.
- See Also:
-
setTransient
public void setTransient(boolean isTransient) Sets the transient attribute. If a popup is transient, it will hide automatically when mouse is clicked outside the popup. Otherwise, it will stay visible until timeout or hidePopup() is called.- Parameters:
isTransient
- true or false.
-
getTimeout
public int getTimeout()Gets the time out value, in milliseconds.- Returns:
- the time out value, in milliseconds.
-
setTimeout
public void setTimeout(int timeout) Sets the time out value, in milliseconds. If you don't want the popup hide after the time out, set the value to 0. By default it's 0 meaning it will never time out. Typically, you call setTimeOut before the popup is visible. But if you do call setTimeOut when popup is already visible (which means the timer is running), we will restart the timer using the new time out value you just set, even the new time out value is the same as the old one. In the other word, this setTimeOut call will always restart the timer if the timer is running.- Parameters:
timeout
- new time out value, in milliseconds. 0 if you don't want popup automatically hides.
-
getDefaultFocusComponent
Gets the default focus component.- Returns:
- the default focus component.
-
setDefaultFocusComponent
Sets the default focus component. Default focus component should be a child component on this popup. It will get focus when popup is shown. By setting a non-null component as default focus component, the JWindow that contains the JidePopup will be set focusable. Otherwise the JWindow will be non-focusable.- Parameters:
defaultFocusComponent
- the default focus component.
-
addPopupMenuListener
Adds aPopupMenu
listener which will listen to notification messages from the popup portion of the combo box. For all standard look and feels shipped with Java 2, the popup list portion of combo box is implemented as aJPopupMenu
. A custom look and feel may not implement it this way and will therefore not receive the notification.- Parameters:
l
- thePopupMenuListener
to add
-
removePopupMenuListener
Removes aPopupMenuListener
.- Parameters:
l
- thePopupMenuListener
to remove- Since:
- 1.4
- See Also:
-
getPopupMenuListeners
Returns an array of all thePopupMenuListener
s added to this JComboBox with addPopupMenuListener().- Returns:
- all of the
PopupMenuListener
s added or an empty array if no listeners have been added
-
firePopupMenuWillBecomeVisible
public void firePopupMenuWillBecomeVisible()NotifiesPopupMenuListener
s that the popup portion of the combo box will become visible. This method is public but should not be called by anything other than the UI delegate. -
firePopupMenuWillBecomeInvisible
public void firePopupMenuWillBecomeInvisible()NotifiesPopupMenuListener
s that the popup portion of the combo box has become invisible. This method is public but should not be called by anything other than the UI delegate. -
firePopupMenuCanceled
public void firePopupMenuCanceled()NotifiesPopupMenuListener
s that the popup portion of the combo box has been canceled. This method is public but should not be called by anything other than the UI delegate. -
getDefaultMoveOperation
public int getDefaultMoveOperation()Gets the default operation when the owner is moved. The valid values are eitherHIDE_ON_MOVED
,MOVE_ON_MOVED
orDO_NOTHING_ON_MOVED
.- Returns:
- the default operation when the owner is moved.
-
setDefaultMoveOperation
public void setDefaultMoveOperation(int defaultMoveOperation) Sets the default operation when the owner is moved. The valid could be eitherHIDE_ON_MOVED
,MOVE_ON_MOVED
orDO_NOTHING_ON_MOVED
.- Parameters:
defaultMoveOperation
- the default operation when the owner is moved.
-
addExcludedComponent
Adds a component as excluded component. If a component is an excluded component or descendant of an excluded component, clicking on it will not hide the popup. For example, AbstractComboBox uses JidePopup to display the popup. If you want to show a JDialog from the popup, you will have to add the dialog as excluded component. See below for an example.JDialog dialog =new JDialog((Frame) JideSwingUtilities.getWindowForComponent(this), true); dialog.add(new JTable(10, 4)); dialog.pack(); Container ancestorOfClass = SwingUtilities.getAncestorOfClass(JidePopup.class, this); // try to find the JidePopup if(ancestorOfClass instanceof JidePopup) { ((JidePopup) ancestorOfClass).addExcludedComponent(dialog); } dialog.setVisible(true); if(ancestorOfClass instanceof JidePopup) { ((JidePopup) ancestorOfClass).removeExcludedComponent(dialog); }
- Parameters:
component
- the component should be excluded.
-
removeExcludedComponent
Removes a component from the excluded component list. If a component is an excluded component, clicking on it will not hide the popup.- Parameters:
component
- the component was excluded before.
-
removeAllExcludedComponents
public void removeAllExcludedComponents()Removes all excluded components that were added before. -
isExcludedComponent
Checks if a component is an excluded component. If a component is an excluded component, clicking on it will not hide the popup. By default, owner is always the excluded component.- Parameters:
component
- a component.- Returns:
- true if the component is an excluded component.
-
getGripperLocation
public int getGripperLocation() -
setGripperLocation
public void setGripperLocation(int gripperLocation) Sets the gripper location. The valid values areSwingConstants.NORTH
,SwingConstants.SOUTH
,SwingConstants.EAST
, andSwingConstants.WEST
.- Parameters:
gripperLocation
- the new gripper location.
-
getPopupType
public int getPopupType() -
setPopupType
public void setPopupType(int popupType) -
isClickOnPopup
Checks if the mouse event is on the popup. By default, we will check if popup is an ancestor of the clicked component. If it returns true, the popup will not be hidden. If false, the popup will be hidden as we consider the mouse click is outside the popup.- Parameters:
e
- the mouse event- Returns:
- true or false.
-
getActualOwner
Gets the actual owner. User can set owner usingsetOwner(java.awt.Component)
method. But when one of the showPopup methods with owner parameter is called, the actual owner will be changed to this component.- Returns:
- the actual owner.
-
setPreferredPopupSize
Sets the preferred popup size. This method can be used when you want to keep the popup size to be the same as when it was closed.- Parameters:
size
- the size of the popup when it was shown last time.
-
getPreferredPopupSize
-
isPopupAncestorOf
-
isReturnFocusToOwner
public boolean isReturnFocusToOwner()gets the flag. If true, it will return focus to the owner when the popup is hidden.- Returns:
- true or false.
-
setReturnFocusToOwner
public void setReturnFocusToOwner(boolean returnFocusToOwner) Sets the flag to return focus to the owner when the popup is hidden.- Parameters:
returnFocusToOwner
- true or false.
-
isEnsureInOneScreen
public boolean isEnsureInOneScreen()Checks if the popup will be shown in one screen.- Returns:
- true or false.
- Since:
- 3.6.3
-
setEnsureInOneScreen
public void setEnsureInOneScreen(boolean ensureInOneScreen) Sets the flag if the popup should appear within one screen. True in one screen. False to allow cross two screens.- Parameters:
ensureInOneScreen
- true or false.- Since:
- 3.6.3
-