Class FXMLView

  • All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget

    public abstract class FXMLView
    extends javafx.scene.layout.StackPane
    Author:
    adam-bien.com
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.ResourceBundle bundle  
      protected java.lang.String bundleName  
      static java.lang.String DEFAULT_ENDING  
      protected static java.util.concurrent.Executor FX_PLATFORM_EXECUTOR  
      protected javafx.fxml.FXMLLoader fxmlLoader  
      protected java.util.function.Function<java.lang.String,​java.lang.Object> injectionContext  
      protected static java.util.concurrent.ExecutorService PARENT_CREATION_POOL  
      protected javafx.beans.property.ObjectProperty<java.lang.Object> presenterProperty  
      protected java.net.URL resource  
      • 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
      FXMLView()
      Constructs the view lazily (fxml is not loaded) with empty injection context.
      FXMLView​(java.util.function.Function<java.lang.String,​java.lang.Object> injectionContext)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Void exceptionReporter​(java.lang.Throwable t)  
      protected java.lang.String getConventionalName​(boolean lowercase)  
      protected java.lang.String getConventionalName​(boolean lowercase, java.lang.String ending)  
      java.lang.Object getPresenter()
      In case the view was not initialized yet, the conventional fxml (airhacks.fxml for the AirhacksView and AirhacksPresenter) are loaded and the specified presenter / controller is going to be constructed and returned.
      void getPresenter​(java.util.function.Consumer<java.lang.Object> presenterConsumer)
      Does not initialize the view.
      java.util.ResourceBundle getResourceBundle()  
      static java.util.ResourceBundle getResourceBundle​(java.lang.String name)  
      javafx.scene.Parent getView()
      Initializes the view by loading the FXML (if not happened yet) and returns the top Node (parent) specified in
      void getView​(java.util.function.Consumer<javafx.scene.Parent> consumer)
      Initializes the view synchronously and invokes and passes the created parent Node to the consumer within the FX UI thread.
      void getViewAsync​(java.util.function.Consumer<javafx.scene.Parent> consumer)
      Creates the view asynchronously using an internal thread pool and passes the parent node within the UI Thread.
      javafx.scene.Node getViewWithoutRootContainer()
      Scene Builder creates for each FXML document a root container.
      • Methods inherited from class javafx.scene.layout.StackPane

        alignmentProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAlignment, getAlignment, getClassCssMetaData, getContentBias, getCssMetaData, getMargin, layoutChildren, 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, computeMaxHeight, 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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface javafx.css.Styleable

        getStyleableNode
    • Field Detail

      • presenterProperty

        protected javafx.beans.property.ObjectProperty<java.lang.Object> presenterProperty
      • fxmlLoader

        protected javafx.fxml.FXMLLoader fxmlLoader
      • bundleName

        protected java.lang.String bundleName
      • bundle

        protected java.util.ResourceBundle bundle
      • injectionContext

        protected final java.util.function.Function<java.lang.String,​java.lang.Object> injectionContext
      • resource

        protected java.net.URL resource
      • FX_PLATFORM_EXECUTOR

        protected static java.util.concurrent.Executor FX_PLATFORM_EXECUTOR
      • PARENT_CREATION_POOL

        protected static final java.util.concurrent.ExecutorService PARENT_CREATION_POOL
    • Constructor Detail

      • FXMLView

        public FXMLView()
        Constructs the view lazily (fxml is not loaded) with empty injection context.
      • FXMLView

        public FXMLView​(java.util.function.Function<java.lang.String,​java.lang.Object> injectionContext)
        Parameters:
        injectionContext - the function is used as a injection source. Values matching for the keys are going to be used for injection into the corresponding presenter.
    • Method Detail

      • getView

        public javafx.scene.Parent getView()
        Initializes the view by loading the FXML (if not happened yet) and returns the top Node (parent) specified in
        Returns:
        the node loaded by FXMLLoader
      • getView

        public void getView​(java.util.function.Consumer<javafx.scene.Parent> consumer)
        Initializes the view synchronously and invokes and passes the created parent Node to the consumer within the FX UI thread.
        Parameters:
        consumer - - an object interested in received the Parent as callback
      • getViewAsync

        public void getViewAsync​(java.util.function.Consumer<javafx.scene.Parent> consumer)
        Creates the view asynchronously using an internal thread pool and passes the parent node within the UI Thread.
        Parameters:
        consumer - - an object interested in received the Parent as callback
      • getViewWithoutRootContainer

        public javafx.scene.Node getViewWithoutRootContainer()
        Scene Builder creates for each FXML document a root container. This method omits the root container (e.g. AnchorPane) and gives you the access to its first child.
        Returns:
        the first child of the AnchorPane
      • getPresenter

        public java.lang.Object getPresenter()
        In case the view was not initialized yet, the conventional fxml (airhacks.fxml for the AirhacksView and AirhacksPresenter) are loaded and the specified presenter / controller is going to be constructed and returned.
        Returns:
        the corresponding controller / presenter (usually for a AirhacksView the AirhacksPresenter)
      • getPresenter

        public void getPresenter​(java.util.function.Consumer<java.lang.Object> presenterConsumer)
        Does not initialize the view. Only registers the Consumer and waits until the the view is going to be created / the method FXMLView#getView or FXMLView#getViewAsync invoked.
        Parameters:
        presenterConsumer - listener for the presenter construction
      • getConventionalName

        protected java.lang.String getConventionalName​(boolean lowercase,
                                                       java.lang.String ending)
        Parameters:
        lowercase - indicates whether the simple class name should be converted to lowercase of left unchanged
        ending - the suffix to append
        Returns:
        the conventional name with stripped ending
      • getConventionalName

        protected java.lang.String getConventionalName​(boolean lowercase)
        Parameters:
        lowercase - indicates whether the simple class name should be
        Returns:
        the name of the view without the "View" prefix.
      • getResourceBundle

        public static java.util.ResourceBundle getResourceBundle​(java.lang.String name)
      • getResourceBundle

        public java.util.ResourceBundle getResourceBundle()
        Returns:
        an existing resource bundle, or null
      • exceptionReporter

        public java.lang.Void exceptionReporter​(java.lang.Throwable t)
        Parameters:
        t - exception to report
        Returns:
        nothing