Package com.airhacks.afterburner.views
Class FXMLView
- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.layout.Pane
-
- javafx.scene.layout.StackPane
-
- com.airhacks.afterburner.views.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
-
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 invoid
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.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
-
-
-
-
Field Detail
-
DEFAULT_ENDING
public static final java.lang.String DEFAULT_ENDING
- See Also:
- Constant Field Values
-
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 unchangedending
- 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
-
-