Class WorldMapView

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.WorldMapView
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class WorldMapView extends javafx.scene.control.Control
A simple map view showing either the entire world or a list of countries. The view is not capable of displaying detailed map information. The view is based on simple SVG data found in a properties file of the ControlsFX distribution. A big advantage of this approach is the fact that the view can be run without a network connection. In addition to showing countries or the world the view can also show locations. The map can be customized by specifying custom factories for the country and location views.

Example: Country View Factory

The code snippet below shows how a custom country view factory can be used to assign individual styles to all countries. In this example the style is used to color the countries differently. worldMapView.setCountryViewFactory(country -> { CountryView view = new CountryView(country); if (showColorsProperty.get()) { view.getStyleClass().add("country" + ((country.ordinal() % 8) + 1)); } return view; });

Example: Location View Factory

Each location can be visualized with its own node. The default location view factory creates a simple circle shape.

worldMapView.setLocationViewFactory(location -> { Circle circle = new Circle(); circle.getStyleClass().add("location"); circle.setRadius(4); circle.setTranslateX(-4); // translate to center node on location circle.setTranslateY(-4); // translate to center node on location return circle; }); Shown below is a screenshot of the world map view:

Screenshot of WorldMapView
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ListProperty<WorldMapView.Country>
    A property used to store the list of countries that should be shown by the map.
    final javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode>
    A property used to store the selection mode that will be applied for the selection of countries.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Country,WorldMapView.CountryView>>
    A property used to store a factory callback for creating new country views.
    final javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode>
    A property used to store the selection mode that will be applied for the selection of locations.
    final javafx.beans.property.ListProperty<WorldMapView.Location>
    A property used to store the list of locations shown by the map.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Location,javafx.scene.Node>>
    A property used to store a factory callback for creating new location views (nodes).
    final javafx.beans.property.ListProperty<WorldMapView.Country>
    A property used for storing the list of selected countries (aka "the selection model").
    final javafx.beans.property.ListProperty<WorldMapView.Location>
    A property used for storing the list of selected locations (aka "the selection model").
    final javafx.beans.property.BooleanProperty
    A property used to control whether locations will be shown by the map or not.
    final javafx.beans.property.DoubleProperty
    A property used to store the current zoom factor, a value between 1 and 10.

    Properties inherited from class javafx.scene.control.Control

    contextMenu, skin, tooltip

    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
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    An enumerator listing all countries of the world.
    static class 
    A view used to visualize the bounds of a country via SVG.
    static class 
    An object using latitude and longitude information to specify a location in the real world.
    static enum 
    The selection modes supported by the view.
  • 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
    Constructs a new map view with an initially empty list of countries which will result in the entire world to be shown.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ListProperty<WorldMapView.Country>
    A property used to store the list of countries that should be shown by the map.
    final javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode>
    A property used to store the selection mode that will be applied for the selection of countries.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Country,WorldMapView.CountryView>>
    A property used to store a factory callback for creating new country views.
    protected javafx.scene.control.Skin<?>
     
    final javafx.collections.ObservableList<WorldMapView.Country>
    Returns the list of countries that will be shown by the map.
    Returns the value of countrySelectionModeProperty()
    Returns the value of countryViewFactoryProperty().
    final javafx.collections.ObservableList<WorldMapView.Location>
    Returns the list of locations shown by the map.
    Returns the value of locationSelectionModeProperty()
    final javafx.util.Callback<WorldMapView.Location,javafx.scene.Node>
    Returns the value of locationViewFactoryProperty().
    final javafx.collections.ObservableList<WorldMapView.Country>
    Returns the list of currently selected countries.
    final javafx.collections.ObservableList<WorldMapView.Location>
    Returns the list of currently selected locations.
     
    protected final String
    getUserAgentStylesheet(Class<?> clazz, String fileName)
    A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.
    final double
    Returns the value of zoomFactorProperty().
    final boolean
    Returns the value of showLocationsProperty().
    final javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode>
    A property used to store the selection mode that will be applied for the selection of locations.
    final javafx.beans.property.ListProperty<WorldMapView.Location>
    A property used to store the list of locations shown by the map.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Location,javafx.scene.Node>>
    A property used to store a factory callback for creating new location views (nodes).
    final javafx.beans.property.ListProperty<WorldMapView.Country>
    A property used for storing the list of selected countries (aka "the selection model").
    final javafx.beans.property.ListProperty<WorldMapView.Location>
    A property used for storing the list of selected locations (aka "the selection model").
    final void
    setCountries(javafx.collections.ObservableList<WorldMapView.Country> countries)
    Sets the list of countries that will be shown by the map.
    final void
    final void
    Sets the value of countryViewFactoryProperty().
    final void
    setLocations(javafx.collections.ObservableList<WorldMapView.Location> locations)
    Sets the list of locations shown by the map.
    final void
    final void
    setLocationViewFactory(javafx.util.Callback<WorldMapView.Location,javafx.scene.Node> factory)
    final void
    setSelectedCountries(javafx.collections.ObservableList<WorldMapView.Country> countries)
    Sets the list of currently selected countries.
    final void
    setSelectedLocations(javafx.collections.ObservableList<WorldMapView.Location> locations)
    Sets the list of currently selected locations.
    final void
    setShowLocations(boolean show)
    Sets the value of showLocationsProperty().
    final void
    setZoomFactor(double factor)
    Sets the value of zoomFactorProperty().
    final javafx.beans.property.BooleanProperty
    A property used to control whether locations will be shown by the map or not.
    final javafx.beans.property.DoubleProperty
    A property used to store the current zoom factor, a value between 1 and 10.

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, 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

    getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, 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, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, 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