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 classThis class implements accessibility support for thePopupclass.Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Componentprotected Pointprotected booleanprotected Insetsprotected ResizablePanelprotected Dimensionprotected ResizableSupportprotected ResizableWindowstatic final StringConstrained property name indicating that the popup is attachable.static final StringIf 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 Stringstatic final Stringstatic final StringYou can set client property to JidePopup control the window opacity (only when heavyweight popup is in use).static final StringYou 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 StringYou 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 StringBound property name.static final StringBound property name for if the popup is detached.intThe distance between alert and screen border.static final intHides the popup when the owner is moved.static final StringBound property name.static final intstatic final intHides the popup when the owner is moved.static final StringBound property name.static final intKey used to indicate a light weight popup should be used.static final StringBound property name.static final StringBound property name for gripper.static final intMoves the popup along with owner when the owner is moved.static final StringBound property name for owner.static final Stringstatic final StringBound property name for resizable.static final StringBound property name.static final Stringstatic final StringBound 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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields 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 TypeMethodDescriptionvoidaddExcludedComponent(Component component) Adds a component as excluded component.protected voidEnsures that, by default, children cannot be added directly to this component.voidAdds aPopupMenulistener which will listen to notification messages from the popup portion of the combo box.protected voidThis method will process component hidden event for the popup's ancestor.protected voidThis method will process component moved event for the popup's ancestor.protected voidbeginDragging(JComponent f, int mouseX, int mouseY, double relativeX, double relativeY) protected voidprotected ResizableWindowprotected ResizablePanelCreates lightweight container for the popup.protected JRootPaneCalled by the constructor to set up theJRootPane.protected voidcreateWindow(Component owner, int x, int y) protected voiddrag(JComponent f, int newX, int newY, int mouseModifiers) protected voidvoidNotifiesPopupMenuListeners that the popup portion of the combo box has been canceled.voidNotifiesPopupMenuListeners that the popup portion of the combo box has become invisible.voidNotifiesPopupMenuListeners that the popup portion of the combo box will become visible.Gets theAccessibleContextassociated with thisPopup.protected ComponentGets the actual owner.protected RectanglegetAdjustedRectangle(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.intGets the default operation when the owner is moved.protected RectanglegetDisplayScreenBounds(Component owner) protected PointgetDisplayStartLocation(Rectangle screenDim, Dimension size, int location) Get the display start location of the popup.protected static FrameReturns the glass pane for this popup.intReturns the currentJMenuBarfor thisPopup, ornullif 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 PointgetPopupLocation(Point point, Dimension size, Component owner) Calculates the popup location.Returns an array of all thePopupMenuListeners added to this JComboBox with addPopupMenuListener().intprotected JComponentgetRealParent(RootPaneContainer rootPaneContainer) Returns therootPaneobject for this popup.intGets the time out value, in milliseconds.static ComponentgetTopLevelAncestor(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 voidThis method will process component event.protected voidprotected voidprotected voidprotected voidprotected voidprotected voidvoidvoidhidePopup(boolean cancelled) voidHides the popup immediately (compare tohidePopup()could use animation to hide the popup).voidhidePopupImmediately(boolean cancelled) protected voidprotected voidprotected voidinternalShowPopup(int x, int y) protected voidinternalShowPopup(int x, int y, Component owner) booleanChecks if the popup is attachable.booleanChecks if the mouse event is on the popup.booleanChecks if the popup is detached.protected booleanbooleanChecks if the popup will be shown in one screen.booleanisExcludedComponent(Component component) Checks if a component is an excluded component.booleanGet the flag indicating if JidePopup should keep the size last time it was popped up.booleanChecks if the popup is movable.static booleanisPopupAncestorOf(JidePopup popup, Component c) booleanbooleanChecks if the popup is resizable.booleangets the flag.protected booleanReturns whether calls toaddandsetLayoutcause an exception to be thrown.booleanChecks if the popup is transient.protected voidvoidPacks the popup.voidRemoves the specified component from this container.voidRemoves all excluded components that were added before.voidremoveExcludedComponent(Component component) Removes a component from the excluded component list.voidRemoves aPopupMenuListener.voidsetAttachable(boolean attachable) Sets the attachable option.voidsetBackToOriginalInsets(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.voidSets thisPopup'scontentPaneproperty.voidsetDefaultFocusComponent(Component defaultFocusComponent) Sets the default focus component.voidsetDefaultMoveOperation(int defaultMoveOperation) Sets the default operation when the owner is moved.voidsetDetached(boolean detached) Changes the popup's detached mode.voidsetDisplayStartLocation(Point startLocation) Set the display start location of the popup.voidsetEnsureInOneScreen(boolean ensureInOneScreen) Sets the flag if the popup should appear within one screen.voidsetGlassPane(Component glass) Sets thisPopup'sglassPaneproperty.voidsetGripperLocation(int gripperLocation) Sets the gripper location.voidSets themenuBarproperty for thisPopup.voidsetKeepPreviousSize(boolean keepPreviousSize) Set the flag indicating if JidePopup should keep the size last time it was popped up.voidsetLayeredPane(JLayeredPane layered) Sets thisPopup'slayeredPaneproperty.voidsetLayout(LayoutManager manager) Ensures that, by default, the layout of this component cannot be set.voidsetMovable(boolean movable) Sets the movable attribute.voidSets the owner of the popup.voidsetPopupBorder(Border popupBorder) Sets the border for this popup.voidsetPopupType(int popupType) voidSets the preferred popup size.voidsetResizable(boolean resizable) Sets the resizable option.voidsetReturnFocusToOwner(boolean returnFocusToOwner) Sets the flag to return focus to the owner when the popup is hidden.protected voidsetRootPane(JRootPane root) Sets therootPaneproperty for thisPopup.protected voidsetRootPaneCheckingEnabled(boolean enabled) Determines whether calls toaddandsetLayoutcause an exception to be thrown.voidsetTimeout(int timeout) Sets the time out value, in milliseconds.voidsetTransient(boolean isTransient) Sets the transient attribute.voidSets the UI delegate for thisPopup.voidsetupResizeCorner(int corner) Setup Resizable's ResizeCorner.voidsetVisible(boolean visible) Makes the component visible or invisible.protected booleanReturns whether the AWTEventEventListener should be used to handle event processingvoidShows the popup.voidshowPopup(int location) Shows the popup at the specified location relative to the screen.voidshowPopup(int x, int y) Shows the popup at the specified x and y coordinates.voidShows the popup at the specified x and y coordinates.voidShows the popup at the specified location relative to the owner.voidShows the popup.voidShows the popup.voidShows the popup.protected voidvoidupdateUI()Notification from theUIManagerthat 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, updateMethods 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, validateTreeMethods 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:
getUIin classJComponent- Returns:
- the
PopupUIobject that renders this component
-
setUI
Sets the UI delegate for thisPopup.- Parameters:
ui- the UI delegate
-
updateUI
public void updateUI()Notification from theUIManagerthat the look and feel has changed. Replaces the current UI object with the latest version from theUIManager.- Overrides:
updateUIin classJComponent- See Also:
-
getUIClassID
Returns the name of the look-and-feel class that renders this component.- Overrides:
getUIClassIDin classJComponent- Returns:
- the string "PopupUI"
- See Also:
-
isRootPaneCheckingEnabled
protected boolean isRootPaneCheckingEnabled()Returns whether calls toaddandsetLayoutcause an exception to be thrown.- Returns:
trueifaddandsetLayoutare checked- See Also:
-
setRootPaneCheckingEnabled
protected void setRootPaneCheckingEnabled(boolean enabled) Determines whether calls toaddandsetLayoutcause an exception to be thrown.- Parameters:
enabled- a boolean value,trueif 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 currentJMenuBarfor thisPopup, ornullif no menu bar has been set.- Returns:
- the
JMenuBarused by this Popup. - See Also:
-
setJMenuBar
Sets themenuBarproperty for thisPopup.- Parameters:
m- theJMenuBarto use in this Popup.- See Also:
-
getContentPane
Returns the content pane for this Popup.- Returns:
- the content pane
-
setContentPane
Sets thisPopup'scontentPaneproperty.- 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
JLayeredPaneobject - See Also:
-
setLayeredPane
Sets thisPopup'slayeredPaneproperty.- Parameters:
layered- theJLayeredPanefor 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'sglassPaneproperty.- Parameters:
glass- the glass pane for this popup- See Also:
-
getRootPane
Returns therootPaneobject for this popup.- Overrides:
getRootPanein classJComponent- Returns:
- the
rootPaneproperty - See Also:
-
setRootPane
Sets therootPaneproperty for thisPopup. This method is called by the constructor.- Parameters:
root- the newJRootPaneobject
-
setVisible
public void setVisible(boolean visible) Makes the component visible or invisible. OverridesComponent.setVisible.- Overrides:
setVisiblein classJComponent- Parameters:
visible- true to make the component visible; false to make it invisible
-
getAccessibleContext
Gets theAccessibleContextassociated with thisPopup. For popups, theAccessibleContexttakes the form of anAccessiblePopupobject. A newAccessiblePopupinstance is created if necessary.- Specified by:
getAccessibleContextin interfaceAccessible- Overrides:
getAccessibleContextin classComponent- Returns:
- an
AccessiblePopupthat serves as theAccessibleContextof 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.CENTERSwingConstants.SOUTHSwingConstants.NORTHSwingConstants.WESTSwingConstants.EASTSwingConstants.NORTH_EASTSwingConstants.NORTH_WESTSwingConstants.SOUTH_EASTSwingConstants.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.CENTERSwingConstants.SOUTHSwingConstants.NORTHSwingConstants.WESTSwingConstants.EASTSwingConstants.NORTH_EASTSwingConstants.NORTH_WESTSwingConstants.SOUTH_EASTSwingConstants.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 aPopupMenulistener 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- thePopupMenuListenerto add
-
removePopupMenuListener
Removes aPopupMenuListener.- Parameters:
l- thePopupMenuListenerto remove- Since:
- 1.4
- See Also:
-
getPopupMenuListeners
Returns an array of all thePopupMenuListeners added to this JComboBox with addPopupMenuListener().- Returns:
- all of the
PopupMenuListeners added or an empty array if no listeners have been added
-
firePopupMenuWillBecomeVisible
public void firePopupMenuWillBecomeVisible()NotifiesPopupMenuListeners 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.- See Also:
-
firePopupMenuWillBecomeInvisible
public void firePopupMenuWillBecomeInvisible()NotifiesPopupMenuListeners 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.- See Also:
-
firePopupMenuCanceled
public void firePopupMenuCanceled()NotifiesPopupMenuListeners 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.- See Also:
-
getDefaultMoveOperation
public int getDefaultMoveOperation()Gets the default operation when the owner is moved. The valid values are eitherHIDE_ON_MOVED,MOVE_ON_MOVEDorDO_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_MOVEDorDO_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
-