Class DataViewer

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

    @DefaultProperty("views")
    public class DataViewer
    extends javafx.scene.layout.BorderPane
    DataViewer to manage multiple 'DatavView's which contain either custom 'Pane' derived nodes and or managed 'DataViewWindow' that can be detached and re-attached to the DataView

    usage example:

     
     final DataView view1 = new DataView("ChartViews", chartIcon);
     // [..] these nodes are detachable sub-windows (with decorated minimize, maximize, close buttons)
     view1.getVisibleChildren().addAll(customNode1, customNode2, customNode3);
    
      // [..] add undecorated custom Pan
     final DataView view2 = new DataView("Custom View", customViewIcon, getDemoPane());
    
     final DataViewer viewer = new DataViewer();
     viewer.getViews().addAll(view1, view2);
    
     // [..] to switch between configurations one may use:
     // a) Toolbar which contains the 'Text-Icon' Buttons for each view
     viewer.getToolBar();
     // b) directly/programmatically, e.g.:
     viewer.setSelectedView(view2);
    
     
     
    Author:
    Grzegorz Kruk, rstein
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.BooleanProperty detachableWindowProperty()  
      javafx.beans.property.BooleanProperty explorerVisibleProperty()
      Determines if the explorer view is visible.
      DataView getSelectedView()  
      javafx.scene.control.ToolBar getToolBar()  
      javafx.collections.ObservableList<javafx.scene.Node> getUserToolBarItems()  
      javafx.collections.ObservableList<DataView> getViews()
      Returns a modifiable list of views displayed by the viewer.
      DataViewWindow.WindowDecoration getWindowDecoration()  
      boolean isDetachableWindow()  
      boolean isExplorerVisible()
      Returns the value of the explorerVisibleProperty().
      javafx.beans.property.ObjectProperty<DataView> selectedViewProperty()  
      void setDetachableWindow​(boolean state)  
      void setExplorerVisible​(boolean value)
      Sets the value of the explorerVisibleProperty().
      void setSelectedView​(DataView selectedView)  
      void setSelectedView​(java.lang.String viewName)  
      void setWindowDecoration​(DataViewWindow.WindowDecoration state)  
      javafx.beans.property.BooleanProperty showListStyleDataViewProperty()  
      protected void updateDetachableWindowProperty​(DataView root)  
      void updateMenuButton​(javafx.scene.control.Menu menuButton, DataView dataView)  
      protected void updateToolBar()  
      protected void updateWindowDecorations​(DataView root)  
      javafx.beans.property.ObjectProperty<DataViewWindow.WindowDecoration> windowDecorationProperty()  
      • Methods inherited from class javafx.scene.layout.BorderPane

        bottomProperty, centerProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAlignment, getBottom, getCenter, getContentBias, getLeft, getMargin, getRight, getTop, layoutChildren, leftProperty, rightProperty, setAlignment, setBottom, setCenter, setLeft, setMargin, setRight, setTop, topProperty
      • 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, getClassCssMetaData, getCssMetaData, 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, requestLayout, 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

      • explorerVisible

        protected final javafx.beans.property.BooleanProperty explorerVisible
      • subDataViewChangeListener

        protected final javafx.collections.ListChangeListener<? super DataView> subDataViewChangeListener
      • activeSubDataViewChangeListener

        protected final javafx.beans.value.ChangeListener<? super DataView> activeSubDataViewChangeListener
      • closeWindowButtonHandler

        protected final javafx.beans.value.ChangeListener<? super java.lang.Boolean> closeWindowButtonHandler
    • Constructor Detail

      • DataViewer

        public DataViewer()
      • DataViewer

        public DataViewer​(DataView... views)
    • Method Detail

      • detachableWindowProperty

        public javafx.beans.property.BooleanProperty detachableWindowProperty()
        Returns:
        detachableWindow property that controls whether window can be detached by dragging or not
      • explorerVisibleProperty

        public javafx.beans.property.BooleanProperty explorerVisibleProperty()
        Determines if the explorer view is visible.
        Returns:
        boolean property (true: visible)
      • getSelectedView

        public final DataView getSelectedView()
      • getToolBar

        public javafx.scene.control.ToolBar getToolBar()
      • getUserToolBarItems

        public javafx.collections.ObservableList<javafx.scene.Node> getUserToolBarItems()
      • getViews

        public final javafx.collections.ObservableList<DataView> getViews()
        Returns a modifiable list of views displayed by the viewer.
        Returns:
        list of views
      • isDetachableWindow

        public boolean isDetachableWindow()
        Returns:
        true: window can be detached by dragging gesture
      • isExplorerVisible

        public final boolean isExplorerVisible()
        Returns the value of the explorerVisibleProperty().
        Returns:
        true if the explorer view is visible, false otherwise
      • selectedViewProperty

        public final javafx.beans.property.ObjectProperty<DataView> selectedViewProperty()
      • setDetachableWindow

        public void setDetachableWindow​(boolean state)
        Parameters:
        state - true: window can be detached by dragging gesture
      • setExplorerVisible

        public final void setExplorerVisible​(boolean value)
        Sets the value of the explorerVisibleProperty().
        Parameters:
        value - true to make the explorer visible, false to make it invisible
      • setSelectedView

        public final void setSelectedView​(DataView selectedView)
      • setSelectedView

        public final void setSelectedView​(java.lang.String viewName)
      • showListStyleDataViewProperty

        public javafx.beans.property.BooleanProperty showListStyleDataViewProperty()
      • updateMenuButton

        public void updateMenuButton​(javafx.scene.control.Menu menuButton,
                                     DataView dataView)
      • updateDetachableWindowProperty

        protected void updateDetachableWindowProperty​(DataView root)
      • updateToolBar

        protected void updateToolBar()
      • updateWindowDecorations

        protected void updateWindowDecorations​(DataView root)