Class NotificationView<T, S extends Notification<T>>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.layout.Pane
javafx.scene.layout.StackPane
com.dlsc.gemsfx.infocenter.NotificationView<T,S>
Type Parameters:
T - the type of the business object
S - the type of the notification
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget

public class NotificationView<T, S extends Notification<T>> extends javafx.scene.layout.StackPane
A view used for visualizing a notification
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    The pane used to render the notification content and actions.
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    An (optional) detailed UI that can be revealed interactively by the user.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
    final javafx.beans.property.BooleanProperty
    Determines whether the detailed content node is currently shown.
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<ZonedDateTime>>
    A converter that is used to convert the date and time of the notification into a human-readable text.

    Properties inherited from class javafx.scene.layout.StackPane

    alignment

    Properties inherited from class javafx.scene.layout.Region

    background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

    Properties inherited from class javafx.scene.Parent

    needsLayout

    Properties inherited from class javafx.scene.Node

    accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
  • Field Summary

    Fields inherited from class javafx.scene.layout.Region

    USE_COMPUTED_SIZE, USE_PREF_SIZE

    Fields inherited from class javafx.scene.Node

    BASELINE_OFFSET_SAME_AS_HEIGHT
  • Constructor Summary

    Constructors
    Constructor
    Description
    NotificationView(S notification)
    Constructs a new view for the given notification.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected double
    computeMaxHeight(double width)
    Computes the maximum height of the notification view.
    protected double
    computeMinHeight(double width)
    Computes the minimum height of the notification view.
    protected double
    computePrefHeight(double width)
    Computes the preferred height of the notification view.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    An (optional) detailed UI that can be revealed interactively by the user.
    final javafx.scene.Node
    Gets the value of the content property.
    final javafx.scene.Node
    Gets the value of the graphic property.
    final S
    The notification for which the view was created.
    final javafx.util.StringConverter<ZonedDateTime>
    Gets the value of the timeConverter property.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
    final boolean
    Gets the value of the showContent property.
    protected void
    Lays out the content pane and the optional stacked notifications.
    final void
    setContent(javafx.scene.Node content)
    Sets the value of the content property.
    final void
    setGraphic(javafx.scene.Node graphic)
    Sets the value of the graphic property.
    final void
    setShowContent(boolean showContent)
    Sets the value of the showContent property.
    final void
    setTimeConverter(javafx.util.StringConverter<ZonedDateTime> timeConverter)
    Sets the value of the timeConverter property.
    final javafx.beans.property.BooleanProperty
    Determines whether the detailed content node is currently shown.
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<ZonedDateTime>>
    A converter that is used to convert the date and time of the notification into a human-readable text.
    void
    Updates the date and time label with a human-readable text that is relative to the current time, e.g.

    Methods inherited from class javafx.scene.layout.StackPane

    alignmentProperty, clearConstraints, computeMinWidth, computePrefWidth, getAlignment, getAlignment, getClassCssMetaData, getContentBias, getCssMetaData, getMargin, requestLayout, setAlignment, setAlignment, setMargin

    Methods inherited from class javafx.scene.layout.Pane

    getChildren

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty

    Methods inherited from class javafx.scene.Parent

    getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBounds

    Methods inherited from class javafx.scene.Node

    accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

    • graphic

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> graphicProperty
      An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
      See Also:
    • content

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> contentProperty
      An (optional) detailed UI that can be revealed interactively by the user. Example: a map view that shows the location of a meeting scheduled in a calendar.
      See Also:
    • showContent

      public final javafx.beans.property.BooleanProperty showContentProperty
      Determines whether the detailed content node is currently shown.
      See Also:
    • timeConverter

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<ZonedDateTime>> timeConverterProperty
      A converter that is used to convert the date and time of the notification into a human-readable text. The default converter creates a text like "now", "yesterday", "2 days ago", etc...
      See Also:
  • Constructor Details

    • NotificationView

      public NotificationView(S notification)
      Constructs a new view for the given notification.
      Parameters:
      notification - the notification
  • Method Details

    • computePrefHeight

      protected double computePrefHeight(double width)
      Computes the preferred height of the notification view.
      Overrides:
      computePrefHeight in class javafx.scene.layout.StackPane
      Parameters:
      width - the width used for the computation
      Returns:
      the preferred height
    • computeMinHeight

      protected double computeMinHeight(double width)
      Computes the minimum height of the notification view.
      Overrides:
      computeMinHeight in class javafx.scene.layout.StackPane
      Parameters:
      width - the width used for the computation
      Returns:
      the minimum height
    • computeMaxHeight

      protected double computeMaxHeight(double width)
      Computes the maximum height of the notification view.
      Overrides:
      computeMaxHeight in class javafx.scene.layout.Region
      Parameters:
      width - the width used for the computation
      Returns:
      the maximum height
    • layoutChildren

      protected void layoutChildren()
      Lays out the content pane and the optional stacked notifications.
      Overrides:
      layoutChildren in class javafx.scene.layout.StackPane
    • getNotification

      public final S getNotification()
      The notification for which the view was created.
      Returns:
      the notification
    • getGraphic

      public final javafx.scene.Node getGraphic()
      Gets the value of the graphic property.
      Property description:
      An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
      Returns:
      the value of the graphic property
      See Also:
    • graphicProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> graphicProperty()
      An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
      Returns:
      the graphic / the icon
      See Also:
    • setGraphic

      public final void setGraphic(javafx.scene.Node graphic)
      Sets the value of the graphic property.
      Property description:
      An (optional) node that will be used as the notification's graphic object / icon on the left-hand side.
      Parameters:
      graphic - the value for the graphic property
      See Also:
    • getContent

      public final javafx.scene.Node getContent()
      Gets the value of the content property.
      Property description:
      An (optional) detailed UI that can be revealed interactively by the user. Example: a map view that shows the location of a meeting scheduled in a calendar.
      Returns:
      the value of the content property
      See Also:
    • contentProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> contentProperty()
      An (optional) detailed UI that can be revealed interactively by the user. Example: a map view that shows the location of a meeting scheduled in a calendar.
      Returns:
      the optional graphic
      See Also:
    • setContent

      public final void setContent(javafx.scene.Node content)
      Sets the value of the content property.
      Property description:
      An (optional) detailed UI that can be revealed interactively by the user. Example: a map view that shows the location of a meeting scheduled in a calendar.
      Parameters:
      content - the value for the content property
      See Also:
    • isShowContent

      public final boolean isShowContent()
      Gets the value of the showContent property.
      Property description:
      Determines whether the detailed content node is currently shown.
      Returns:
      the value of the showContent property
      See Also:
    • showContentProperty

      public final javafx.beans.property.BooleanProperty showContentProperty()
      Determines whether the detailed content node is currently shown.
      Returns:
      the showContent property
      See Also:
    • setShowContent

      public final void setShowContent(boolean showContent)
      Sets the value of the showContent property.
      Property description:
      Determines whether the detailed content node is currently shown.
      Parameters:
      showContent - the value for the showContent property
      See Also:
    • getTimeConverter

      public final javafx.util.StringConverter<ZonedDateTime> getTimeConverter()
      Gets the value of the timeConverter property.
      Property description:
      A converter that is used to convert the date and time of the notification into a human-readable text. The default converter creates a text like "now", "yesterday", "2 days ago", etc...
      Returns:
      the value of the timeConverter property
      See Also:
    • timeConverterProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<ZonedDateTime>> timeConverterProperty()
      A converter that is used to convert the date and time of the notification into a human-readable text. The default converter creates a text like "now", "yesterday", "2 days ago", etc...
      Returns:
      the time converter
      See Also:
    • setTimeConverter

      public final void setTimeConverter(javafx.util.StringConverter<ZonedDateTime> timeConverter)
      Sets the value of the timeConverter property.
      Property description:
      A converter that is used to convert the date and time of the notification into a human-readable text. The default converter creates a text like "now", "yesterday", "2 days ago", etc...
      Parameters:
      timeConverter - the value for the timeConverter property
      See Also:
    • updateDateAndTimeLabel

      public void updateDateAndTimeLabel()
      Updates the date and time label with a human-readable text that is relative to the current time, e.g. "now", "yesterday".