Class InteractionDialog
- All Implemented Interfaces:
Animation, Editable, StyleListener, Iterable<Component>
Unlike a regular dialog the interaction dialog only looks like a dialog, it resides in the layered pane and can be used to implement features where interaction with the background form is still required.
Since this code is designed for interaction all "dialogs" created thru here are modless and never block.
InteractionDialog dlg = new InteractionDialog("Hello");
dlg.setLayout(new BorderLayout());
dlg.add(BorderLayout.CENTER, new Label("Hello Dialog"));
Button close = new Button("Close");
close.addActionListener((ee) -> dlg.dispose());
dlg.addComponent(BorderLayout.SOUTH, close);
Dimension pre = dlg.getContentPane().getPreferredSize();
dlg.show(0, 0, Display.getInstance().getDisplayWidth() - (pre.getWidth() + pre.getWidth() / 6), 0);
-
Field Summary
Fields inherited from class Component
BASELINE, BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, CROSSHAIR_CURSOR, DEFAULT_CURSOR, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_POSSIBLE_DRAG_Y, E_RESIZE_CURSOR, HAND_CURSOR, LEFT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, RIGHT, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, TOP, W_RESIZE_CURSOR, WAIT_CURSOR -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor with no titleDefault constructor with layoutInteractionDialog(String title) Constructor with dialog titleInteractionDialog(String title, Layout l) Constructor with dialog title -
Method Summary
Modifier and TypeMethodDescriptionvoidaddComponent(int index, Component cmp) This method adds the Component at a specific index location in the Container Components array.voidaddComponent(int index, Object constraints, Component cmp) Adds a Component to the ContainervoidaddComponent(Component cmp) Adds a Component to the ContainervoidaddComponent(Object constraints, Component cmp) Adds a Component to the Containerprotected voidInvoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy.voiddispose()Removes the interaction dialog from viewvoidRemoves the interaction dialog from view with an animation to the bottomvoiddisposeToTheBottom(Runnable onFinish) Removes the interaction dialog from view with an animation to the bottomvoidRemoves the interaction dialog from view with an animation to the leftvoidRemoves the interaction dialog from view with an animation to the rightvoidRemoves the interaction dialog from view with an animation to the topReturns the body of the interaction dialogSimple getter to get the Dialog StyleReturns the uiid of the dialogReturns the layout manager responsible for arranging this container.getTitle()protected voidAllows subclasses to bind functionality that relies on fully initialized and "ready for action" component statebooleanIndicates whether show/dispose should be animated or notbooleanThis flag indicates if the dialog should be disposed if a pointer released event occurred out of the dialog content.booleanWhether the interaction dialog uses the form layered pane of the regular layered panebooleanRepositions the component so the animation will "grow/shrink" when showing/disposingbooleanWill return true if the dialog is currently showingvoidremove all Components from container, notice that removed component might still have a pending repaint in the queue that won't be removed.voidremoveComponent(Component cmp) removes a Component from the Container, notice that removed component might still have a pending repaint in the queue that won't be removed.voidresize(int top, int bottom, int left, int right) voidsetAnimateShow(boolean animateShow) Indicates whether show/dispose should be animated or notvoidsetDialogUIID(String uiid) Simple setter to set the Dialog uiidvoidsetDisposeWhenPointerOutOfBounds(boolean disposeWhenPointerOutOfBounds) This flag indicates if the dialog should be disposed if a pointer released event occurred out of the dialog content.voidsetFormMode(boolean formMode) Whether the interaction dialog uses the form layered pane of the regular layered panevoidSets the layout manager responsible for arranging this containervoidsetRepositionAnimation(boolean repositionAnimation) Repositions the component so the animation will "grow/shrink" when showing/disposingvoidsetScrollable(boolean scrollable) The equivalent of calling both setScrollableY and setScrollableXvoidvoidshow(int top, int bottom, int left, int right) This method shows the form as a modal alert allowing us to produce a behavior of an alert/dialog box.voidA popup dialog is shown with the context of a component and its selection.voidshowPopupDialog(Component c, boolean bias) A popup dialog is shown with the context of a component and its selection.voidshowPopupDialog(Rectangle rect) A popup dialog is shown with the context of a component and its selection.voidshowPopupDialog(Rectangle rect, boolean bias) A popup dialog is shown with the context of a component and its selection.Methods inherited from class Container
add, add, add, add, add, add, addAll, animateHierarchy, animateHierarchyAndWait, animateHierarchyFade, animateHierarchyFadeAndWait, animateLayout, animateLayoutAndWait, animateLayoutFade, animateLayoutFadeAndWait, animateUnlayout, animateUnlayoutAndWait, applyRTL, calcPreferredSize, cancelRepaints, clearClientProperties, constrainHeightWhenScrollable, constrainWidthWhenScrollable, contains, createAnimateHierarchy, createAnimateHierarchyFade, createAnimateLayout, createAnimateLayoutFade, createAnimateLayoutFadeAndWait, createAnimateMotion, createAnimateUnlayout, createReplaceTransition, dragInitiated, drop, encloseIn, encloseIn, findDropTargetAt, findFirstFocusable, fireClicked, flushReplace, forceRevalidate, getBottomGap, getChildrenAsList, getClosestComponentTo, getComponentAt, getComponentAt, getComponentCount, getComponentIndex, getGridPosX, getGridPosY, getLayoutHeight, getLayoutWidth, getLeadComponent, getLeadParent, getResponderAt, getSafeAreaRoot, getScrollIncrement, getSideGap, getUIManager, initLaf, invalidate, isEnabled, isSafeArea, isSafeAreaRoot, isScrollableX, isScrollableY, isSelectableInteraction, isSurface, iterator, iterator, keyPressed, keyReleased, layoutContainer, morph, morphAndWait, paint, paintComponentBackground, paintGlass, paramString, pointerPressed, refreshTheme, replace, replace, replaceAndWait, replaceAndWait, replaceAndWait, revalidate, revalidateLater, revalidateWithAnimationSafety, scrollComponentToVisible, setCellRenderer, setEnabled, setLeadComponent, setSafeArea, setSafeAreaRoot, setScrollableX, setScrollableY, setScrollIncrement, setShouldCalcPreferredSize, setShouldLayout, setUIManager, updateTabIndicesMethods inherited from class Component
addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, animate, announceForAccessibility, bindProperty, blocksSideSwipe, calcScrollSize, contains, containsOrOwns, createStyleAnimation, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, drawDraggedImage, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAccessibilityText, getAllStyles, getAnimationManager, getBaseline, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBorder, getBoundPropertyValue, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragRegionStatus, getDragSpeed, getDragTransparency, getEditingDelegate, getHeight, getInlineAllStyles, getInlineDisabledStyles, getInlinePressedStyles, getInlineSelectedStyles, getInlineStylesTheme, getInlineUnselectedStyles, getInnerHeight, getInnerPreferredH, getInnerPreferredW, getInnerWidth, getInnerX, getInnerY, getLabelForComponent, getName, getNativeOverlay, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getOuterHeight, getOuterPreferredH, getOuterPreferredW, getOuterWidth, getOuterX, getOuterY, getOwner, getParent, getPreferredH, getPreferredSize, getPreferredSizeStr, getPreferredTabIndex, getPreferredW, getPressedStyle, getPropertyNames, getPropertyTypeNames, getPropertyTypes, getPropertyValue, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedRect, getSelectedStyle, getStyle, getTabIndex, getTensileLength, getTextSelectionSupport, getTooltip, getUIID, getUnselectedStyle, getVisibleBounds, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, initUnselectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEditable, isEditing, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, keyRepeated, laidOut, longKeyPress, longPointerPress, onScrollX, onScrollY, onSetFocusable, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerDragged, pointerHover, pointerHoverPressed, pointerHoverReleased, pointerPressed, pointerReleased, pointerReleased, putClientProperty, refreshTheme, refreshTheme, remove, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, scrollRectToVisible, scrollRectToVisible, setAccessibilityText, setAlwaysTensile, setBlockLead, setBoundPropertyValue, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHandlesInput, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setPropertyValue, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUIID, setUIIDFinal, setUnselectedStyle, setVisible, setWidth, setX, setY, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, shouldRenderComponentSelection, showNativeOverlay, startEditingAsync, stopEditing, stripMarginAndPadding, styleChanged, toImage, toString, unbindProperty, updateNativeOverlay, visibleBoundsContainsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Constructor Details
-
InteractionDialog
public InteractionDialog()Default constructor with no title -
InteractionDialog
Default constructor with layout
Parameters
l: layout
-
InteractionDialog
Constructor with dialog title
Parameters
title: the title of the dialog
-
InteractionDialog
-
-
Method Details
-
initComponent
protected void initComponent()Description copied from class:ComponentAllows subclasses to bind functionality that relies on fully initialized and "ready for action" component state- Overrides:
initComponentin classComponent
-
isDisposeWhenPointerOutOfBounds
public boolean isDisposeWhenPointerOutOfBounds()This flag indicates if the dialog should be disposed if a pointer released event occurred out of the dialog content.
Returns
true if the dialog should dispose
-
setDisposeWhenPointerOutOfBounds
public void setDisposeWhenPointerOutOfBounds(boolean disposeWhenPointerOutOfBounds) This flag indicates if the dialog should be disposed if a pointer released event occurred out of the dialog content.
Parameters
disposeWhenPointerOutOfBounds
-
getContentPane
Returns the body of the interaction dialog
Returns
the container where the elements of the interaction dialog are added.
-
setScrollable
public void setScrollable(boolean scrollable) The equivalent of calling both setScrollableY and setScrollableX
Parameters
scrollable: @param scrollable whether the component should/could scroll on the X and Y axis
Deprecated
use setScrollableX and setScrollableY instead. This method is deprecated since it breeds confusion and is often misunderstood.
- Overrides:
setScrollablein classContainer
-
getLayout
-
setLayout
-
getTitle
-
setTitle
-
addComponent
Adds a Component to the Container
Parameters
cmp: the component to be added
- Overrides:
addComponentin classContainer
-
addComponent
Adds a Component to the Container
Parameters
-
constraints: @param constraints this method is useful when the Layout requires a constraint such as the BorderLayout. In this case you need to specify an additional data when you add a Component, such as "CENTER", "NORTH"... -
cmp: component to add
- Overrides:
addComponentin classContainer
-
-
addComponent
Adds a Component to the Container
Parameters
-
index: location to insert the Component -
constraints: @param constraints this method is useful when the Layout requires a constraint such as the BorderLayout. In this case you need to specify an additional data when you add a Component, such as "CENTER", "NORTH"... -
cmp: component to add
- Overrides:
addComponentin classContainer
-
-
addComponent
This method adds the Component at a specific index location in the Container Components array.
Parameters
-
index: location to insert the Component -
cmp: the Component to add
Throws
-
ArrayIndexOutOfBoundsException: if index is out of bounds -
IllegalArgumentException: @throws IllegalArgumentException if Component is already contained or the cmp is a Form Component
- Overrides:
addComponentin classContainer
-
-
removeAll
public void removeAll()remove all Components from container, notice that removed component might still have a pending repaint in the queue that won't be removed. Calling form.repaint() will workaround such an issue. Notice that this method doesn't recurse and only removes from the current container. -
removeComponent
removes a Component from the Container, notice that removed component might still have a pending repaint in the queue that won't be removed. Calling form.repaint() will workaround such an issue.
Parameters
cmp: the removed component
- Overrides:
removeComponentin classContainer
-
getTitleComponent
-
deinitialize
protected void deinitialize()Invoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy. This allows the component to deregister animators and cleanup after itself. This method is the opposite of the initComponent() method.- Overrides:
deinitializein classComponent
-
resize
public void resize(int top, int bottom, int left, int right) -
show
public void show(int top, int bottom, int left, int right) This method shows the form as a modal alert allowing us to produce a behavior of an alert/dialog box. This method will block the calling thread even if the calling thread is the EDT. Notice that this method will not release the block until dispose is called even if show() from another form is called!
Modal dialogs Allow the forms "content" to "hang in mid air" this is especially useful for dialogs where you would want the underlying form to "peek" from behind the form.
Parameters
-
top: space in pixels between the top of the screen and the form -
bottom: space in pixels between the bottom of the screen and the form -
left: space in pixels between the left of the screen and the form -
right: space in pixels between the right of the screen and the form
-
-
dispose
public void dispose()Removes the interaction dialog from view -
disposeToTheLeft
public void disposeToTheLeft()Removes the interaction dialog from view with an animation to the left -
disposeToTheBottom
public void disposeToTheBottom()Removes the interaction dialog from view with an animation to the bottom -
disposeToTheBottom
Removes the interaction dialog from view with an animation to the bottom
Parameters
onFinish: Callback called when dispose animation is complete.
-
disposeToTheTop
public void disposeToTheTop()Removes the interaction dialog from view with an animation to the top -
disposeToTheRight
public void disposeToTheRight()Removes the interaction dialog from view with an animation to the right -
isShowing
public boolean isShowing()Will return true if the dialog is currently showing
Returns
true if showing
-
isAnimateShow
public boolean isAnimateShow()Indicates whether show/dispose should be animated or not
Returns
the animateShow
-
setAnimateShow
public void setAnimateShow(boolean animateShow) Indicates whether show/dispose should be animated or not
Parameters
animateShow: the animateShow to set
-
showPopupDialog
A popup dialog is shown with the context of a component and its selection. You should use
#setDisposeWhenPointerOutOfBounds(boolean)to make it dispose when the user clicks outside the bounds of the popup. It can optionally provide an arrow in the theme to point at the context component. The popup dialog has the PopupDialog style by default.Parameters
c: the context component which is used to position the dialog and can also be pointed at
-
showPopupDialog
A popup dialog is shown with the context of a component and its selection. You should use
#setDisposeWhenPointerOutOfBounds(boolean)to make it dispose when the user clicks outside the bounds of the popup. It can optionally provide an arrow in the theme to point at the context component. The popup dialog has the PopupDialog style by default.Parameters
-
c: the context component which is used to position the dialog and can also be pointed at -
bias: @param bias biases the dialog to appear above/below or to the sides. This is ignored if there isn't enough space
-
-
showPopupDialog
A popup dialog is shown with the context of a component and its selection. You should use
#setDisposeWhenPointerOutOfBounds(boolean)to make it dispose when the user clicks outside the bounds of the popup. It can optionally provide an arrow in the theme to point at the context component. The popup dialog has the PopupDialog style by default.Parameters
rect: the screen rectangle to which the popup should point
-
showPopupDialog
A popup dialog is shown with the context of a component and its selection. You should use
#setDisposeWhenPointerOutOfBounds(boolean)to make it dispose when the user clicks outside the bounds of the popup. It can optionally provide an arrow in the theme to point at the context component. The popup dialog has the PopupDialog style by default.Parameters
-
rect: the screen rectangle to which the popup should point -
bias: @param bias biases the dialog to appear above/below or to the sides. This is ignored if there isn't enough space
-
-
getDialogUIID
Returns the uiid of the dialog
Returns
the uiid of the dialog
-
setDialogUIID
Simple setter to set the Dialog uiid
Parameters
uiid: the id for the dialog
-
getDialogStyle
Simple getter to get the Dialog Style
Returns
the style of the dialog
-
isRepositionAnimation
public boolean isRepositionAnimation()Repositions the component so the animation will "grow/shrink" when showing/disposing
Returns
the repositionAnimation
-
setRepositionAnimation
public void setRepositionAnimation(boolean repositionAnimation) Repositions the component so the animation will "grow/shrink" when showing/disposing
Parameters
repositionAnimation: the repositionAnimation to set
-
isFormMode
public boolean isFormMode()Whether the interaction dialog uses the form layered pane of the regular layered pane
Returns
the formMode
-
setFormMode
public void setFormMode(boolean formMode) Whether the interaction dialog uses the form layered pane of the regular layered pane
Parameters
formMode: the formMode to set
-